General Midi

On MIDI sound modules(including internal computer sound sets), it became desirable to define a standard set of Patches in order to make sound modules comparable between manufacturers. For example, it was decided that Patch number 1 on all sound modules should be the sound of an Acoustic Grand Piano. In this way, no matter what MIDI sound module you use, when you change to Patch number 1, you always hear some sort of Acoustic Grand Piano sound. A standard was set for 128 Patches which must appear in a specific order, and this standard is called General MIDI (GM). For example, Patch number 25 on a GM module must be a Nylon String Guitar. The chart, GM Patches, shows you the names of all GM Patches, and their respective Program Change numbers.

The patches are arranged into 16 "families" of instruments, with each family containing 8 instruments. For example, there is a Reed family. Among the 8 instruments within the Reed family, you will find Saxophone, Oboe, and Clarinet.

A GM sound module should be multi-timbral, meaning that it can play MIDI messages upon all 16 channels simultaneously, with a different GM Patch sounding for each channel.

Furthermore, all patches must sound an A440 pitch when receiving a MIDI note number of 69.

The GM module also has a built-in "drum module" (on Channel 10), then each of that Drum Part's MIDI notes triggers a different drum sound. The assignments of drum sounds to MIDI notes is shown in the chart, GM Drum Sounds. The Drum Part is set to receive MIDI messages upon channel 10.

GM Standard makes it easy for musicians to put Program Change messages in their MIDI (sequencer) song files, confident that those messages will select the correct instruments on all GM sound modules, and the song file would therefore play all of the correct instrumentation automatically. Furthermore, musicians need not worry about parts being played back in the wrong octave. Finally, musicians didn't have to worry that a snare drum part, for example, wouldn't be played back on a Cymbal. The GM spec also spells out other minimum requirements that a GM module should meet, such as being able to respond to Pitch and Modulation Wheels, and also be able to play 24 notes simultaneously (with dynamic voice allocation between the 16 Parts). All of these standards help to ensure that MIDI Files play back properly upon setups of various equipment.

The GM standard is actually not encompassed in the MIDI specification, and there's no reason why someone can't set up the Patches in his sound module to be entirely different sounds than the GM set. After all, most MIDI sound modules offer such programmability. But, most have a GM option so that musicians can easily play the many MIDI files that expect a GM module.

Finally, the GM spec spells out a few global settings. For example, the module should respond to velocity (ie, for note messages). This may be hard-wired to control the VCA level (ie, volume) of each note. Some modules may allow velocity to affect other parameters. The pitch wheel bend range should default to +/- 2 semitones. The module also should respond to Channel Pressure (often used to control VCA level or VCO level for vibrato depth) as well as the following MIDI controller messages: Modulation (1) (usually hard-wired to control LFO amount, ie, vibrato), Channel Volume (7), Pan (10), Expression (11), Sustain (64), Reset All Controllers (121), All Notes Off (123), and Data Slider (6). Channel Volume should default to 90, with all other controllers and effects off (including pitch wheel offset of 0). Additionally, the module should respond to these Registered Parameter Numbers: Pitch Wheel Bend Range (0), Fine Tuning (1), and Coarse Tuning (2). Initial tuning should be standard, A440 reference.

There is a MIDI System Exclusive message that can be used to turn a module's General MIDI mode on or off. See the MIDI specification. This is useful for modules that also offer more expansive, non-GM playback modes or extra, programmable banks of patches beyond the GM set, but need to allow the musician to switch to GM mode when desired.

NOTE: The GM spec doesn't dictate how a module produces sound. For example, one module could use cheap FM synthesis to simulate the Acoustic Grand Piano patch. Another module could use 24 digital audio waveforms of various notes on a piano, mapped out across the MIDI note range, to create that one Piano patch. Obviously, the 2 patches won't sound exactly alike, but at least they will both be piano patches on the 2 modules. So too, GM doesn't dictate VCA envelopes for the various patches, so for example, the Sax patch upon one module may have a longer release time than the same patch upon another module.

GM Patches

This chart shows the names of all 128 GM Instruments, and the MIDI Program Change numbers which select those Instruments.

Prog#   Instrument            Prog#    Instrument
 PIANO                           CHROMATIC PERCUSSION
1    Acoustic Grand             9   Celesta
2    Bright Acoustic           10   Glockenspiel
3    Electric Grand            11   Music Box
4    Honky-Tonk                12   Vibraphone
5    Electric Piano 1          13   Marimba
6    Electric Piano 2          14   Xylophone
7    Harpsichord               15   Tubular Bells
8    Clavinet                  16   Dulcimer
  ORGAN                          GUITAR
17   Drawbar Organ             25   Nylon String Guitar
18   Percussive Organ          26   Steel String Guitar
19   Rock Organ                27   Electric Jazz Guitar
20   Church Organ              28   Electric Clean Guitar
21   Reed Organ                29   Electric Muted Guitar
22   Accoridan                 30   Overdriven Guitar
23   Harmonica                 31   Distortion Guitar
24   Tango Accordian           32   Guitar Harmonics
  BASS                           SOLO STRINGS
33   Acoustic Bass             41   Violin
34   Electric Bass(finger)     42   Viola
35   Electric Bass(pick)       43   Cello
36   Fretless Bass             44   Contrabass
37   Slap Bass 1               45   Tremolo Strings
38   Slap Bass 2               46   Pizzicato Strings
39   Synth Bass 1              47   Orchestral Strings
40   Synth Bass 2              48   Timpani

  ENSEMBLE                       BRASS
49   String Ensemble 1         57   Trumpet
50   String Ensemble 2         58   Trombone
51   SynthStrings 1            59   Tuba
52   SynthStrings 2            60   Muted Trumpet
53   Choir Aahs                61   French Horn
54   Voice Oohs                62   Brass Section
55   Synth Voice               63   SynthBrass 1
56   Orchestra Hit             64   SynthBrass 2

  REED                           PIPE
65   Soprano Sax               73   Piccolo
66   Alto Sax                  74   Flute
67   Tenor Sax                 75   Recorder
68   Baritone Sax              76   Pan Flute
69   Oboe                      77   Blown Bottle
70   English Horn              78   Skakuhachi
71   Bassoon                   79   Whistle
72   Clarinet                  80   Ocarina

  SYNTH LEAD                     SYNTH PAD
81   Lead 1 (square)           89   Pad 1 (new age)
82   Lead 2 (sawtooth)         90   Pad 2 (warm)
83   Lead 3 (calliope)         91   Pad 3 (polysynth)
84   Lead 4 (chiff)            92   Pad 4 (choir)
85   Lead 5 (charang)          93   Pad 5 (bowed)
86   Lead 6 (voice)            94   Pad 6 (metallic)
87   Lead 7 (fifths)           95   Pad 7 (halo)
88   Lead 8 (bass+lead)        96   Pad 8 (sweep)
   SYNTH EFFECTS                  ETHNIC
 97  FX 1 (rain)               105   Sitar
 98  FX 2 (soundtrack)         106   Banjo
 99  FX 3 (crystal)            107   Shamisen
100  FX 4 (atmosphere)         108   Koto
101  FX 5 (brightness)         109   Kalimba
102  FX 6 (goblins)            110   Bagpipe
103  FX 7 (echoes)             111   Fiddle
104  FX 8 (sci-fi)             112   Shanai

   PERCUSSIVE                     SOUND EFFECTS
113  Tinkle Bell               121   Guitar Fret Noise
114  Agogo                     122   Breath Noise
115  Steel Drums               123   Seashore
116  Woodblock                 124   Bird Tweet
117  Taiko Drum                125   Telephone Ring
118  Melodic Tom               126   Helicopter
119  Synth Drum                127   Applause
120  Reverse Cymbal            128   Gunshot

Prog# refers to the MIDI Program Change number that causes this Patch to be selected. These decimal numbers are what the user normally sees on his module's display (or in a sequencer's "Event List"), but note that MIDI modules count the first Patch as 0, not 1. So, the value that is sent in the Program Change message would actually be one less. For example, the Patch number for Reverse Cymbal is actually sent as 119 rather than 120. But, when entering that Patch number using sequencer software or your module's control panel, the software or module understands that humans normally start counting from 1, and so would expect that you'd count the Reverse Cymbal as Patch 120. Therefore, the software or module automatically does this subtraction when it generates the MIDI Program Change message.

So, sending a MIDI Program Change with a value of 120 (ie, actually 119) to a Part causes the Reverse Cymbal Patch to be selected for playing that Part's MIDI data.

GM Drum Sounds

This chart shows what drum sounds are assigned to each MIDI note for a GM module (ie, that has a drum part).

MIDI    Drum Sound          MIDI    Drum Sound
Note #                      Note #
 35   Acoustic Bass Drum     59   Ride Cymbal 2
 36   Bass Drum 1            60   Hi Bongo
 37   Side Stick             61   Low Bongo
 38   Acoustic Snare         62   Mute Hi Conga
 39   Hand Clap              63   Open Hi Conga
 40   Electric Snare         64   Low Conga
 41   Low Floor Tom          65   High Timbale
 42   Closed Hi-Hat          66   Low Timbale
 43   High Floor Tom         67   High Agogo
 44   Pedal Hi-Hat           68   Low Agogo
 45   Low Tom                69   Cabasa
 46   Open Hi-Hat            70   Maracas
 47   Low-Mid Tom            71   Short Whistle
 48   Hi-Mid Tom             72   Long Whistle
 49   Crash Cymbal 1         73   Short Guiro
 50   High Tom               74   Long Guiro
 51   Ride Cymbal 1          75   Claves
 52   Chinese Cymbal         76   Hi Wood Block
 53   Ride Bell              77   Low Wood Block
 54   Tambourine             78   Mute Cuica
 55   Splash Cymbal          79   Open Cuica
 56   Cowbell                80   Mute Triangle
 57   Crash Cymbal 2         81   Open Triangle
 58   Vibraslap

A note-on with note number 42 will trigger a Closed Hi-Hat. This should cut off any Open Hi-Hat or Pedal Hi-Hat sound that may be sustaining. So too, a Pedal Hi-Hat should cut off a sustaining Open Hi-Hat or Closed Hi-Hat. In other words, only one of these three drum sounds can be sounding at any given time.

Similiarly, a Short Whistle should cut off a Long Whistle. A Short Guiro should cut off a Long Guiro. An Mute Triangle should cut off an Open Triangle. A Mute Cuica should cut off an Open Cuica.

Normally, all the above drum sounds have a fixed duration. Regardless of the time between when a Note-On is received and when a matching Note-Off is received, the drum sound always plays for a given duration. For example, assume that a device has a "Crash Cymbal 1" sound that plays for 4 seconds. If a Note-On for note number 49 is received, that cymbal sound starts playing. If a Note-Off for note number 49 is received only 1 second later, that should not cut off the remaining 3 seconds of the sound. The exceptions may be Long Whistle and Long Guiro, which may use the duration between the Note-On and Note-off to determine how "long" the sound plays.

If a drum is still sounding when another one of its Note-Ons is received, typically, another voice "stacks" another instance of that sound playing.