Resend the same midi message stored in a local variable shortly after hitting space

Hello, here is the thing, I am trying to re create this translator from keyboard maestro as detailed here Expression Maps MIDI Channel Reset - #15 by remark39 - Cubase - Steinberg Forums

I am using my stream deck to send Program Change messages (from 1 to 27) to Cubase to select the correct articulation.
The issue with Cubase is that everytime we hit STOP, it reset the current articulation to the default first articulation.
The goal of this is that we want to force Cubase to re-reset itself to the ‘last articulation sent’ a few ms after hitting STOP (spacebar)

The thing is, I only know how to work with local variables, I don’t know how to configure the output of my spacebar translator



Instead of having StreamDeck send directly to Cubase, have it send to Bome MIDI Translator instead. That way we can capture each program change and then resend it 100ms after you press the space bar.

The first translator captures the value of the program change in global variable ‘ga’ and then forwards the same MIDI message to Cubase.

The second translator looks for the space bar (which is passed through to whatever application is focused) and then 100ms (.1 second later) sends that program change again, thereby setting it to the last program change that was sent.

Of course, Cubase will probably need to have focus for the spacebar to properly process.

For testing, I have my aliases set up as follows. You will need to set them accordingly to your assigned MIDI ports.


You can learn more about aliases from this tutorial.

Streamdeck-to-Cubase-2023-10-22.bmtp (1.3 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

mesmerizing !
I didn’t know global variables work by manually typing in the rules text box.

This simple script is so powerful, it fixes a bug that’s been going on in Cubase forever


1 Like