Sysex to StreamDeck

I’m using the Midi plugin to control a virtual organ program (GrandOrgue). Stops, pistons, couplers: everything is working perfectly mainly using the Generic Midi button.

The only thing I would still like to add is a way to display the current value (000 to 999) of a particular label. The label includes a feature that will send its value as a SYSEX Haupwerk 16 Byte String Value (or 32 byte, or LCD value/name). But how to grab this on the StreamDeck?

The Midi plugin includes both a Sysex button and a Script button so I am hoping one of those would work. If only I knew how – but I don’t. I could set up a counter and increment it every time I update the value in GrandOrgue but it would be way too easy to get it out of sync. Grabbing the actual label would be much better.

Can anyone provide an idea of how an incoming sysex value can be displayed in a StreamDeck button. Thanks.

This can be solved with a script for the Generic Midi button.

If you can provide an example of a real, complete Sysex message and how you want it displayed, I can take a look at it.

Thanks for your help. The sysex stream if the label shows 006 would be:

 F0 7D 19 00 30 30 36 20 20 20 20 20 20 20 20 20 20 20 20 20 F7

If the label shows 137 the stream would be:

 F0 7D 19 00 31 33 37 20 20 20 20 20 20 20 20 20 20 20 20 20 F7

As I understand it, the bytes are as follows:

1 = F0 (required to start stream)
2 = 7D (GrandOrgue identifier)
3 = 19 (event; apparently 19 is for 16 byte string value)
4 = 00 (others have indicated this is for display type)
5,6,7 = the three characters displayed in the label (I asked for a length of 3 bytes);
8,9, …, 20 = blanks (20) filling up the 16 bytes
21 = F7 (required to end stream)

So all I want to do is have StreamDeck dynamically display the 3-digt label (e.g., 006 or 137) without having to push a button. The value changes at any time so a push button won’t work. Thanks again for pointing me in the right direction.

[(sysex:F0 7D 19 00 XX F7){text:#TRIM(@e_sysextext)#}]

Copy the script above, paste it into a text editor (not a word editor) and save the file somewhere on your hard drive. A recommended location is the “Documents/Trevliga Spel” folder, and I also recommend the extension “.midiScript”. The extension can be anything you like (except ”.js”), but using “.midiScript” shows you exactly what kind of file it is.

Add a Generic Midi button, configure it as a “Scripted Button”, tell it to load the script from a file, and point it to the saved file.

Configure the correct Midi ports, and it should work.

I assume you also want the button to do something when you press it, and we can build on the script to do that.

Success! Thank you so much – this opens up a lot of new possibilities. Regarding pressing the button, I was originally just going to use it for display and not pressing. But have now added to your script a couple of lines I had previously worked out to reset the counter to 000. Thanks again – you can take the rest of the week off.