Background
.
The RJM GT Mastermind pedal controllers are MIDI pedalboards with a collection of buttons above which are little text displays. The normal way to use this pedal board is to create your banks using their software and define what information each button should send out when pressed and/or released. As well as buttons, you can also connect several expression and sustain (On/Off) pedals to it. Here’s a picture of it, taken from their website.
SysEx Support
.
It turns out that RJM supports the ability to send SysEx messages into the pedalboard and this opens up some powerful options when combined with Gig Performer 4. The messages allow such things as changing the label text and the color of each display.
Using with Gig Performer
.
I use this pedal board with all my bands and with the use of a gig script (new in Gig Performer 4) it is possible to have Gig Performer update the labels automatically (including hiding some of them) as you switch from one song to another. This lets me easily see what buttons are needed for particular songs. Further, when used in this fashion, it is no longer necessary to configure different MIDI messages in different banks. For my use case (I have the model with 16 buttons), each button is configured as a simple CC message (using CC numbers 70 to 85) each of which sends 127 when pressed and 0 when released. Gig Performer does the rest of the processing as required for particular songs.
The script
.
I’ll attach the script in its entirety at the end of this article but here I’m just going to post parts of it so I can explain how it works.
- Line 5 defines the prefix that needs to be used for all SysEx messages that will be sent to the GT. Note that although there is a new SysEx type now built into GP Script, it is still sometimes convenient to just use strings so they can be manipulated as text.
- Line 6 defines the name of the MIDI port used to receive messages. It’s a little confusing as one generally uses the term “Input” to imply input FROM a device INTO the computer but RJM have reversed this convention. Note also that variable declarations can include initialization.
This function is used to construct a complete SysEx message given the parameters defined by the GT specification (the targeted page, button number, etc)
This is a convenience function to set the title of the large center display. Note the new function on line 31 that is used to send a SysEx message to a MIDI device using the actual exposed name of the device rather than the usual mechanism inside rackspace scripts where handles are defined to refer to plugin blocks.
This is simply a convenience function used by the rest of the script to construct the appropriate SysEx message given the desired button, color and text.
Hopefully self-explanatory – just a way to create some default labels for functions that are useful to have around.
This function gets the name of all the song parts of the current song and sets the button labels accordingly. This allows me to switch from one song part to another by pressing a button and the button labels have the actual part names, making it easy to see what to press.
Finally, we define a callback that is triggered whenever we switch songs. When that occurs, we just update the large panel with the song name and set the names of the song parts.
.
Note: as usual, these scripts are not officially supported by Deskew Technologies, LLC but we hope you will find such examples useful, perhaps as a starting point to tailor it to use with your own device. You can also ask questions in the GPScript area of the Community forums..
Related topics:
– My live keyboard rig
– How to change sounds and control plugins from your MIDI controller