Contents
Introduction
Getting
Started
Components
Main Menu
Windows
Movement
Patches
Editing
SysEx Librarian
Miscellaneous
Ideas
MIDI Reference
Release Notes
|
Table of Contents
- Introduction
- Channel Messages
- Controller Numbers
- System Messages
- MIDI Manufacturer Codes
- Realtime Messages
- General MIDI
- Instrument Patch Map
- Percussion Key Map
Back to the main Table of Contents.
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 |
Controller Numbers
The following table shows some standardized controller numbers.
Controller numbers 0 - 31 are continuous, LSB (least significant byte),
numbers 32 - 63 are continuous, MSB (most significant byte), and 64
- 97 are switches.
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 |
Sostenuto |
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 |
Tremolo 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 |
123 |
Val must be 0 |
Omni Mode Off |
7C |
124 |
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 |
System Messages
System messages are those not associated with any particular
MIDI channel. They are intended for the whole MIDI system.
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 |
Time Code |
one byte |
F2 |
Song Position Pointer |
two bytes: lsb msb |
F3 |
Song Select |
one byte: song number 0 - 127 |
F4 |
(undefined) |
|
F5 |
(undefined) |
|
F6 |
Tune Request |
no data |
F7 |
EOX (End of System Exclusive) |
|
MIDI Manufacturer Codes
These codes are used in System Exclusive messages to identify
particular MIDI device manufacturers. The following tables came from
Hunton Instrument's
Guide to MIDI Protocol. Thanks to Manfred Hanke for finding them
for me.
(* indicates that the manufacturer has ceased
trading, but products using their ID exist.)
USA:
Hex Extended |
Manufacturer |
00, 00, 01 |
Warner New Media |
00, 00, 07 |
Digital Music Corporation |
00, 00, 08 |
IOTA Systems |
00, 00, 09 |
New England Digital * |
00, 00, 0A |
Artisyn |
00, 00, 0B |
IVL Technologies |
00, 00, 0C |
Southern Music Systems |
00, 00, 0D |
Lake Butler Sound Company |
00, 00, 0E |
Alesis |
00, 00, 10 |
DOD Electronics |
00, 00, 11 |
Studer-Editech |
00, 00, 14 |
Perfect Fretworks |
00, 00, 15 |
KAT |
00, 00, 16 |
Opcode |
00, 00, 17 |
Rane Corporation |
00, 00, 18 |
Spatial Sound/Anadi Inc |
00, 00, 19 |
KMX |
00, 00, 1A |
Allen & Heath Brenell |
00, 00, 1B |
Peavey Electronics |
00, 00, 1C |
360 Systems |
00, 00, 1D |
Spectrum Design & Development |
00, 00, 1E |
Marquis Musi |
00, 00, 1F |
Zeta Systems |
00, 00, 20 |
Axxes |
00, 00, 21 |
Orban |
00, 00, 24 |
KTI |
00, 00, 25 |
Breakaway Technologies |
00, 00, 26 |
CAE |
00, 00, 29 |
Rocktron Corp. |
00, 00, 2A |
PianoDisc |
00, 00, 2B |
Cannon Research Corporation |
00, 00, 2D |
Rogers Instrument Corp. |
00, 00, 2E |
Blue Sky Logic |
00, 00, 2F |
Encore Electronics |
00, 00, 30 |
Uptown |
00, 00, 31 |
Voce |
00, 00, 32 |
CTI Audio |
00, 00, 33 |
S&S Research |
00, 00, 34 |
Broderbund Software |
00, 00, 35 |
Allen Organ Co. |
00, 00, 37 |
Music Quest |
00, 00, 38 |
Aphex |
00, 00, 39 |
Gallien Krueger |
00, 00, 3A |
IBM |
00, 00, 3C |
Hotz Instruments Technologies |
00, 00, 3D |
ETA Lighting |
00, 00, 3E |
NSI Corporation |
00, 00, 3F |
Ad Lib |
00, 00, 40 |
Richmond Sound Design |
00, 00, 41 |
Microsoft |
00, 00, 42 |
The Software Toolworks |
00, 00, 43 |
RJMG/Niche |
00, 00, 44 |
Intone |
00, 00, 47 |
GT Electronics/Groove Tubes |
00, 00, 48 |
InterMIDI |
00, 00, 55 |
Lone Wolf |
00, 00, 64 |
Musonix |
Europe:
Hex Extended |
Manufacturer |
00, 20, 00 |
Dream |
00, 20, 01 |
Strand Lighting |
00, 20, 02 |
AMEK Systems & Controls |
00, 20, 04 |
Dr.Bohm/Musician International |
00, 20, 06 |
Trident |
00, 20, 07 |
Real World Design |
00, 20, 09 |
Yes Technology |
00, 20, 0A |
Audiomatica |
00, 20, 0B |
Bontempi/Farfisa |
00, 20, 0C |
F.B.T. Electronica |
00, 20, 0E |
Larking Audio |
00, 20, 0F |
Zero 88 Lighting |
00, 20, 10 |
Micon Audio Electronics |
00, 20, 11 |
Forefront Technology |
00, 20, 13 |
Kenton Electronics |
00, 20, 15 |
ADB |
00, 20, 16 |
Jim Marshall Products |
00, 20, 17 |
DDA |
00, 20, 1F |
TC Electronic |
Japan:
Hex |
Decimal |
Manufacturer |
40 |
64 |
Kawai |
41 |
65 |
Roland |
42 |
66 |
Korg |
43 |
67 |
Yamaha |
44 |
68 |
Casio |
45 |
69 |
Moridaira |
46 |
70 |
Kamiya |
47 |
71 |
Akai |
48 |
72 |
Japan Victor |
49 |
73 |
Meisosha |
4A |
74 |
Hoshino Gakki |
4B |
75 |
Fujitsu Electric |
4C |
76 |
Sony |
4D |
77 |
Nishin Onpa |
4E |
78 |
TEAC |
50 |
80 |
Matsushita Electric |
51 |
81 |
Fostex |
52 |
82 |
Zoom |
53 |
83 |
Midori Electronics |
54 |
84 |
Matsushita Communication Industrial |
55 |
85 |
Suzuki Musical Instrument Mfg. |
Universal:
Hex |
Decimal |
Use |
7D |
125 |
Non-Commercial |
7E |
126 |
Non Real Time |
7F |
127 |
Real Time |
Realtime Messages
Realtime messages are not associated with any one MIDI channel.
They can appear in the MIDI data stream at any time.
These messages consist of a single status byte; they have no data
bytes.
Status |
Comment |
F8 |
Clock |
F9 |
(undefined) |
FA |
Start |
FB |
Continue |
FC |
Stop |
FD |
(undefined) |
FE |
Active Sensing |
FF |
System Reset |
General MIDI
General MIDI is nothing more than an agreement to a standard
set of 128 patch names and, on MIDI channel 10, a set of standard
percussion key names. Manufacturers
get to interpret these names any way they see fit.
Instrument Patch Map
The sounds are grouped into "families" of eight patch numbers
each. Patch numbers are in decimal, and start at 1. Note that MIDI
patch numbers start at 0; you will have to subtract 1 when sending
a patch change command.
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 |
Here are the patch names. Again, these numbers are in decimal,
and the list starts with 1 instead of 0. You will have to subtract
1 when sending patch change commands.
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 |
Percussion Key Map
MIDI channel 10 is reserved for percussion. Each key maps to
a specific percussive sound. Key numbers are in decimal. I think
they are offset by one; you will have to subtract one when sending
a MIDI note message.
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 |
Back to the main Table of
Contents.
Contents © 1995-98 by Jim Menard;
All Rights Reserved.
|