Sending timed SysEx messages

Hi all,

I’m wondering if there’s a way to automatically send SysEx messages to external hardware, say every 1 second. I looked at some Metronome and Media Player bindings, but there didn’t appear to be anything that wouldn’t require manual input.

I’m trying to get the Steinberg CC121, a DAW controller, to work with Cantabile. It’s designed specifically for Cubase, but I’ve found some cases on the Steinberg forums where people adapted it for other applications. It does send MIDI messages, but the catch is it remains in “idle” mode until it detects that Cubase is running. When in idle mode, it doesn’t transmit any MIDI messages. It turns out that the CC121 detects Cubase by way of the SysEx message [0xF0, 0x43, 0x10, 0x3E, 0x15, 0x00, 0x01, 0xF7]. And it needs to receive this message every second or two, or it goes back to idle mode. Cubase apparently sends this message constantly to keep the hardware on. So it seems like there might be a way to replicate this in Cantabile. I’ve managed to create a binding where a MIDI note (or whatever trigger) sends this message, which pops the CC121 out of idle mode and enables it to send its own MIDI messages, but after just a couple seconds it stops. Is there any way to make Cantabile automatically repeat this binding, or repeatedly send SysEx data in some other way?

Media player with a loop? Create a MIDI file with nothing in it but CC121 sysex. Load that into a Media player ( maybe in the Background Rack?), set it to loop, and set the MIDI out to the device. You might need to experiment some.


Maybe a bit mad - use reajs in background rack to send it with a timer? Some coding required.

Hey hlbuck,

I took a look at this and here’s what I came up with. It’s a linked racked that can be loaded into all songs of a preloaded setlist or into the background rack (as an embedded rack) and it sends your sys-ex data to the rack midi out of it to send wherever you want at the 1 second interval you asked about. First, here is the rack I made and below I look at the inside of it and how it works.

Oscillator Sys-Ex.cantabileRack (15.8 KB)

In general the racks states and their “Enabled” State behavior are used to keep the rack states sorted so the first 2 states oscillate or are suspended by state 3.

Rack State SEND SYS_EX - This first binding sends the sys-ex message and the second one changes to the the “Delay” rack state.

Rack State - DELAY - the third binding delays 1 second and switches back to the first state “SEND SYS_EX”

This repeats automatically till C3 is closed or you use the 3rd rack state which acts as a kill switch for the oscillator.

Hope this does some good for you! :grinning: however when you use it remember it is a free running oscillator and if it is causing trouble hit the OSCILLATOR OFF state to shut it down.