Article Music with Computers
MIDI: The GM Standard and its Extensions
(Everyone)By kon-tiki on 06/16/2008
GM, GS & XG: A Little History
- Many sound cards and synthesizers, as well as most audio software, are compatible with one of the three midi norms (GM, GS, XG). Though MIDI has long since proven its utility, the existence of different standards can be confusing, so this article has been put together in order to clarify a few points.
For someone who just wants to listen to music, or for a multimedia developer looking to add background music or sounds to their program, the Midifile format has proven to be a real asset. It allows a user to play a sequence that was written by another person, whatever gear or software they were using. But in the past, only the notes and rhythm of the musician were encoded, which didn’t necessarily guarantee a similar sound. In fact, the sounds coming from each sound card, each synthesizer, were different (different in their sound and in their organization). Patch number 15 could be a piano on synthesizer X, and a trumpet on synthesizer Y. It was sometimes necessary to be an expert in MIDI and/or have a lot of patience to get the right settings in order to listen to a piece written by another musician working on a different synth or platform.
The MMA (Midi Manufacturers Association) fixed this problem in 1991 by creating the GM (General Midi) standard. The goal of this standard has been to unify the behavior of sound generators when playing back a Midifile sequence. In order to be labeled GM, an instrument must be multi-timbral and polyphonic up to at least 24 voices, and include at least 16 families of sounds (pianos, guitars, strings…), each containing 8 variations (for example, for strings: violin cello, double bass, etc…For more info see page 2 of this article "GM Reference Guide")
The main advantage of this standardization is that each patch number now corresponds to a certain instrument no matter what the machine. So, instrument number 71 will always be a bassoon and number 12 a vibraphone. The sound generator must also contain a drum kit, whose mapping (placement of the separate elements on a keyboard) is also standardized. Finally, MIDI controllers must be recognized also.
ReceptionSome people found that the GM standard wasn’t very precise: describing a sound only with a name of an instrument is rather vague… That’s why the MMA has been pushing two other levels of standardization.
Some considered GM to be too "general", like Roland who presented, at more or less the same time, a similar system: GS or General Standard. Though compatible with GM, it’s not standardized and only concerns Roland instruments. On the other hand, it goes much further, able to contain/host up to 16384 sounds (128 banks of 128 sounds). Also, any missing instruments are automatically replaced by their nearest neighbors (in terms of sound). Many drum kits are also available and its possible, via NRPN messages, to adjust sound parameters: filter resonance, LFO speed, etc… After its creation GS was more or less systematically put into Roland machines (like Sound Canvas). Even though system exclusive messages aren’t standardized in GS, they’re the same for all machines that refer to it.
After that, another Japanese giant, Yamaha, proposed their own version, which went even further in terms of precision and possibilities. This version was called XG, for, you might have guessed, eXtended General Midi. This standard, also compatible with GM, allows more in-depth editing of sound parameters and standardization of system exclusive messages. The first synthesizers that used the XG standard were the QS300 and CS-1x, as well as the MU50, MU80 and other DB50XG cards.
MIDIFiles
Mirroring MIDI’s story - standardization of communication between electronic instruments - the Midifile has become the universal standard for stocking sequences. All sequencers worth their salt, no matter how complex, should be able to import or export Midifiles.
Even if each sequencer proposes their own format, the Midifile has become the real standard bridging the gap between different software and platforms. This file, with it’s .mid or .smf extension, is organized in the form of a succession of "chunks". A chunk is like a paragraph within which an idea is developed. A chunk always has a header which indicates its name and the size of its contents. The main advantage of this type of format, is that it’s able to be modified or have information added to it without there being any compatibility issues. In fact, thanks to the headers, its easy for a program to skip a chunk that it doesn’t recognize.
So, a Midifile is made up of a header chunk, followed by many track chunks. Even though the file can come in three formats, only the first two are frequently used. A Midifile with a 0 format only has one track that contains all the information relative to midi channels. This format is usually used by midi/multimedia players that don’t offer a lot of editing features. A format 1 Midifile, on the contrary, contains one or more tracks (playing simultaneously), each containing information about its channel. Midifiles of format 2, which are less frequent, don’t have a linear structure: they contain different tracks representing independent patterns.
The header chunk contains just that: the Midfile header. It has a fixed length and specifies the general organization of the file: the type of Midifile, the number of tracks it contains, as well as its temporal resolution (in regards to sequencer ticks, or in SMPTE code or in MIDI Time Code).
After the header, there are one or more track chunks which represent one or more tracks. A track is a succession of events, each preceded by a delta time. A delta time is the temporal reference, which means that it marks the elapsed time since the precedent delta time. Among the events we find conventional MIDI messages (note on, patch change, continuous controller etc…), exclusive messages, and meta-events. Some of these meta-events hold text data (Copyright, name of the sequence, track names or instrument names, song lyrics or comments etc…). Other more important meta-events give the tempo, time signature, and the key signature of the piece ( the default values are 4/4 at 120 BPM). Finally, like exclusive messages, a special code is reserved for meta-events that are specific to the sequencer used.
Because Midifiles are small, complete, and rather developable, they haven’t yet become obsolete in all the time that they’ve existed (since 1987) and are still one of the most downloaded file-types on the internet. Because they’re able to go from one software to another and cross platforms without losing any data or being altered by any conversions whatsoever, they still have a future.
GM Reference Guide
-
This part of the article is meant as a reference guide when using a MIDI instrument. It groups together detailed information about:
GM Instrument Families
The General MIDI instrument sounds are grouped by families. In each family are 8 specific instruments specified by the MMA (MIDI Manufacturers Association).
N° Family 1-8 Piano 9-16 Chromatic Percussion 17-24 Organ 25-32 Guitar 33-40 Bass 41-48 Strings 49-56 Ensemble 57-64 Brass 65-72 Reed 73-80 Pipe 81-88 Synth Lead 89-96 Synth Pad 97-104 Synth Effect 105-112 Ethnic 113-120 Percussive 121-128 Sound Effects
GM Instruments - Detailed List
There are128 instruments in the General MIDI Instrument Patch Map:
N°
Instrument
N°
Instrument
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 Clavinet 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 Distorsion 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 Bagpipe 47 Orchestral Harp 111 Fiddle 48 Timpani 112 Shanai 49 String Ensemble 1 113 Tinkle Bell 50 String Ensemble 2 114 Agogo 51 Synth Strings 1 115 Steel Drums 52 Synth Strings 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 Synth Brass 1 127 Applause 64 Synth Brass 2 128 Gunshot
The GM Percussion Key Map
The General MIDI Percussion Key Map is also precisely defined by the MMA :
N° Instrument 35 Acoustic Bass Drum 36 Bass Drum 1 37 Side Stick 38 Acoustic Snare 39 Hand Clap 40 Electric Snare 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 Hi-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 Hi Bongo 61 Low Bongo 62 Mute Hi Conga 63 Open Hi Conga 64 Low Conga 65 High Timbale 66 Low Timbale 67 High Agogo 68 Low Agogo 69 Cabasa 70 Maracas 71 Short Whistle 72 Long Whistle 73 Short Guiro 74 Long Guiro 75 Claves 76 Hi Wood Block 77 Low Wood Block 78 Mute Cuica 79 Open Cuica 80 Mute Triangle 81 Open Triangle
1
2



