Money and goods are certainly the best of references.
- Charles Dickens, Our Mutual Friend
Introduction
This section is not a MIDI tutorial. Rather, it is intended as a quick
overview and a reference guide. Unless otherwise stated, all numbers appear
in hexadecimal, either with or without the leading "0x".
One great MIDI tutorial is The USENET MIDI Primer by Bob McQueer. In fact, the Computer Music Journal has a number of MIDI documents.
All MIDI messages consist of a status byte followed by zero or more data bytes. Status bytes have their high bit set, and data bytes have a high bit of zero. Realtime status bytes may be inserted in the data stream at any point, including the middle of a stream of data bytes.
Two methods are used to compress data. First, running status bytes allow two or more consecutive messages with the same status byte to be combined into one; the status byte only need be sent the first time. Second, note on message with a velocity of zero are to be interpreted as note off messages.
Channel Messages
In the following table, an "x" specifies any MIDI channel (0 - 15). Thus
"status byte 8x" means any value from 80 to 8F.
Status | Data | Comments |
---|---|---|
8x | note, velocity | Note off |
9x | note, velocity | Note on (velocity 0 = note off) |
Ax | note, value | Polyphonic pressure |
Bx | program | Program change |
Cx | controller, value | Controller change |
Dx | value | Channel pressure |
Ex | value | Pitch bend |
Name | Hex | Decimal | Comments | |
---|---|---|---|---|
Controller numbers 00 - 1f [0 - 31 decimal] are continuous, LSB (least significant byte) | ||||
Mod Wheel | 01 | 1 | ||
Breath Controller | 02 | 2 | ||
Foot Controller | 04 | 4 | ||
Portamento Time | 05 | 5 | ||
Data Entry MSB | 06 | 6 | ||
Volume | 07 | 7 | ||
Balance | 08 | 8 | ||
Pan | 0A | 10 | ||
Expression Controller | 0B | 11 | ||
General Purpose 1 | 10 | 16 | ||
General Purpose 2 | 11 | 17 | ||
General Purpose 3 | 12 | 18 | ||
General Purpose 4 | 13 | 19 | ||
20 - 3f [32 - 63 decimal] are MSB (most significant byte) for 00 - 1f [0 - 31 decimal] | ||||
Sustain | 40 | 64 | Momentary Switches | |
Portamento | 41 | 65 | ||
Sustenuto | 42 | 66 | ||
Soft Pedal | 43 | 67 | ||
Hold 2 | 45 | 69 | ||
General Purpose 5 | 50 | 80 | ||
Temp Change (General Purpose 6) | 51 | 81 | ||
General Purpose 6 | 51 | 81 | ||
General Purpose 7 | 52 | 82 | ||
General Purpose 8 | 53 | 83 | ||
Ext Effects Depth | 5B | 91 | ||
Tremelo Depth | 5C | 92 | ||
Chorus Depth | 5D | 93 | ||
Detune Depth (Celeste Depth) | 5E | 94 | ||
Phaser Depth | 5F | 95 | ||
Data Increment (Data Entry +1) | 60 | 96 | ||
Data Decrement (Data Entry -1) | 61 | 97 | ||
Non-Registered Param LSB | 62 | 98 | ||
Non-Registered Param MSB | 63 | 99 | ||
Registered Param LSB | 64 | 100 | ||
Registered Param MSB | 65 | 101 | ||
Channel mode message values | ||||
Reset All Controllers | 79 | 121 | Val ?? | |
Local Control | 7A | 122 | Val 0 = off, 7F (127) = on | |
All Notes Off | 7B | 124 | Val must be 0 | |
Omni Mode Off | 7C | 125 | Val must be 0 | |
Omni Mode On | 7D | 125 | Val must be 0 | |
Mono Mode On | 7E | 126 | Val = # of channels, or 0 if # channels equals # voices in receiver | |
Poly Mode On | 7F | 127 | Val must be 0 |
Note that any non-realtime status byte ends a System Exclusive message; F7 (EOX) is not required at the end of a SysEx message. Realtime status bytes may appear any time in the MIDI data stream, including in the middle of a SysEx message.
Status | Name | Data |
---|---|---|
F0 | System Exclusive | data, then EOX or any status byte |
F1 | (undefined) | |
F2 | Song Pointer | one byte |
F3 | Song Select | one byte |
F4 | (undefined) | |
F5 | (undefined) | |
F6 | Tune Request | no data |
F7 | EOX (End of System Exclusive) |
Manufacturer | Code (Hex) |
---|---|
Sequential Circuits | 01 |
Big Briar | 02 |
Octave / Plateau | 03 |
Moog | 04 |
Passport Designs | 05 |
Lexicon | 06 |
Kurzweil (Young Chang) | 07 |
PAIA | 11 |
Simmons | 12 |
Gentle Electric | 13 |
Fairlight | 14 |
Bon Tempi | 20 |
S.I.E.L. | 21 |
SyntheAxe | 23 |
Kawai | 40 |
Roland | 41 |
Korg | 42 |
Yamaha | 43 |
Emu | ?? |
Alesis | ?? |
Ensoniq | ?? |
N. E. D. | ?? |
Mackie | ?? |
Opcode | ?? |
Realtime Messages
Realtime messages are not associated with any one MIDI channel. They can
appear in the MIDI data stream at any time.
Status | Comment |
---|---|
F8 | Clock |
F9 | (undefined) |
FA | Start |
FB | Continue |
FC | Stop |
FD | (undefined) |
FE | Active Sensing |
FF | System Reset |
Instrument Patch Map
The sounds are grouped into "families" of eight patch numbers each.
Patch | Family Name | Patch | Family Name |
---|---|---|---|
1 - 8 | Piano | 65 - 72 | Reed |
9 - 16 | Chromatic Percussion | 73 - 80 | Pipe |
17 - 24 | Organ | 81 - 88 | Synth Lead |
25 - 32 | Guitar | 89- 96 | Synth Pad |
33 - 40 | Bass | 97 - 104 | Synth Effects |
41 - 48 | Strings | 105 - 112 | Ethnic |
49- 56 | Ensemble | 113 - 120 | Percussive |
57 - 64 | Brass | 121 - 128 | Sound Effects |
Patch | Name | Patch | Name |
---|---|---|---|
1 | Acoustic Grand Piano | 65 | Soprano Sax |
2 | Bright Acoustic Piano | 66 | Alto Sax |
3 | Electric Grand Piano | 67 | Tenor Sax |
4 | Honky-tonk Piano | 68 | Baritone Sax |
5 | Electric Piano 1 | 69 | Oboe |
6 | Electric Piano 2 | 70 | English Horn |
7 | Harpsichord | 71 | Bassoon |
8 | Clavi | 72 | Clarinet |
9 | Celesta | 73 | Piccolo |
10 | Glockenspiel | 74 | Flute |
11 | Music Box | 75 | Recorder |
12 | Vibraphone | 76 | Pan Flute |
13 | Marimba | 77 | Blown Bottle |
14 | Xylophone | 78 | Shakuhachi |
15 | Tubular Bells | 79 | Whistle |
16 | Dulcimer | 80 | Ocarina |
17 | Drawbar Organ | 81 | Lead 1 (square) |
18 | Percussive Organ | 82 | Lead 2 (sawtooth) |
19 | Rock Organ | 83 | Lead 3 (calliope) |
20 | Church Organ | 84 | Lead 4 (chiff) |
21 | Reed Organ | 85 | Lead 5 (charang) |
22 | Accordion | 86 | Lead 6 (voice) |
23 | Harmonica | 87 | Lead 7 (fifths) |
24 | Tango Accordion | 88 | Lead 8 (bass + lead) |
25 | Acoustic Guitar (nylon) | 89 | Pad 1 (new age) |
26 | Acoustic Guitar (steel) | 90 | Pad 2 (warm) |
27 | Electric Guitar (jazz) | 91 | Pad 3 (polysynth) |
28 | Electric Guitar (clean) | 92 | Pad 4 (choir) |
29 | Electric Guitar (muted) | 93 | Pad 5 (bowed) |
30 | Overdriven Guitar | 94 | Pad 6 (metallic) |
31 | Distortion Guitar | 95 | Pad 7 (halo) |
32 | Guitar harmonics | 96 | Pad 8 (sweep) |
33 | Acoustic Bass | 97 | FX 1 (rain) |
34 | Electric Bass (finger) | 98 | FX 2 (soundtrack) |
35 | Electric Bass (pick) | 99 | FX 3 (crystal) |
36 | Fretless Bass | 100 | FX 4 (atmosphere) |
37 | Slap Bass 1 | 101 | FX 5 (brightness) |
38 | Slap Bass 2 | 102 | FX 6 (goblins) |
39 | Synth Bass 1 | 103 | FX 7 (echoes) |
40 | Synth Bass 2 | 104 | FX 8 (sci-fi) |
41 | Violin | 105 | Sitar |
42 | Viola | 106 | Banjo |
43 | Cello | 107 | Shamisen |
44 | Contrabass | 108 | Koto |
45 | Tremolo Strings | 109 | Kalimba |
46 | Pizzicato Strings | 110 | Bag pipe |
47 | Orchestral Harp | 111 | Fiddle |
48 | Timpani | 112 | Shanai |
49 | String Ensemble 1 | 113 | Tinkle Bell |
50 | String Ensemble 2 | 114 | Agogo |
51 | SynthStrings 1 | 115 | Steel Drums |
52 | SynthStrings 2 | 116 | Woodblock |
53 | Choir Aahs | 117 | Taiko Drum |
54 | Voice Oohs | 118 | Melodic Tom |
55 | Synth Voice | 119 | Synth Drum |
56 | Orchestra Hit | 120 | Reverse Cymbal |
57 | Trumpet | 121 | Guitar Fret Noise |
58 | Trombone | 122 | Breath Noise |
59 | Tuba | 123 | Seashore |
60 | Muted Trumpet | 124 | Bird Tweet |
61 | French Horn | 125 | Telephone Ring |
62 | Brass Section | 126 | Helicopter |
63 | SynthBrass 1 | 127 | Applause |
64 | SynthBrass 2 | 128 | Gunshot |
Key | Note | Sound | Key | Note | Sound |
---|---|---|---|---|---|
35 | C | Acoustic Bass Drum | 59 | C | Ride Cymbal 2 |
36 | C# | Bass Drum 1 | 60 | C# | Hi Bongo |
37 | D | Side Stick | 61 | D | Low Bongo |
38 | D# | Acoustic Snare | 62 | D# | Mute Hi Conga |
39 | E | Hand Clap | 63 | E | Open Hi Conga |
40 | F | Electric Snare | 64 | F | Low Conga |
41 | F# | Low Floor Tom | 65 | F# | High Timbale |
42 | G | Closed Hi Hat | 66 | G | Low Timbale |
43 | G# | High Floor Tom | 67 | G# | High Agogo |
44 | A | Pedal Hi-Hat | 68 | A | Low Agogo |
45 | A# | Low Tom | 69 | A# | Cabasa |
46 | B | Open Hi-Hat | 70 | B | Maracas |
47 | C | Low-Mid Tom | 71 | C | Short Whistle |
48 | C# | Hi Mid Tom | 72 | C# | Long Whistle |
49 | D | Crash Cymbal 1 | 73 | D | Short Guiro |
50 | D# | High Tom | 74 | D# | Long Guiro |
51 | E | Ride Cymbal 1 | 75 | E | Claves |
52 | F | Chinese Cymbal | 76 | F | Hi Wood Block |
53 | F# | Ride Bell | 77 | F# | Low Wood Block |
54 | G | Tambourine | 78 | G | Mute Cuica |
55 | G# | Splash Cymbal | 79 | G# | Open Cuica |
56 | A | Cowbell | 80 | A | Mute Triangle |
57 | A# | Crash Cymbal 2 | 81 | A# | Open Triangle |
58 | B | Vibraslap |