MIDI Reference (replace # with hex channel number):

Message Type Status Byte Data Byte One Data Byte Two
Note Off 0x8# note number velocity
Note On 0x9# note number velocity
Poly Pressure 0xa# note number value
Control Change 0xb# controller number value
Program Change 0xc# program number
Channel Pressure 0xd# value
Pitch Bend 0xe# 0 bend amount
System Exclusive 0xf0 (sysex message) 0xf7
Time Code 0xf1 data
Song Position 0xf2 0 position
Song Select 0xf3 song number
Tune Request 0xf6
Clock Tick 0xf8
Start 0xfa
Continue 0xfb
Stop 0xfc
Active Sense 0xfe
System Reset 0xff

Please note: status or data bytes may be entered in either hex (0x__) or decimal format, and may be mixed within a MIDI message

Status byte hexadecimal channel # lookup:
0x_0 = channel 1
0x_1 = channel 2
0x_2 = channel 3
0x_3 = channel 4
0x_4 = channel 5
0x_5 = channel 6
0x_6 = channel 7
0x_7 = channel 8
0x_8 = channel 9
0x_9 = channel 10
0x_a = channel 11
0x_b = channel 12
0x_c = channel 13
0x_d = channel 14
0x_e = channel 15
0x_f = channel 16

Sample Messages:

/midi/0x90 60 x - Note on, channel 1, note 60 (middle C), velocity will be 127 on press, zero (note off) on release when used with a momentary push button

/midi/0xbf 1 x - Control change, channel 16, controller 1, value will be determined by the slider or rotary's value, range 0-127

/midi/0xc2 x(0..15) - Program change, channel 3, program number determined by slider or rotary, range 0-15

/midi/0x96 60 x 0x96 67 x 0x96 76 x 0x96 83 x 0x96 90 x - Multiple note-on messages (a chord), channel 6, notes 60, 67, 76, 83, 90, notes off when button released

/midi/0x96 60 x 67 x 76 x 83 x 90 x - Same as above (using running status)

/midi/0x96 60 x(0..100) 67 x(0..96) 76 x(0..92) 83 x(0..88) 90 x(0..84) - Same as above, but with different velocities for each note-on

/midi/0xb0 22 99 - Control change, channel 1, value 99 - with no variable, it only sends on a button press, but not on release

/midi/0xb0 25 x(0..100) 26 y(0..63) - Control changes, channel 1, each axis has its own range - for an x/y pad

/midi/0xf0 0x43 0x10 0x00 124 x(0..99) 0xf7 - This is a SYSEX message to control the OP1 oscillator fine tuning on a Yamaha DX7

/midi/button/0xfa/0xfc - This will send a start on press and a stop on release if using a momentary button, or for a toggle button it will send a start on the first press (button on)and stop on the second press (button off)

/midi/z/0x90 60 100/0xb0 25 x(0..100) 0xb0 27 y(0..35)/0x90 60 0 - This sends a note-on, channel 60, velocity 100 on press, CC#s 25 & 27 with individual ranges according to x/y position while dragging, and velocity=0 (note-off) on release - used with an x/y pad