Swap Translators On/Off

Hi, there is a problem with a plugin I want to link some knobs to.
One knob has 8 different tabs of the same knob. Unfortunately, they all have independent addresses, so I would need 8 hardware knobs to link to that one knob.

There are 3 knobs in that problem, and another place is an editor with 4 knobs times 8 different tabs. So I’m looking at needing upwards of 50 knobs just for a few things in this one plugin. This is unreasonable.

So I’m thinking virtual banks; I would set up custom outputs for each bank. bank A knob 1 would send cc#1. Bank B knob 1 cc#2 etc. The problem is the only way I know how to do this is by preset switching. So I’m looking at needing up to 16 new presets just to solve this one thing.

Is there an activate/deactivate translators output feature, just like the preset switching? So pushing a button will activate a cluster of translators; disabling the other ones, in the same preset? So this is manageable, instead of having a ridiculous amount of presets?

Hi @SuperTRev ,

There is currently no way to disable translators via outgoing actions.

However what you want can be done with one translator and one global variable.

It this example global variable “ga” controls the bank and the rules control which knob is output.

If ga=0 then CC1-8 are output
if ga=1 then CC9-16 are output

Now you have 8 knobs controlling 64 values.

Banked-Knobs-2021-11-07.bmtp (1.5 KB)

Steve Caldwell
Bome Customer Care


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

Cool. I have 8 pads in this plugin’s virtual bank that I can use to define the articulator for the knobs.
Each pad will click on the tab # on screen, and have a rule for a global S1 variable.
Pad 1 clicks on the Articulator 1 tab, and the rule is S1=1
Pad 2 clicks on the Articulator 2 tab, and the rule is S1=2

So each knob will have 8 translators each with a unique cc and with the assignment:
If S1!=1 then exit rules, skip outgoing action. (whatever number their articulator is)
Seems to be working so far. This will be a lot of work, but I’ll get it done.
Thanks again.

Oh, the other side of it is the editor, that needs to have two tabs lined up for each knob. It’s an ADSR envelope for each.
So I remember seeing somewhere there is an assignment that says two global variables need to have their values match, in order to execute the output. ?

Would it be this: if S1!=1 then exit rules skip outgoing action
if S1==1, then goto next rule
if T1!=1 then exit rules skip outgoing action

OK, if only the two global variables need to match it would be

if s1!=t1 then exit rules, skip outgoing action.

If both s1 and t1 have to equal 1 then

if s1!=1 then exit rules, skip outgoing action
if t1!=1 then exit rules, skip outgoing action

There are other ways to write it as well. This post has a lot of examples of more complex Boolean logic.

Steve Caldwell
Bome Customer Care


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

Ok, well on second thought I’m not sure how MTP feels about having to read like 12 translators, processing rules and numbing 11 of them for every parameter value change of a knob.
So maybe I will use presets for the banks and then the variables for the programs, which might alleviate about half the processing stress.

Hi Trevor, you can have a translator to handle bank changes as the global variable changes if you want. My strategy is to use as few translators as possible just to make the project easier to maintain. I do most of the work in rules where possible.

Seldom do I run into situations where we are overwhelming the MT Pro midi engine. I often have actions, for examples to update 64 LED’s with a timer when I press any of the associated buttons.

Steve Caldwell
Bome Customer Care


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