General MIDI
General MIDI or GM is a standardized specification for music synthesizers that respond to MIDI messages. GM was developed by the American MIDI Manufacturers Association (MMA) and the Japan MIDI Standards Committee (JMSC) and first published in 1991. The official specification is available in English from the MMA, bound together with the MIDI 1.0 specification, and in Japanese from the Association of Musical Electronic Industry (AMEI).
GM imposes several requirements beyond the more abstract MIDI 1.0 specification. While MIDI 1.0 by itself provides a communications protocol which ensures that different instruments can interoperate at a fundamental level (e.g., that pressing keys on a MIDI keyboard will cause an attached MIDI sound module to play musical notes), GM goes further in two ways: it requires that all GM-compatible synthesizers meet a certain minimal set of features, such as being able to play at least 24 notes simultaneously (polyphony), and it attaches specific interpretations to many parameters and control messages which were left under-specified in the MIDI 1.0 spec, such as defining instrument sounds for each of the 128 possible program numbers.
GM synthesizers are required to be able to:
- Allow 24 voices to be active simultaneously (including at least 16 melodic and 8 percussive voices)
- Respond to note velocity
- Support all 16 channels simultaneously (with channel 10 reserved for percussion)
- Support polyphony (multiple simultaneous notes) on each channel
Parameter interpretations
GM Instruments must also obey the following conventions for program and controller events:
Program change events
In MIDI, the instrument sound or "program" for each of the 16 possible MIDI channels is selected with the Program Change message, which has a Program Number parameter. The following table shows which instrument sound corresponds to each of the 128 possible Program Numbers for GM only. There are 128 program numbers. The numbers can be displayed as values 1 to 128, or, alternatively, as 0 to 127. The 0 to 127 numbering is usually only used internally by the synthesizer; the vast majority of MIDI devices, digital audio workstations and professional MIDI sequencers display these Program Numbers as shown in the table (1-128).
Piano
- 1 Acoustic Grand Piano
- 2 Bright Acoustic Piano
- 3 Electric Grand Piano
- 4 Honky-tonk Piano
- 5 Electric Piano 1
- 6 Electric Piano 2
- 7 Harpsichord
- 8 Clavinet
Chromatic Percussion
- 9 Celesta
- 10 Glockenspiel
- 11 Music Box
- 12 Vibraphone
- 13 Marimba
- 14 Xylophone
- 15 Tubular Bells
- 16 Dulcimer
Organ
- 17 Drawbar Organ
- 18 Percussive Organ
- 19 Rock Organ
- 20 Church Organ
- 21 Reed Organ
- 22 Accordion
- 23 Harmonica
- 24 Tango Accordion
Guitar
- 25 Acoustic Guitar (nylon)
- 26 Acoustic Guitar (steel)
- 27 Electric Guitar (jazz)
- 28 Electric Guitar (clean)
- 29 Electric Guitar (muted)
- 30 Overdriven Guitar
- 31 Distortion Guitar
- 32 Guitar Harmonics
Bass
- 33 Acoustic Bass
- 34 Electric Bass (finger)
- 35 Electric Bass (pick)
- 36 Fretless Bass
- 37 Slap Bass 1
- 38 Slap Bass 2
- 39 Synth Bass 1
- 40 Synth Bass 2
Strings
- 41 Violin
- 42 Viola
- 43 Cello
- 44 Contrabass
- 45 Tremolo Strings
- 46 Pizzicato Strings
- 47 Orchestral Harp
- 48 Timpani
Ensemble
- 49 String Ensemble 1
- 50 String Ensemble 2
- 51 Synth Strings 1
- 52 Synth Strings 2
- 53 Choir Aahs
- 54 Voice Oohs
- 55 Synth Choir
- 56 Orchestra Hit
Brass
- 57 Trumpet
- 58 Trombone
- 59 Tuba
- 60 Muted Trumpet
- 61 French Horn
- 62 Brass Section
- 63 Synth Brass 1
- 64 Synth Brass 2
Reed
- 65 Soprano Sax
- 66 Alto Sax
- 67 Tenor Sax
- 68 Baritone Sax
- 69 Oboe
- 70 English Horn
- 71 Bassoon
- 72 Clarinet
Pipe
- 73 Piccolo
- 74 Flute
- 75 Recorder
- 76 Pan Flute
- 77 Blown bottle
- 78 Shakuhachi
- 79 Whistle
- 80 Ocarina
Synth Lead
- 81 Lead 1 (square)
- 82 Lead 2 (sawtooth)
- 83 Lead 3 (calliope)
- 84 Lead 4 chiff
- 85 Lead 5 (charang)
- 86 Lead 6 (voice)
- 87 Lead 7 (fifths)
- 88 Lead 8 (bass + lead)
Synth Pad
- 89 Pad 1 (new age)
- 90 Pad 2 (warm)
- 91 Pad 3 (polysynth)
- 92 Pad 4 (choir)
- 93 Pad 5 (bowed)
- 94 Pad 6 (metallic)
- 95 Pad 7 (halo)
- 96 Pad 8 (sweep)
Synth Effects
- 97 FX 1 (rain)
- 98 FX 2 (soundtrack)
- 99 FX 3 (crystal)
- 100 FX 4 (atmosphere)
- 101 FX 5 (brightness)
- 102 FX 6 (goblins)
- 103 FX 7 (echoes)
- 104 FX 8 (sci-fi)
Ethnic
Percussive
- 113 Tinkle Bell
- 114 Agogo
- 115 Steel Drums
- 116 Woodblock
- 117 Taiko Drum
- 118 Melodic Tom
- 119 Synth Drum
- 120 Reverse Cymbal
Sound effects
- 121 Guitar Fret Noise
- 122 Breath Noise
- 123 Seashore
- 124 Bird Tweet
- 125 Telephone Ring
- 126 Helicopter
- 127 Applause
- 128 Gunshot
Percussion
In GM standard MIDI files, channel 10 is reserved for percussion instruments only. Notes recorded on channel 10 always produce percussion sounds when transmitted to a keyboard or synth module which uses the GM standard. Each of the 128 different possible note numbers correlate to a unique percussive instrument, but the sound's pitch is not relative to the note number.
If a MIDI file is programmed to the General MIDI protocol, then the results are predictable, but the sound fidelity may vary depending on the quality of the GM synthesizer:
- 35 Bass Drum 2
- 36 Bass Drum 1
- 37 Side Stick/Rimshot
- 38 Snare Drum 1
- 39 Hand Clap
- 40 Snare Drum 2
- 41 Low Tom 2
- 42 Closed Hi-hat
- 43 Low Tom 1
- 44 Pedal Hi-hat
- 45 Mid Tom 2
- 46 Open Hi-hat
- 47 Mid Tom 1
- 48 High Tom 2
- 49 Crash Cymbal 1
- 50 High Tom 1
- 51 Ride Cymbal 1
- 52 Chinese Cymbal
- 53 Ride Bell
- 54 Tambourine
- 55 Splash Cymbal
- 56 Cowbell
- 57 Crash Cymbal 2
- 58 Vibra Slap
- 59 Ride Cymbal 2
- 60 High Bongo
- 61 Low Bongo
- 62 Mute High Conga
- 63 Open High Conga
- 64 Low Conga
- 65 High Timbale
- 66 Low Timbale
- 67 High Agogô
- 68 Low Agogô
- 69 Cabasa
- 70 Maracas
- 71 Short Whistle
- 72 Long Whistle
- 73 Short Güiro
- 74 Long Güiro
- 75 Claves
- 76 High Wood Block
- 77 Low Wood Block
- 78 Mute Cuíca
- 79 Open Cuíca
- 80 Mute Triangle
- 81 Open Triangle
Controller events
In MIDI, adjustable parameters for each of the 16 possible MIDI channels may be set with the Control Change message, which has a Control Number parameter and a Control Value parameter. GM also specifies which operations should be performed by multiple Control Numbers:[1]
1 Modulation wheel
7 Volume
10 Pan
11 Expression
64 Sustain pedal
100 Registered Parameter Number LSB
101 Registered Parameter Number MSB
121 All controllers off
123 All notes off
RPN
GM defines several Registered Parameters, which act like Controllers but are addressed in a different way. In MIDI, every Registered Parameter is assigned a Registered Parameter Number or RPN. Registered Parameters are usually called RPNs for short.
Setting Registered Parameters requires sending (numbers are decimal):
- two Control Change messages using Control Numbers 101 and 100 to select the parameter, followed by
- any number of Data Entry messages of one or two bytes (MSB = Controller #6, LSB = Controller #38), and finally
- an "End of RPN" message
The following global Registered Parameter Numbers (RPNs) are standardised [2] (the parameter is specified by RPN LSB/MSB pair and the value is set by Data Entry LSB/MSB pair):
0,0 Pitch bend range
1,0 Channel Fine tuning
2,0 Channel Coarse tuning
For example: RPN control sequence to set coarse tuning to A440 (parm 2, value 64):
101:0, 100:2, 6:64, 101:127, 100:127
System Exclusive messages
Two GM System Exclusive ("SysEx") messages are defined: one to enable and disable General MIDI compatibility mode (for synthesizers that also have non-GM modes); and the other to set the synthesizer's master volume.
GS extensions
A superset of the General MIDI standard which added several proprietary extensions. The most notable addition was the ability to address multiple banks of programs (instrument sounds) by using an additional pair of Bank Select controllers to specify up to 16384 "variation" sounds (cc#0 is Bank Select MSB, and cc#32 is Bank Select LSB). Other most notable features were 9 Drum kits with 14 additional drum sounds each, simultaneous Percussion Kits - up to 2 (Channels 10/11), Control Change messages for controlling the send level of sound effect blocks (cc#91-94), entering additional parameters (cc#98-101), portamento, sostenuto, soft pedal (cc#65-67), and model-specific SysEx messages for setting various parameters of the synth engine.
GS was introduced in 1991 with the Roland Sound Canvas line, which was also Roland's first General MIDI synth module.
General MIDI Level 2
In 1999, the official GM standard was updated to include more controllers, patches, RPNs and SysEx messages, in an attempt to reconcile the conflicting and proprietary Roland GS and Yamaha XG additions. Here's a quick overview of the GM2 changes in comparison to GM/GS:
- Number of Notes - minimum 32 simultaneous notes
- Simultaneous Percussion Kits - up to 2 (Channels 10/11)
- Up to 16384 variation banks are allowed, each containing a version of the 128 Melodic Sounds (the exact use of these banks is up to the individual manufacturer.)
- 9 GS Drum kits are included
- Additional Control Change messages
- Registered Parameter Numbers (RPNs)
- Modulation Depth Range (Vibrato Depth Range)
- Universal SysEx messages
Additional melodic instruments can be accessed by setting CC#0 to 121 and then using CC#32 to select the bank before a Program Change.
See also
References
- ↑ MIDI Messages technical specification Table 3 - Control Change Messages (Data Bytes)
- ↑ General MIDI 1, 2 and Lite Specifications
Official MIDI Standards Organizations
- MIDI Manufacturers Association (MMA) - Source for English-language MIDI specs
- Association of Musical Electronics Industry (AMEI) -Source for Japanese-language MIDI specs