Hi, great suggestions. I know Bome is working on some of this but I’m not privy to the details and especially time lines.
As far as translators triggering other translators, this is possible using one shot timers. I do this all the time. You have translator 1 trigger a timer by name (say “timer group 1”). Any translator with incoming action of “timer group 1” will trigger. Kinda sounds like your concept of “translator group”.
Typically I do this with a timer I call “Init” as follows:
Translator – Incoming Action – On project open trigger “Init”
Translator – Incoming Action – On pressing computer ESC key “Init”
Translator – Incoming Action “Init” – Set global variables.
Translator – Incoming Action “Init” – Outgoing Action Timer “Refresh “LED”
Translator – Incoming Action “Refresh LED” ga times
// Rules to iterate through the various LED note numbers and values.
… ie ga=ga-1
Outgoing Action Note on note ga value gb (just as and example)
—
You can have as many translators with the same incoming action as you want. You can even group them under different presets so that you can enable and disable various ones by the enable/disable preset actions as well.
Most of the issues I have are not with the flexibility of MT Pro with my thinking through how I want to organize the project for maximum flexibility with minimal maintenance.
For instance, I rarely direct incoming and outgoing MIDI actions to a given port. I usually just set default ports at the project level, Organize my presets by their port names (aliases) and the override the default ports within the presets. Occasionally I have a translator within a preset to override the preset ports. I do heavy use of aliases since I have many MIDI controllers and usually not the same as users that ask questions on this board. This way I can just use the alias name for their controller and with reassigning the alias all of a sudden use a total separate controller (or controller emulator using MT Pro).
I also have a few quick reference documents that I keep to remind me how to handle more complex things like boolean logic and bit mapping (for LED control). Most of this I found by search on the old forum.
Another technique for controlling the enabling/disabling of translators is to use a global variable and then put a rule in the translators to look at that variable. An example of this is using the translator for a “shift” function or shift state. For instance you use ga for example to turn on the shift function and then check it with rules in the translators
// Execute action only if non-zero
if ga!=0 then exit rules, skip outgoing action.
I hope this helps!
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz