Inline MIDI commands
Found under: Settings > Song actions > Edit (Lyrics extra settings menu)
Inline song section MIDI messages
In addition to whole song MIDI messages sent on song start, you can also add inline MIDI messages directly to song sections in the song editor window. These messages can be triggered at a time of your choosing by clicking/selecting the song section containing them in Performance/Stage modes. Any messages saved in a section are all triggered in order after clicking the section. To have them trigger separately, they would have to be created as part of a new section.
You can adjust the delay between each message using the slider in the MIDI settings page
The syntax used for these inline MIDI messages can be the same as the song messages (e.g. 0x9B 0x20 0x64), or using shorthand syntax instead which is easier to understand. Because the inline MIDI messages are not for display, they are entered as comment lines starting with a semicolon ; in the text edit window.
You can either enter this shorthand code manually, or use the link in the advanced options at the bottom of the lyrics page to help you build correct code. You can find out more about the MIDI shorthand code here
The standard shorthand options (which will work for all MIDI devices) available are as follows:
;MIDI{1-16}:{CC,PC,NO,NX,MSB,LSB,BB..}{0-127}:{0-127}
CC = Control change
PC = Program change
NO = note on
NX = note off
MSB = Most significant bit
LSB = Least significant bit
BB... = BeatBuddy specific commands (more detail below)
START = Sysex start (no MIDI channel required)
STOP = Sysex stop (no MIDI channel required)
While this looks quite complicated, it makes more sense to break it down and show some examples. Note that the values {0-127} are based on computer numbering that starts at 0 rather than 1. So the first value is 0. I've chosen to keep MIDI channels as human numbering starting at 1 and ending at 16!
The inline MIDI code must start with ;MIDI, then the channel number, then a colon :. Multiple messages can be added by adding them as new lines.
If you wanted to make sure any connected MIDI devices that play audio have stopped, use the following command:
;MIDI:STOP
Suppose you want to send a program change on MIDI channel 5 to select the first instrument available (number 0).
;MIDI5:PC0
Next you want to send a MIDI note for middle C (numeric value of 60) on MIDI channel 1 to play at a volume/velocity of 100.
;MIDI1:NO60:100
Next you want to send a MIDI controller message to a BeatBuddy pedal to trigger the device to start playing. The user manual for this suggests a control change value of 114 and using a value greater than 0 (so we'll use 1). The BeatBuddy defaults to listen to any MIDI channel, but let's send this on MIDI channel 8:
;MIDI8:CC114:1
Most MIDI devices will help you decide which MIDI message type is required for each type of action if you check your device manual. PC messages are usually used to pick instruments, patches, songs, etc. CC messages are usually used to change settings or trigger specific actions. MSB/LSB values are not used as often, but when they are, they are often used as a pair of messages. MIDI shorthand cannot be used for SYSEX MIDI commands, but standard 0xF0 ......... 0xF7 commands can be used.
As an example in your song, imagine you wanted to change the instrument using a program change on a connected MIDI keyboard when you click on a verse and then on a chorus in a song. We'll use MIDI channel 2 in this example:
[V1]
;MIDI2:PC0
.G D Em
This is line one of the verse...
[C]
;MIDI2:PC1
.G C G D
This is line one of the chorus...
Specific BeatBuddy shorthand MIDI commands
To save some of the pain of trying to work out the specific CC MIDI messages from the BeatBuddy manual, I've included some recognised shortcuts - they can be easily spotted because they all start with BB:
Transitions
BBT{1-32} = Transition to a chosen part number
BBTX = Exit the transition fill and move to the part (should be called immediately after the above)
BBTN = Transition to the next part (also call BBTX afterwards)
BBTP = Transition to the previous part (also call BBTX afterwards)
BBTE{1-32} = Exclusive transition to a chosen part number (exclusive means that it wont affect connected Aeros Loop pedals)
BBTEX = Exit the exclusive transition fill and move to the part (should be called immediately after the above).
BBTEN = Exclusive transition to the next part
BBTEP = Exclusive transition to the previous part
Timing changes
BBH = Switch to half time playback
BBHX = Exit half time playback (and return to normal time)
BBD = Switch to double time playback
BBDX = Exit double time playback (and return to normal time)
BBBPM{40-300} = Tempo change
Song changes and output
BBV{0-100} = Change the output volume
BBS{1-127}/{1-127} = Load a folder/song. Both folder number and song are required. While the folder number can go way higher than 127, this would not work if your device is set to Aeros mode
BBI = Play the intro (start the song)
BBO = Play the outro (end the song)
BBP = Pause/unpause the playback (each time this is used, it toggles the setting)
BBF = Play a fill
BBA = Play an accent note
For example, if you want the BeatBuddy to transition to part 2 when you click on the chorus section, you would use the following code inside the chorus tag in the song (assuming we are using MIDI channel 1):
[C]
;MIDI1:BBT2
;MIDI1:BBTX
.G C G D
This is line one of the chorus...