General MIDI

From Wikipedia, the free encyclopedia

General MIDI (also known as GM or GM 1) is a standardized specification for electronic musical instruments 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 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 (polyphony). 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 superseded by General MIDI 2 in 1999; however, GM 1 is still commonly used.[1] General MIDI was widely supported by computer game developers in the 1990s.[2]

General MIDI 1 Requirements[edit]

To be GM 1 compatible, sound generating devices (keyboards, hardware or software synthesizers, sound cards) are required to meet the General MIDI System Level 1 performance specification:

Criterion Requirement
Piano keys 84 piano keys.
Voices Allow 24 voices to be available simultaneously for both melodic and percussive sounds (alternatively, allow 16 melodic and 8 percussive voices). 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 (multiple simultaneous notes) on each channel.
Instruments Support a minimum of 128 MIDI Program Numbers (conforming to the GM 1 Instrument Patch Map) and 47 percussion sounds (conforming to the GM 1 Percussion Key Map).
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[edit]

GM Instruments must also obey the following conventions for program and controller events:

Program change events[edit]

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.[3] 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).


Chromatic Percussion[edit]



In most synthesizer interpretations, guitar and bass sounds are set an octave lower than other instruments.







Synth Lead[edit]

  • 81 Lead 1 (square, often chorused)
  • 82 Lead 2 (sawtooth or saw, often chorused)
  • 83 Lead 3 (calliope, usually resembling a woodwind)
  • 84 Lead 4 (chiff)
  • 85 Lead 5 (charang, a guitar-like lead)
  • 86 Lead 6 (voice, derived from "synth voice" with faster attack)
  • 87 Lead 7 (fifths)
  • 88 Lead 8 (bass and lead or solo lead)

Synth Pad[edit]

  • 89 Pad 1 (new age, pad stacked with a bell, often derived from "Fantasia" patch from Roland D-50)
  • 90 Pad 2 (warm, a mellower pad with slow attack)
  • 91 Pad 3 (polysynth or poly, a saw-like percussive pad resembling an early 1980s polyphonic synthesizer)
  • 92 Pad 4 (choir, identical to "synth voice" with longer decay)
  • 93 Pad 5 (bowed glass or bowed, a sound resembling a glass harmonica)
  • 94 Pad 6 (metallic, often created from a piano or guitar sample played with the attack removed)
  • 95 Pad 7 (halo, choir-like pad, often with a filter effect)
  • 96 Pad 8 (sweep, pad with a pronounced "wah" filter effect)

Synth Effects[edit]

  • 97 FX 1 (rain, a bright pluck with echoing pulses that decreases in pitch)
  • 98 FX 2 (soundtrack, a bright perfect fifth pad)
  • 99 FX (crystal, a synthesized bell sound)
  • 100 FX 4 (atmosphere, usually a classical guitar-like sound)
  • 101 FX 5 (brightness, bright pad stacked with choir or bell)
  • 102 FX 6 (goblins, a slow-attack pad with chirping or murmuring sounds)
  • 103 FX 7 (echoes or echo drops, similar to "rain")
  • 104 FX 8 (sci-fi or star theme, usually an electric guitar-like pad)



Sound Effects[edit]


GM Standard Drum Map

In GM standard MIDI files, channel 10/11 is reserved for percussion instruments only.[3] Notes recorded on channel 10/11 always produce percussion sounds when transmitted to a keyboard or synth module which uses the GM standard. Each distinct note number specifies a unique percussive instrument, rather than the sound's pitch.

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 (of the possible 128 numbers from 0–127), as follows:[3]

The standard does not specify program change numbers for different drum sets.

Controller events[edit]

In MIDI, adjustable parameters for each of the 16 possible MIDI channels may be set with the Control Change (CC) message, which has a Control Number parameter and a Control Value parameter (expressed in a range from 0 to 127). GM also specifies which operations should be performed by multiple Control Numbers.[1][4]

CC Function
Pitch bend Pitch bend (MSB/LSB)
1 Modulation wheel
7 Channel volume
10 Channel pan
11 Expression controller
16 Ribbon controller or Generic knob 1
64 Sustain pedal
CC Function
100 Registered Parameter Number LSB
101 Registered Parameter Number MSB
121 Reset all controllers
123 All notes off/on
80 Decay Generic or Generic on/off switch
79 Sustain Level
70 (2 timbre set) Chiptune sound or FM-based sound (Sound Variation)
Octave switch Octave adjustment control


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.[5]

Setting Registered Parameters requires sending (numbers are decimal):

  1. two Control Change messages using Control Numbers 101 and 100 to select the parameter, followed by
  2. any number of Data Entry messages of one or two bytes (MSB = Controller #6, LSB = Controller #38), and finally
  3. an "End of RPN" message

The following global Registered Parameter Numbers (RPNs) are standardised[6] (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

An example of an RPN control sequence to set coarse tuning to A440 (parm 2, value 64) is 101:0, 100:2, 6:64, 101:127, 100:127.

System Exclusive messages[edit]

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[edit]

Roland 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 (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. 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:

GS was introduced in 1991 with the Roland Sound Canvas line, which was also Roland's first General MIDI synth module.[7]

XG extensions[edit]

Yamaha 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 2[edit]

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 introduced, called "Sound Controllers 1–10":[4]
CC Default function
70 Sound Variation
71 Timbre/Harmonic Intensity (filter resonance)
72 Release Time
73 Attack Time
74 Brightness (cutoff frequency)
CC Default function
75 Decay Time
76 Vibrato Rate
77 Vibrato Depth
78 Vibrato Delay
79 Metronome Rate
  • Registered Parameter Numbers (RPNs)
  • Universal SysEx messages
    • Master Volume, Fine Tuning, Coarse Tuning
    • Reverb Type, Time
    • Chorus Type, Mod Rate, Mod Depth, Feedback, Send to Reverb
    • Controller Destination Setting
    • Scale/Octave Tuning Adjust
    • Key-Based Instrument Controllers
    • GM2 System On SysEx message

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[edit]


  1. ^ a b "General MIDI (GM 1)". Retrieved 2021-10-25.
  2. ^ Trixter (5 October 2018). "Vintage DOS MIDI Game Music Explained". Oldskooler Ramblings. Retrieved 7 May 2021.
  3. ^ a b c "GM 1 Sound Set". Retrieved 2021-10-25.
  4. ^ a b "Control Change Messages (Data Bytes)". Retrieved 2019-06-05.
  5. ^ 充美, 加藤 (1 March 2008). "MIDI規格誕生の背景と規格の概要 : 電子音楽をとりまく環境の変化(<小特集>MIDI規格がもたらしたものと今後の展望)". 日本音響学会誌 (in Japanese). 64 (3). doi:10.20697/jasj.64.3_158. ISSN 0369-4232.
  6. ^ "General MIDI ("GM") Specifications". Retrieved 14 June 2018.
  7. ^ Microsoft (22 October 1996). "Microsoft Licenses Sound Canvas Sounds From Industry Leader Roland Corp". Stories. Retrieved 14 June 2018.

Official MIDI Standards Organizations[edit]

External links[edit]