MIDI System Exclusive Message Formats
In the explanations, below, braces < > are used to represent enclosed MIDI data bytes. Concatenated data is shown by < > < >. Names are also enclosed in braces as symbolic representations defined further into the explanation. Values are decimal unless an H is used to denote Hexadecimal values.
For example, the MIDI bytes to select song mode for DEVICE NUMBER 3 are: F0H, 0, 1, 26H, 3, 1, F7H.
<sys ex message>  | = <F0H> <manufacturer> <device num>  | 
  | <message bytes> <F7H>  | 
<manufacturer>  | = <0 1 26H>  | 
<device num>  | = one byte in range 0 to 15. Must match  | 
  | SYSEX DEVICE NUMBER set in the   | 
<message bytes>  | = <0> to select program mode.  | 
or  | <1> to select song mode.  | 
or  | <2> bypass on  | 
or  | <3> bypass off  | 
or  | <4><14><system data>  | 
or  | <5><31><program data>  | 
or  | <6><34><song data>  | 
<system data> = | 
  | 
<midi channel>  | 1 to 16, 0 = OMNI  | 
<midi sustain>  | controller 0 = off, 1 = on  | 
<program change>  | controller 0 = off, 1 = on  | 
<midi note>  | controller 0 = off, 1 = on  | 
<pitch bend>  | controller 0 = off, 1 = on  | 
<mod wheel>  | controller 0 = off, 1 = on  | 
<foot switch>  | 0 = BYPASS, 1 = STEP  | 
<speed controller #>  | 14 to 31, 13 = OFF  | 
<vibrato rate controller #>  | 14 to 31, 13 = OFF  | 
<vibrato delay controller #>  | 14 to 31, 13 = OFF  | 
<step controller #96>  | 0 = off, 1 = on  | 
<sensitivity>  | 1 to 25  | 
<detune>  | 0 to 100  | 
<detune direction>  | 0 = make sharp, 1 = make flat  | 
<program data> = | 
  | 
<program number>  | 1 to 50  | 
<speed>  | 0 to 25  | 
<scale 1>…<scale 12>  | for C, C#,…: 0=remove, 1 =tune, 2=bypass.  | 
<vibrato type>  | 0 = off, 1 = SINE, 2 = SQUARE, 3 = SAW  | 
<vibrato depth>  | 0 to 100 cents  | 
<vibrato rate>  | 1 to 97 (.1 to 9.7 sec)  | 
44