Command bytes
have the most significant bit set to one:
1 mmm xxxx
Data Bytes have the most significant bit set to zero:
0 xxxxxxx
Midi messages begin with a Command which may be followed by a number of data
bytes depending on the message type.
Exceptions:
- system real-time messages (for example timing clock message) are 1 byte messages and can be sent in the middle of other messages.
- midi devices can use a technique called running status to make data transmission faster. Running status allows a device to send a stream of messages of the same kind without repeating the status byte for each message.
- Because a note with a velocity of 0 has no volume, a pair of data bytes
with 0 velocity can turn off a note without sending a note off message that
would break up the steam of note on data.
Midi codes
1000 nnnn 0kkkkkkk 0vvvvvv | Note off |
1001 nnnn 0kkkkkkk 0vvvvvv | Note on |
1010 nnnn 0kkkkkkk 0pppppp | polyphonic Key pressure |
1101 nnnn 0ppppppp | Channel pressure |
1100 nnnn 0ppppppp | Program change |
1011 nnnn 0ccccccc 0vvvvvv | Control change |
0 = undefined
1 = modulation wheel or lever
2 = breath controller
3 = undefined
4 = foot controller
5 = portamento time
6 = data entry MSB
7 = main volume
8 = balance
9 = undefined
10 = pan
11 = expression controller
12 - 15 undefined
16 - 19 general-purpose controllers (numbered 1 to 4)
20 - 31 Undefined
32 - 63 LSB for values 0 to 31
64 Damper pedal (sustain)
65 Portamento
66 Sostenuto
67 Soft pedal
68 Undefined
69 Hold 2
70-79 undefined
80-83 general-purpose controllers (numbered 5 to 8)
84-91 undefined
92 tremolo debth
93 chorus debth
94 celeste (detune) debth
95 phaser debth
96 data inrement
97 data decrement
98 non-registered parameter number LSB
99 non-registered parameter number MSB
100 registered parameter number LSB
101 registered parameter number MSB
102-121 undefined
122 reserved for channel mode messages
1011 nnnn 01111010 0ccccccc | Control change - Local control |
1011 nnnn 01111011 00000000 | Control change - all notes off |
1011 nnnn 01111100 00000000 | Control change - omni mode off |
1011 nnnn 01111101 00000000 | Control change - omni mode on |
1011 nnnn 01111110 0000mmmm | Control change - mono mode on |
1011 nnnn 01111111 00000000 | Control change - poly mode on |
1110 nnnn 0bbbbbbb 0bbbbbb | Pitch Bend |
System Common messages
1111 0010 0ppppppp 0ppppppp | Song position pointer |
1111 0011 0sssssss | Song select |
1111 0110 | Tune request |
1111 0110 | EOX end of executive |
System real-time messages
1111 1000 | Timing clock |
1111 1010 | Start |
1111 1100 | Stop |
1111 1011 | Continue |
1111 1110 | Active sensing |
1111 1111 | System reset |
System Executive Messages
1111 0000 0iiiiiii 0xxxxxxx (0xxxxxxx ...) 11110111
|
?
1 sequential circuits
7 kurzweil
15 ensoniq
16 oberheim
64 Kawai
65 Roland
66 Korg
67 Yamaha
68 Casio
69 Akai
MIDI Detailed specification
International MIDI Association
5316 W. 57th St
Los Angeles
CA 90056
tel 213 649 6434