General MIDI

From Wikipedia, the free encyclopedia

Jump to: navigation, search

General MIDI or GM is a standardized specification for music synthesizers that respond to MIDI messages. GM was developed by the 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 protocol which ensures that different instruments can interoperate at a fundamental level (e.g. that pressing keys on a MIDI keyboard will cause an attached MIDI sound module to play musical notes), GM goes further in two ways: it requires that all GM-compatible synthesizers meet a certain minimal set of features, such as being able to play at least 24 notes simultaneously (polyphony), and it attaches specific interpretations to many parameters and control messages which were left under-specified in the MIDI 1.0 spec, such as defining instrument sounds for each of the 128 possible program numbers.

GM synthesizers are required to be able to:

  • Allow 24 voices to be active simultaneously (including at least 16 melodic and 8 percussive voices)
  • Respond to note velocity
  • Support all 16 channels simultaneously (with channel 10 reserved for percussion)
  • Support polyphony (multiple simultaneous notes) on each channel

Contents

[edit] Parameter interpretations

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

[edit] 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 Program Numbers for GM only. Note that for purposes of computer programming, this table should start at 0 instead of 1 and thus use all of the 7-bit range (0-127) allowed by the MIDI Program Change message. It should also be noted that some MIDI keyboards display these Program Numbers as shown in the table (1-128), whereas others show the range as actually coded in the Program Change message (0-127).

[edit] Melodic sounds

Piano:
1 Acoustic Grand Piano
2 Bright Acoustic Piano
3 Electric Grand Piano
4 Honky-tonk Piano
5 Electric Piano 1
6 Electric Piano 2

7 Harpsichord
8 Clavinet

Chromatic Percussion:
9 Celesta
10 Glockenspiel
11 Music Box
12 Vibraphone
13 Marimba
14 Xylophone
15 Tubular Bells
16 Dulcimer

Organ:
17 Drawbar Organ
18 Percussive Organ
19 Rock Organ
20 Church Organ
21 Reed Organ

22 Accordion
23 Harmonica
24 Tango Accordion

Guitar:
25 Acoustic Guitar (nylon)
26 Acoustic Guitar (steel)
27 Electric Guitar (jazz)
28 Electric Guitar (clean)
29 Electric Guitar (muted)
30 Overdriven Guitar
31 Distortion Guitar
32 Guitar harmonics

Bass:
33 Acoustic Bass
34 Electric Bass (finger)
35 Electric Bass (pick)
36 Fretless Bass
37 Slap Bass 1
38 Slap Bass 2
39 Synth Bass 1
40 Synth Bass 2

Strings:
41 Violin
42 Viola
43 Cello
44 Contrabass
45 Tremolo Strings
46 Pizzicato Strings
47 Orchestral Harp
48 Timpani

Strings (continued):
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
56 Orchestra Hit

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:
65 Soprano Sax
66 Alto Sax
67 Tenor Sax
68 Baritone Sax
69 Oboe
70 English Horn
71 Bassoon
72 Clarinet

Pipe:
73 Piccolo
74 Flute
75 Recorder
76 Pan Flute
77 Blown Bottle
78 Shakuhachi
79 Whistle
80 Ocarina

Synth Lead:
81 Lead 1 (square)
82 Lead 2 (sawtooth)
83 Lead 3 (calliope)
84 Lead 4 (chiff)
85 Lead 5 (charang)
86 Lead 6 (voice)
87 Lead 7 (fifths)
88 Lead 8 (bass + lead)

Synth Pad:
89 Pad 1 (new age)
90 Pad 2 (warm)
91 Pad 3 (polysynth)
92 Pad 4 (choir)
93 Pad 5 (bowed)
94 Pad 6 (metallic)
95 Pad 7 (halo)
96 Pad 8 (sweep)

Synth Effects:
97 FX 1 (rain)
98 FX 2 (soundtrack)
99 FX 3 (crystal)
100 FX 4 (atmosphere)
101 FX 5 (brightness)
102 FX 6 (goblins)
103 FX 7 (echoes)
104 FX 8 (sci-fi)

Ethnic:
105 Sitar
106 Banjo
107 Shamisen
108 Koto
109 Kalimba
110 Bag pipe
111 Fiddle
112 Shanai

Percussive:
113 Tinkle Bell
114 Agogo
115 Steel Drums
116 Woodblock
117 Taiko Drum
118 Melodic Tom
119 Synth Drum

Sound effects:
120 Reverse Cymbal
121 Guitar Fret Noise
122 Breath Noise
123 Seashore
124 Bird Tweet
125 Telephone Ring
126 Helicopter
127 Applause
128 Gunshot

[edit] Percussion notes

GM Standard Drum Map

In GM, MIDI channel 10 is reserved for percussion instruments only. Notes played on channel 10 always produce percussion sounds regardless of any Program Change messages or Program Numbers that may have been sent on channel 10. Each of the 128 different possible note numbers is interpreted as a separate, different instrument, and the percussion sound's pitch is not related to the note number:

35 Bass Drum 2
36 Bass Drum 1
37 Side Stick
38 Snare Drum 1
39 Hand Clap
40 Snare Drum 2
41 Low Tom 2
42 Closed Hi-hat
43 Low Tom 1
44 Pedal Hi-hat
45 Mid Tom 2
46 Open Hi-hat
47 Mid Tom 1
48 High Tom 2
49 Crash Cymbal 1
50 High Tom 1
51 Ride Cymbal 1
52 Chinese Cymbal
53 Ride Bell
54 Tambourine
55 Splash Cymbal
56 Cowbell
57 Crash Cymbal 2
58 Vibra Slap

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 Agogo
68 Low Agogo
69 Cabasa
70 Maracas
71 Short Whistle
72 Long Whistle
73 Short Guiro
74 Long Guiro
75 Claves
76 High Wood Block
77 Low Wood Block
78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle

[edit] 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 several Control Numbers:[1][2]

1 Modulation
6 Data Entry MSB
7 Volume
10 Pan
11 Expression
38 Data Entry LSB
64 Sustain
100 RPN LSB
101 RPN MSB
121 Reset all controllers
123 All notes off

[edit] RPN

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.

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 [1] (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
3,0 Tuning Program Change
4,0 Tuning Bank Select
5,0 Modulation Depth Range
127,127 RPN Null

For example: RPN control sequence to set coarse tuning to A440 (parm 2, value 64):
101:0, 100:2, 6:64, 101:127, 100:127

[edit] System Exclusive messages

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.

[edit] GS extensions

The first GM synthesizer in the Roland Sound Canvas line included a set of proprietary extensions to General MIDI standard. 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 65536 '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, 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.

[edit] General MIDI Level 2

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 GX 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)
  • Additional 128 melodic sounds are included in variation banks, for a total of 256
  • 9 GS Drum kits are included
  • Additional Control Change messages
    • Filter Resonance (Timbre/Harmonic Intensity) (cc#71)
    • Release Time (cc#72)
    • Brightness/Cutoff Frequency (cc#74)
    • Decay Time (cc#75)
    • Vibrato Rate (cc#76)
    • Vibrato Depth (cc#77)
    • Vibrato Delay (cc#78)
  • 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#32 to 121 and then using CC#0 to select the bank before a Program Change. The most expanded group is Acoustic Pianos.

[edit] General MIDI sound modules

[edit] See also

[edit] References

  1. ^ MIDI Messages Table 3

[edit] External links

[edit] Official MIDI Standards Organizations

Personal tools