All MIDI status byte and data byte values are in hexadecimal
| Status Byte |
Data Bytes |
Message | Description | |||
|---|---|---|---|---|---|---|
| 8n | kk | vv | Normally sent when a key (on a synthesizer) is released (note 1) | |||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| kk | 00-7F |
Key which was released This must correspond to a previous note-on message for correct operation |
3C = Middle-C |
|||
| vv | 00-7F |
Velocity with which key was released Devices which are not velocity sensitive should send vv=40 The interpretation of this message is up to the receiving MIDI device |
00=min 40=default 7F=max |
|||
| Status Byte |
Data Bytes |
Message | Description | |||
| 9n | kk | vv | Normally sent when a key (on a synthesizer) is pressed
A corresponding note-off message must be sent for each and every note-on message |
|||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| kk | 00-7F |
Key which was pressed Each value is a 'half-step' above or below the adjacent values |
3C = Middle-C |
|||
| vv | 00-7F |
Velocity with which key was pressed Devices which are not velocity sensitive should send vv=40 By definition, a note-on message with vv=0 is equivalent to the message: "note-off vv=40" (note 2) |
00=note-off (40) 01=ppp 40=mf 7F=fff |
|||
| Status Byte |
Data Bytes |
Message | Description | |||
| An | kk | ww | Also known as Aftertouch. This message is sent when there is a change in the pressure being applied to a key (ie on a per-key basis). | |||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| kk | 00-7F |
Key which was pressed Each value is a 'half-step' above or below the adjacent values |
3C = Middle-C |
|||
| ww | 00-7F |
Pressure with which key is being pressed | 00=min, 7F=max |
|||
| Status Byte |
Data Bytes |
Message | Description | |||
| Bn | cc | nn |
|
Sent when a change is made in a footswitch, expression pedal, slider, or other controller. | ||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| cc | 00-77 |
Controller Number | see detailed descriptions | |||
| nn | 00-7F |
Controller Value | 00=min, 40=center, 7F=max |
|||
| Status Byte |
Data Bytes |
Message | Description | |||
| Cn | pp | Program Change |
Used to change the instrument (or sound) to be played when a
note-on message is received. This is usually not retro-active, and only applies to subsequent note-on messages This message may have a completely different interpretation depending on the type of device. For example, it could change the current rhythm on a drum-machine. |
|||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| pp | 00-7F |
New Program number | 00=1st program |
|||
| Status Byte |
Data Bytes |
Message | Description | |||
| Dn | ww | Also known as Aftertouch. This message is sent when there is a change in the overall pressure being applied to the keyboard (ie for the channel overall, and not on a per-key basis). | ||||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| ww | 00-7F |
Channel Pressure Value | 00=min, 7F=max |
|||
| Status Byte |
Data Bytes |
Message | Description | |||
| En | lsb | msb | Sent when a change is made in a pitch-bender lever. | |||
| Value | Range | Description | ||||
| n | 0-F |
MIDI Channel | 0 = Ch 1 |
|||
| lsb | 00-7F |
Least significant byte | 00=min, 00=center, 7F=max |
|||
| msb | 00-7F |
Most Significant Byte | 00=min, 40=center, 7F=max |
|||
Footnotes
|
| MIDI Channel Voice Messages | ||||
|---|---|---|---|---|
| The table below presents a
summary of the MIDI Channel Voice Message codes in binary form. A MIDI channel voice message consists of a Status Byte followed by one or two Data Bytes. |
||||
| Status Byte | Data Byte 1 | Data Byte 2 | Message | Legend |
| 1000nnnn | 0kkkkkkk | 0vvvvvvv | Note Off | n=channel* k=key # 0-127(60=middle C) v=velocity (0-127) |
| 1001nnnn | 0kkkkkkk | 0vvvvvvv | Note On | n=channel k=key # 0-127(60=middle C) v=velocity (0-127) |
| 1010nnnn | 0kkkkkkk | 0ppppppp | Poly Key Pressure | n=channel k=key # 0-127(60=middle C) p=pressure (0-127) |
| 1011nnnn | 0ccccccc | 0vvvvvvv | Controller Change | n=channel c=controller v=controller value(0-127) |
| 1100nnnn | 0ppppppp | [none] | Program Change | n=channel p=preset number (0-127) |
| 1101nnnn | 0ppppppp | [none] | Channel Pressure | n=channel p=pressure (0-127) |
| 1101nnnn | 0ccccccc | 0fffffff | Pitch Bend | n=channel c=coarse f=fine (c+f = 14-bit resolution) |
*The last four bits of a status byte signify the MIDI channel (1-16) the message is intended for offset by 1 [0000=channel #1, 1111=channel #16]
An example of a MIDI channel voice message would be:
10010001 00111100 01000000
The first four bits of the status byte specify the Note On command, while the last four specify MIDI channel #2. The first data byte specifies the key number for middle C (=60 decimal), while the second data byte specifies a median velocity (= 64 decimal).
|
|