Feature Request: Switch Groups

It would be great if BMTP had a feature that Metagrid Pro has. And that is the ability to assign a switch group number to a group of objects, in BMTP’s case that would be Presets. When one Preset in the group is activated, the others automatically deactivate. So only one Preset in the group is active at any one time.

Hi, thanks for the suggestion. I’ll pass it along.

In the meantime you could use a global variable to assigned different translators to a given group and use rules to only execute that translators if they belong to that group number (as defined by the global variable).

Say you create group 1. In the beginning of the rules in the translator you have the following. and using ga as the group number.

//What group am I in?
rr=1
// only execute if I'm in the group
if ga!=rr then exit rules, skip outgoing action
// commands to execute if in the current group
//  ...

Similarly there is setting for disabling all other presets (except for always on) when a preset is activated.

You can even have translators that deactivate target presets when the current preset is activated (or on any other incoming trigger)

Also you can activate and deactivate presets with timers using preset numbers instead of preset names.

So maybe you can provide a bit more detail of what you are looking for that currently cannot be done. Maybe just a global concept of a group?

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
1 Like

Thanks Jesse, I like the idea of named switch groups. And while at that, could also add named link groups (enabling one preset will enable all others in the same link group, and the same for disabling).

2 Likes

Thanks for the workarounds. Here’s what I am after:
If I want to alternate between e.g. 1 of 8 Presets, currently I need to add 7 Translators to each Preset in order to deactivate the other 7 Presets using “On Activation of This Preset” Translators. I have this type of system setup dozens of times in my main project. It would be a lot faster if I could just designate a “Switch Group” name or number to each Preset and then BMTP takes care of the deactivation side of things.

Yes, that would be handy.

In the meantime, you could also have a translator that calls a repeating timer the iterates through the presets by number either activating or deactivating them by number. You could even create a bitmap in a variable that would determine for each ‘group’ which presets are to be activated and which presets are to be deactivated. for instance if ga was you global variable and you wanted preset 0, 3 and 4 to be activated (bits 0, 3 and 4) = 11001 (hex 19 or decimal 25) You could iterate through the bits of ga activating presets 0,3, and 4 and deactivating all other bits. Up to 32 numbered presets could be handled this way with a single global variable.

So one translator to trigger the timer.
One timer translator (using Perform to call one of the two below)
One translator to disable a preset by number
One translator to enable a preset by number

In this manner, you don’t need a lot of ‘On activation’ translators within each preset to deactivate the others.

I know this is not your end goal but just another way to deal what Bome MIDI translator Pro can currently do.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Also, instead of a timer. You could use ‘Perform’ as an outgoing action in rules to perform many enable/disable actions.

If ga==1 then goto "Group1"
if ga==2 then goto "Group2"
...

Label "Group1"
// Enable preset parameters first is preset number and second is 1 for enable or 0 for disable
Perform "PresetControl",1,0
Perform "PresetControl",5,1

Goto "Done"

Label "Group2"
// Enable preset parameters first is preset number and second is 1 for enable or 0 for disable
Perform "PresetControl",1,1
Perform "PresetControl",5,0

Label "Done"

Hopefully, you get the idea. This way all of your preset control logic is in one translator.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

I will look into that more. Is there any chance you could set up a small project with this and post it here for me? Maybe with 1 group of 3 Presets? I would really appreciate it.

Here ya go.

Preset-Control-Example-using-Perform-2025-02-18.bmtp (3.1 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thanks so much!!. I will check it out tomorrow.

1 Like