I am currently busy with making bigger changes to beta. These changes are related to new features of the firmware. There might be moments when beta is affected by that.
I have just updated both beta website and the beta firmware so that they work nicely together. This means that 3.0-a.20 is available on https://beta.electra.one/. Zipped file is attached below.
3.0-a.20 is collection of changes that I made recently, amongst others they are:
added support for new types of midi messages. poly and channel aftertouch, pitchbend, song position messages types were added. This comes with an adjustment of the web interface too. A new way is that one picks the type of control (fader, list, pad, envelope) and the message type is selected in the Control properties.
controls use 24-bit RGB colours. ie. the limitation of 6 fixed colours is removed. Note, electra internally uses 16-bit RGB565 scheme, therefore conversion affects the final colour. The web editor provides now larger selection of colours. I am heading towards having number of colour sets compatible with other software (Electra, Ableton, Bitwig, Novation components, etc).
control variants are now supported. It is possible to pick different visual styles of given type of control. Faders come in two flavours: thick and thin. Lists can be either the lists with dots or a button styly type (tap switches between values). Note, the dial style fader is not accessible yet - not easy to fit the graphics in the tight space of the controlâŚ
control modes are supported now. For pads, momentary and toggle (it was already there). For faders unipolar and bipolar operation can be selected.
An option to specify if NRPN messages send the RPN reset bytes has been added.
incoming SysEx and SysEx MIDI learn support virtually unlimited messages. I tested that with 4k TX7 bank transfers. It works, although the web editor needs quite some time to process and display long midi-learnt messages.
The Ableton integration (developed by @jhh) seems to work nicely with this firmware.
I still know about number of glitches that need doing. Above has been tested on both MacOS X and Windows and seems to be fairly stable. The website app needs doing too.
The firmware file for those who have troubles with update on the web: firmware-3.0-a.20.img.zip (316.6 KB)
quick question - I want to call control:setColor(), but to do that, I thought I needed to get the control object and to do that I need to call controls.get(ID) where ID = the control ID.
I have 1 control on screen in the first position, yet controls.get(1) is failing with the message âControl does not existâ
When uploading a preset, the E1 responds with 0xF0 0x00 0x21 0x45 0x7E 0x05 0xF7 (unknown SysEx) before ACK 0xF0 0x00 0x21 0x45 0x7E 0x01 0x00 0x00 0xF7. What gives?
Also added notifications on snapshot list and bank changes. There are also calls to query the list of presets and snapshots. I will add these later today.
@NewIgnis would you be willing to check if Yamaha TG33 preset can handle lists with more than 255 values?
The firmware is available on beta.electra.one. Hereâs the firmware file for those who have problems with the update from web - firmware-3.0-a.21.img.zip (316.7 KB)
Am I missing something? I thought I just needed to have patch.onRequest() and patch.onResponse() in my LUA for it to work when I pressed Button 4.
This is for a new template.
I see the message âonRequest not definedâ in the log. Iâve tried editing the Request and Responses sections and also editing the JSON section and none of it seems to be working exactly right.
Sometimes I can get the patch request sent, but onResponse never seems to trigger.
Whatâs the desired way to just use the onRequest/onResponse I have defined in LUA (or is that not how itâs done now)
Trying to have a template send data out MIDI port 2, channel 1. Downloaded the updated template to the ElectraOne. When I move the controls, I see the MIDI 1 I/O and USB Host texts light up indicating transmission, but MIDI 2 Out stays dark.
Is there something else that needs to be configured for that to work?
There are a few conditions that must be met in order to fire the patch callbacks:
In order to trigger the patch.onRequest() the device needs to have at least one control assigned. If there is no control, the device definition is not transferred to the controller. The device structure is passed as a parameter:
function patch.onRequest (device)
print ("Requesting patches: device=" .. device.id);
end
if there are 3 devices used in the preset, the patch.onRequest() will be called 3 times:
The patch.onResponse() is triggered when the device patch response header data is matched. That means you need to have the JSON response header defined in the preset, otherwise electra cannot recognize that the incoming SysEx message is a patch response.
function patch.onResponse (device, responseId, data)
-- print the header information
print ("device id = " .. device.id)
print ("device channel = " .. device.channel)
print ("device port = " .. device.port)
print ("responseId = " .. responseId)
print ("manufacturer Id = " .. sysexBlock.getManufacturerSysexId (data))
end
with the following patch definition:
results in:
when sendmidi dev "Electra Controller Electra Port 1" syx 01 02 03 04 is issued.
hmm, just tested that with CC and SysEx messages assigned to a fader control.
When the faderâs device is configured to be on Port 2, I get messages on that port. When I update the device to be on Port 1, messages go to that port correctly too. Can you describe what you are doing in more detail? Thanks!
Thank You for the Update!
If I turn on a pad (toggle), only a strip on the left edge of the pad will be âlightâ and the âsubscriptionâ. is that right?