request: Toggle Preset

For outgoing actions that do a Preset Change, I'd like to be able to toggle presets on and off with the same keystroke instead of having to make two separate translators to activate and deactivate a preset. So along with "Activate Preset" and "Deactivate Preset," I request a third option, "Toggle Preset."


Great suggestion. I will see that it is added to the "wish list".


In the meantime, I may have a workaround.



You can activate/deactive presets by preset number. Although you still need separate translators to activate and deactive a given preset, you can use a bit map logic to track all of your presets and then toggle them based on that bit map through only 2 translators for all presets.

In the below example I use ga as the preset bit map.  Bit 0= Preset 1 Bit 1= Preset 2 and so forth up to bit 31 (preset 32).  Setting this to negative 1 (signed int) sets all to active at project start. 

I then use a timer to iterate through the presets to activate them all at project start. I use the global variable gb as the iteration counter for the timer.

Changing the value of ga will change which presets are active or inactive at project start.

bit 0 = preset 1

bit 1 = preset 2


so a value of 3 is enable preset 1 and preset 2 only

I then set up 2 translators for activating or deactivating presets by number. We use the number (note on number) to calculate which preset we want to manipulate.  We use the bitmap to determine the current state, then toggle the bit and either enable the preset.

While not perfect on what you are asking for, at least we only need 2 translators to handle all numbered presets.

I commented the rules, so hopefully it will make sense to you.

If using more than 32 presets, then you will need additional global variables and logic to select the proper global variable before manipulating it's bits.

You can test the toggle feature by sending note-on messages on MIDI CH1 where the note is the preset number you want to toggle +1  (note 0 = preset 1 note 1 = preset 2 etc)

In my example I never disable preset 0 since it manages the entire system.


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:







Thanks, I'll study that and try to adapt it.