General MIDI
General MIDI is a standardized specification for electronic musical instruments that respond to MIDI messages. GM was developed by the American MIDI Manufacturers Association and the Japan MIDI Standards Committee 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.
GM imposes several requirements beyond the more abstract MIDI 1.0 specification. While MIDI 1.0 by itself provides a communication protocol which ensures that different instruments can interoperate at a fundamental level – for example, that pressing keys on a MIDI keyboard will cause an attached MIDI sound module to play musical notes – GM goes further in two ways. First, GM requires that all compliant MIDI instruments meet a certain minimal set of features, such as being able to play at least 24 notes simultaneously. Second, GM attaches specific interpretations to many parameters and control messages which were left unspecified in the MIDI 1.0 specification. For example, assigning one of the 128 possible MIDI Program Numbers selects an instrument. With MIDI 1.0, the assignment could be to an arbitrary instrument; but with GM, a program number assigns a specific instrument name. This helps ensure that playback of MIDI files sounds more consistent between different devices compliant with the GM specification. However, it still leaves the actual sounds of each instrument up to the supplier to implement; one manufacturer's French horn, say, could be brighter, or more mellow, than another's.
The GM 1 specification was extended by General MIDI 2 in 1999; however, GM 1 is still commonly used. General MIDI was widely supported by computer game developers in the 1990s.
General MIDI 1 requirements
To be GM 1 compatible, sound generating devices are required to meet the General MIDI System Level 1 performance specification:| Criterion | Requirement |
| Voices | Allow 24 voices to be available simultaneously for both melodic and percussive sounds. All voices respond to note velocity. |
| Channels | Support all 16 channels simultaneously, each assignable to different instruments. Channel 10 is reserved for percussion. Support polyphony on each channel. |
| Instruments | Support a minimum of 128 MIDI Program Numbers and 47 percussion sounds. |
| Channel messages | Support for controller number 1, 7, 10, 11, 64, 100, 101, 121 and 123; support for channel pressure and pitch bend controllers. |
| Other messages | Respond to the data entry controller and the RPNs for fine and coarse tuning and pitch bend range, as well as all General MIDI Level 1 System Messages. |
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 GM Program Numbers. 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.[Piano]
- 1 Acoustic Grand Piano or Piano 1
- 2 Bright Acoustic Piano or Piano 2
- 3 Electric Grand Piano or Piano 3
- 4 Honky-tonk Piano
- 5 Electric Piano 1
- 6 Electric Piano 2
- 7 Harpsichord
- 8 Clavinet
Chromatic Percussion">Pitched percussion instrument">Chromatic Percussion
- 9 Celesta
- 10 Glockenspiel
- 11 Music Box
- 12 Vibraphone
- 13 Marimba
- 14 Xylophone
- 15 Tubular Bells
- 16 Dulcimer or Santoor
Organ">Organ (music)">Organ
- 17 Drawbar Organ or Organ 1
- 18 Percussive Organ or Organ 2
- 19 Rock Organ or Organ 3
- 20 Church Organ
- 21 Reed Organ
- 22 Accordion
- 23 Harmonica
- 24 Bandoneon or Tango Accordion
[Guitar]
- 25 Acoustic Guitar
- 26 Acoustic Guitar
- 27 Electric Guitar
- 28 Electric Guitar
- 29 Electric Guitar
- 30 Overdriven Guitar
- 31 Distortion Guitar
- 32 Guitar Harmonics
Bass">Bass (instrument)">Bass
- 33 Acoustic Bass
- 34 Electric Bass
- 35 Electric Bass
- 36 Fretless Bass
- 37 Slap Bass 1
- 38 Slap Bass 2
- 39 Synth Bass 1
- 40 Synth Bass 2
Strings">String (music)">Strings
- 41 Violin
- 42 Viola
- 43 Cello
- 44 Contrabass
- 45 Tremolo Strings
- 46 Pizzicato#bowed [string instrument technique|Pizzicato Strings]
- 47 Orchestral Harp
- 48 Timpani
Ensemble">Musical ensemble">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 Voice or Synth Choir
- 56 Orchestra Hit
Brass">Brass instrument">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">Reed aerophone">Reed
- 65 Soprano Sax
- 66 Alto Sax
- 67 Tenor Sax
- 68 Baritone Sax
- 69 Oboe
- 70 English Horn
- 71 Bassoon
- 72 Clarinet
Pipe">Aerophone">Pipe
- 73 Piccolo
- 74 Flute
- 75 Recorder
- 76 Pan Flute
- 77 Blown bottle
- 78 Shakuhachi
- 79 Whistle
- 80 Ocarina
Synth">Synthesizer">Synth Lead">Lead instrument">Lead
- 81 Lead 1
- 82 Lead 2
- 83 Lead 3
- 84 Lead 4
- 85 Lead 5
- 86 Lead 6
- 87 Lead 7
- 88 Lead 8
Synth Pad">Synth pad">Synth Pad
- 89 Pad 1
- 90 Pad 2
- 91 Pad 3
- 92 Pad 4
- 93 Pad 5
- 94 Pad 6
- 95 Pad 7
- 96 Pad 8
Synth Effects">Synthesizer">Synth Effects
- 97 FX 1
- 98 FX 2
- 99 FX 3
- 100 FX 4
- 101 FX 5
- 102 FX 6
- 103 FX 7
- 104 FX 8
Ethnic">World music">Ethnic
- 105 Sitar
- 106 Banjo
- 107 Shamisen
- 108 Koto
- 109 Kalimba
- 110 Bag pipe
- 111 Fiddle
- 112 Shanai
Percussive">Percussion instrument">Percussive
- 113 Tinkle Bell
- 114 Agogô or cowbell
- 115 Steel Drums
- 116 Woodblock
- 117 Taiko Drum or Surdo
- 118 Melodic Tom
- 119 Synth Drum
- 120 Reverse Cymbal
Sound Effects">Sound effect">Sound Effects
- 121 Guitar Fret Noise
- 122 Breath Noise
- 123 Seashore
- 124 Bird Tweet
- 125 Telephone Ring
- 126 Helicopter
- 127 Applause
- 128 Gunshot
Percussion">Percussion instrument">Percussion
If a MIDI file is programmed to the General MIDI protocol, then the results are predictable, but timbre and sound fidelity may vary depending on the quality of the GM synthesizer. The General MIDI standard includes 47 percussive sounds, using note numbers 35-81, as follows:
- 35 Acoustic Bass Drum or Low Bass Drum
- 36 Electric Bass Drum or High Bass Drum
- 37 Side Stick
- 38 Acoustic Snare
- 39 Hand Clap
- 40 Electric Snare or Rimshot
- 41 Low Floor Tom
- 42 Closed Hi-hat
- 43 High Floor Tom
- 44 Pedal Hi-hat
- 45 Low Tom
- 46 Open Hi-hat
- 47 Low-Mid Tom
- 48 High-Mid Tom
- 49 Crash Cymbal 1
- 50 High Tom
- 51 Ride Cymbal 1
- 52 Chinese Cymbal
- 53 Ride Bell
- 54 Tambourine
- 55 Splash Cymbal
- 56 Cowbell
- 57 Crash Cymbal 2
- 58 Vibraslap
- 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 Woodblock
- 77 Low Woodblock
- 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.RPNGM 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 :
101:0, 100:2, 6:64, 101:127, 100:127.System Exclusive messagesTwo GM System Exclusive messages are defined: one to enable and disable General MIDI compatibility mode ; and the other to set the synthesizer's master volume.GS extensionsRoland GS is a superset of the General MIDI standard that added several proprietary extensions. The most notable addition was the ability to address multiple banks of programs by using an additional pair of Bank Select controllers to specify up to 16384 "variation" sounds. Other most notable features were 9 Drum kits with 14 additional drum sounds each, simultaneous Percussion Kits – up to 2, Control Change messages for controlling the send level of sound effect blocks, entering additional parameters, portamento, sostenuto, soft pedal, and model-specific SysEx messages for setting various parameters of the synth engine. The 14 additional drum sounds are numbered 27-34 and 82–87, bracketing the 47 General MIDI standard sounds numbered 35–81, and are as follows:
XG extensionsYamaha XG is a superset of the General MIDI standard that added several proprietary extensions. The most notable additions were the 600 instruments and 32 notes polyphony.XG was introduced in 1994 with the Yamaha MU-series line of sound modules and PSR line of digital keyboards. General MIDI Level 2In 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:
|