How to 'trigger' translations

I have compacted my question to the basics to simplefy it…

Is it possible to activate a translator for a short time tha moment MT receives a “trigger”

I need to translate the first received sysex after MT has received a certain cc (value 127)

The translation of the sysex is no problem.
I only need to block all sysex (with same header/format)
exept the one that is receiced directly after a specific cc is received.

Thanks !!

Hi and welcome to the Bome community!

The attached should do what you want.

I’m using 2 inputs and 1 output.

Input : My-Controller - This is what triggers the enablement of the preset.
Input: Application - The message you want enabled from the application
Output: Destination - The device that you want to send translation to.

Here is how I have the aliases set up. You will need to assign them to the physical MIDI ports that you want to use.


You can learn more about aliases from this tutorial.

There are 3 presets.

The first one is called Preset Control and has the necessary translators to turn on and off the second preset.

The second Preset (1) when enabled will allow the translation of the MIDI message from the controller

Translator 1.0 (Second preset) will turn on the first preset (0) with a note-on MIDI CH1 Note 0 from ‘My-Controller’

Translator 1.2 takes the same incoming action and starts a on shot timer. This timer when tripped will handle turning off the preset again. I set the duration for 1000ms (1 second). You might want to set this shorter. I kept in long for illustration purposes but I’m sure you will want o let messages through sooner.

Translator 1.3 disables preset 0 again after the 1000ms time set in translator 1.2

Preset 0, when enabled allows the specified incoming SysEX from the application to translate and send to ‘Destination’.

Right now there is only one translator.

Now if you otherwise need a MIDI thru path for other translations, I set one up from the Application to Destination. This will allow ‘all’ MIDI messages from the Application to Destination to be untouched.

In this case, the original message from the application will not be blocked or translator. If you need to block it, you will need to add a blocking translator with the same incoming message and outgoing action of none within a preset that is still enabled. That is where preset 2 comes in.

It has the same incoming message as translation 0.0 but no outgoing message, thereby blocking the message since the ‘swallow’ option is set. Swallow is an option that tells you to not allow the original message through the MIDI thru path.

If you do not want to block the original message when translation is off, you can delete preset 2.


Translate SysEX.bmtp (1.8 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Thanks steve,

I can see it’s doing the job, thats great.
I now have to figure out what exactly you have created :slight_smile: But with a bit of effort I will…


I figured it out. Now I understand the logic behind the presets. That was the missing link…


Yes, and you don’t have to do it with presets as shown here.

You can do it with global variables as shown here if you like.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

He Steve,
I’m checking this script and noticed a little hickup in the sysex translation.
Cubase is sending the trackname as sysex on change. So far so good.
This sysex is normally (max) 14 byte long. But sometimes Depending on the Name the sysex is shorter. I have noticed that in that case the translation is done.
Is there a trick to solve this…


You have to set up incoming patterns for each length you want to translate. I know this is not optimal but currently this is the only way it can be done.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

A post was split to a new topic: Gestures for Keystrokes