Log in
Log in

Create an account


GM, GS & XG: A Little History

MIDI: The GM Standard and its Extensions

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.

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.

Dossier sur le general MIDI : GM, GS et XG 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.


Some 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.


MIDIFilesMirroring 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).

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:




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 :

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
Be the first to post a comment

    Would you like to comment this article?

    Log in
    Become a member