We already talked about that, see Additional MIDI controller as an E1 expander - #16 by Abbes.
Right now you are mapping Midi CCs → Slots. But i think, you should map MidiCCs → Controlset+Pot. As with non-Standard Graphics, you assign a Controlset + Pot Combination, to control a Function. Means if you assign MidiCC 13 to Control Pot1 on ControlSet 2, this MidiCC will allways control the same, as Pot1 on ControlSet2 would control, no matter to what you assign this Pot. Thus you are not Bound to the Slot.
@martin what are your thoughts on these questions?
I think this makes sense. The mapping is intuitively obvious, especially if you have presets with different pages with different non-standard layouts. In fact, a global assignment (over all presets) would then also work for such presets with non-standard layouts.
no, they are not pinned by default. Note, pinned means they are actively listening and running timers. But, on mk2 presets are parsed and initialized just once when you load them for the first time. The controller keeps them in the memory then. If you switch to another preset and then back to the original one, it will not be re-initialized. If the subscriptions are lost between the preset switches, it is something I need to review.
Hello, I just tried to install the beta firmware, and as indicated in the documentation, while the installation bar wasn’t moving and after waiting for 1 minute, I turned the Electra One off and on again. Since then, it won’t turn on anymore, and I don’t know what to do. Thank you for your feedback!
Maxime
I missed (or forgot) that discussion. The slot assignment is done that it will handle usual changes to the layout but I definitely like the control set/pot id idea more. I will change it accordingly. Another benefit of that way is that the controller may have more than 3 control sets defined…
yes, the recent changes to the internal API were made so that all requests can be easily added to any external API (Lua, sysex, possibly MIDI control). I am planning to add support for majority of actions that can be done in Lua in the Sysex API.
The Lua calls are not much slower than the Sysex API requests. The Lua API merely validates the parameters and then it passes them to the underlying internal API (c++) function. For Sysex API calls, it is much similar. The Sysex/Json request is parsed and the data is passed to the same internal API c++ function.
I have been recently working on the “control set” issue you reported. When I was running your preset in with a debugging probe, I noticed that certain internal functions are called many times after “switching the page” with the “<<
” “>>
” buttons. I am planning to take a look at it later this week.
Hi Max,
can you open the bootloader again? ie. start the controller with the right-bottom button pressed.
The original v3.6.1 firmware should be shown on the screen as a blue box. Tap on it. It should re-flash your controller back to the original firmware. If this works, we know that things are fixed and we can take a look why the update to beta firmware failed. If you needed any assistance, please ping me on the PM.
Martin
Looking forward to hearing what you find out about this!
Great to hear that adding requests to any external API will be easy! What would be really helpful for my Reaper control surface plugin is the ability to change the control type on the fly (e.g., switching a fader to a button or a list). Is that something you’re planning to implement in a future version?
HI @martin. Quick question on how the Development Sandbox works, as I try out the 3.7 firmware. If I just want to change just one configuration setting, but leave everything else untouched, can I just include the JSON for that change only?
e.g.
{
"uiFeatures": {
"controlDoubleClickAction": "none"
}
}
Hi @martin ,
I tried the firmware, so far so good, it does not seem to break my existing presets
However perhaps I am misunderstanding, if I try the Alt functions config you posted, none of my side buttons work anymore. If I then upload the Default layout, they work again.
Did you find anything that may cause this behaviour?
yup, with the recent changes I made to how the controller processes internal api calls (on synchronized queue + scheduler), I put an constraint onto Lua chunk size that can be processed. It is 80 bytes. With you running into problems because of that, I will pass a pointer to a memory chunk of arbitrary size (in the queue). I still want to impose some limit on the Lua chunk size. What is the length of your lua commands?
hmm, other example configs for buttons work ok?
And with the ALT config example, “none of my side buttons” means that none of the six buttons or the three on the left side? Sorry, I just want to make sure I understand the issue 100%.
The Lua commands[quote=“martin, post:53, topic:3219, full:true”]
yup, with the recent changes I made to how the controller processes internal api calls (on synchronized queue + scheduler), I put an constraint onto Lua chunk size that can be processed. It is 80 bytes. With you running into problems because of that, I will pass a pointer to a memory chunk of arbitrary size (in the queue). I still want to impose some limit on the Lua chunk size. What is the length of your lua commands?
[/quote]
Most LUA commands are short, but there are two that send lists of device names or clip names to the E1. Those can easily be hundreds of bytes long. If putting a limit is important to you, then do it, and I’ll work around it (sending names one by one with a separate LUA command). My only concern is that this will generate lots of ACK messages that the script will ignore anyway. Would there be a way to tell the E1 not to send an ACK for a certain command?
When I tested by uploading any of the example config for the side buttons, all of the 6 side buttons simply stopped responding. When I uploaded Default after, they worked again. Perhaps I did something wrong, I will give it a second test today and report back.
Hello, thank you for your message. Indeed, I was able to revert to the previous firmware. So I will wait for the new stable firmware to be released and then I’ll install it. Have a great day!