MIDI Standard Messages
MIDI serial data flows at the rate of 31.25 kilobits per second and is
organised into 10-bit words. The first bit is called the START bit ( which is
always 0 ), the next eight are the desired information, and the last is the STOP
bit ( which is always 1 ). The start and stop bits delineate the desired data
and provide the required synchronization but do not carry MIDI information
themselves. A complete word is transmitted in 320 microseconds.
When we look as a digital word, 10010110, the bit at the far
left is considered the Most Significant Bit. The remaining seven bits, 10010110,
are considered the Least Significant Bits. Most MIDI messages consist of
one, two or three bytes. Each byte may be classified as a status or data
byte.
The eight-bit MIDI data is contained between the start and stop bits. There
are two main types of bytes status and data. The lead bit of the status byte is
always 1 and that of a data byte is always 0. This enables the microprocessor to
distinguish between the two types of bytes and so make a corresponding decision.
So a MIDI message consists of a status byte followed by 0,1 or 2 data bytes.
The MIDI message can be either a channel or system message. The channel message
can be addressed to one of sixteen channels whereas a system message is
addressed to all channels. The channel message can operate either on channel
voices or on channel modes. The system messages provide real-time, common or
exclusive control of the MIDI equipment.
MIDI MESSAGES
| Message |
Status |
Data Bytes |
|
Local Control Off
|
1011bbbb
|
01111010
|
00000000
|
|
Local Control On
|
1011bbbb
|
01111010
|
01111111
|
|
All Notes Off
|
1011bbbb
|
01111011
|
00000000
|
|
Omni Mode Off
|
1011bbbb
|
01111100
|
00000000
|
|
Omni Mode ON
|
1011bbbb
|
01111101
|
00000000
|
|
Mono mode On
|
1011bbbb
|
01111110
|
0zzzzzzz
|
|
Poly Mode On
|
1011bbbb
|
01111111
|
00000000
|
| Message |
Status |
Data Bytes |
|
Begin System Exclusive
|
11110000
|
0mmmmmmm
|
0xxxxxxx
|
| MIDI Time Code |
11110001 |
0tttdddd |
|
|
Song Position Pointer
|
11110010
|
0jjjjjjj
|
0kkkkkkk
|
|
Song Select
|
11110011
|
0sssssss
|
|
Tune Request
|
11110110
|
|
End System Exclusive
|
11110111
|
|
Timing Clock
|
11111000
|
| Start |
11111010 |
| Continue |
11111011 |
| Stop |
11111100 |
|
Active Sensing
|
11111110
|
|
System Reset
|
11111111
|
| Variable |
Value |
Range |
| MIDI Channel |
bbbb |
0000 to 1111 |
|
Key Number
|
kkkkkkk
|
0000000 to 1111111
|
|
Velocity of Note On/Off
|
vvvvvvv
|
0000000 to 1111111
|
|
Force On Key
|
fffffff
|
0000000 to 1111111
|
|
Address of Control (0-121)
|
ccccccc
|
0000000 to 1111111
|
|
Value of Control Output
|
CCCCCCC
|
0000000 to 1111111
|
|
Programme Select
|
nnnnnnn
|
0000000 to 1111111
|
|
Pressure Value
|
ppppppp
|
0000000 to 1111111
|
|
Pitch bend LSB
|
iiiiiii
|
0000000 to 1111111
|
|
Pitch bend MSB
|
hhhhhhh
|
0000000 to 1111111
|
|
Number of Channels
|
zzzzzzz
|
0000000 to 1111111
|
|
Number of Song
|
sssssss
|
0000000 to 1111111
|
|
Song Position Pointer LSB
|
jjjjjjj
|
0000000 to 1111111
|
|
Song Position Pointer MSB
|
kkkkkkk
|
0000000 to 1111111
|
| Manufacturers Identification |
mmmmmmm |
0000000 to 1111111 |
| System Exclusive Message |
xxxxxxx |
0000000 to 1111111 |
| MIDI Timecode quarter frame message |
ttt
dddd |
000 to 111
0000 to 1111 |
Table 4: MIDI Variables
For the Midi Message tables bbbb is a four bit binary nibble representing the
MIDI channel from 0000 ( Channel 0 ) to 1111 ( Channel 15 ). The seven bit
variables i.e. kkkkkkkk the MIDI key number range from 0000000 to 1111111 from 0
to 127.
|