The following was obtained from an internet music site and I
thought it would be useful to share, especially for those
preparing Windows 3.1 MIDI Mapper setups for their non GM synths

.

Date: Tue, 14 Jan 92 23:01:16 EST
From: jeff@millie.loc.gov (Jeff Mallory)
Subject: General MIDI Level Spec

**** Brief Overview of Proposed General MIDI Level 1 Spec ****

The heart of General MIDI (GM) is the _Instrument Patch Map_, shown in Table 1 (see below). This is a list of 128 sounds, with corresponding MIDI program numbers. Most of these are imitative sounds, though the list includes synth sounds, ethnic instruments and a handful of sound effects.

The sounds fall roughtly into sixteen families of eight variations each. Grouping sounds makes it easy to re-orchestrate a piece using similar sounds. The Instrument Map isn't the final word on musical instruments of the world, but it's pretty complete

General MIDI also includes a _Percusssion Key Map_, show in Table 2 (see below). This mapping derives from the Roland/Sequential mapping used on early drum machines. As with the Instrument Map, it doesn't cover every percussive instrument in the world, but it's more than adequate as a basic set.

To avoid concerns with channels, GM restricts percussion to MIDI Channel 10. Theoretically, the lower nine channels are for the instruments, but the GM spec states that a sound module must respond to all sixteen MIDI channels, with dynamic voice allocation and a minimum of 24 voices.

General MIDI doesn't mention sound quality of synthesis methods. Discussions are under way on standardizing sound parameters such as playable range and envelope times. This will ensure that an arrangement that relies on phrsing and balance can play back on a variety of modules.

Other requirements for a GM sound module include response to velocity, mod wheel, aftertouch, sustain and expression pedal, main volume and pan, and the All Notes Off and Reset All Controllers messages. The module also must respond to both Pitch Bend and Pitch Bend Sensitivity (a MIDI registered parameter). The default pitch bend range is +-2 semitones.

Middle C (C3) corresponds to MIDI key 60, and master tuning must be adjustable. Finally, the MIDI Manufacturers Association (MMA) created a new Universal System Exclusive message to turn General MIDI on and off (for devices that might have "consumer" and "programmable" settings). Table 3 (see below) summarizes these requirements.

General MIDI has room for future expansion, including additional drum and instrument assignments and more required controllers. Also under discussion is an "authorizing document" that would standardize things such as channel assignments (e.g., lead on 1, bass on 2, etc.) and setup information in a MIDI file.

Copies of the Level 1 Specification documents for General MIDI ($5 each at last notice) are available from the Internation MIDI Association, 5316 West 57th Street Los Angeles, CA 90056, (213) 649-6434. The first issue of the Journal of the MMA (back issues, $15 each) contains an article by PassPort Designs and Stanley Junglieb about General MIDI.

Roland's GS Standard

When Warner New Media first proposed a General MIDI standard, most MMA members gave it little thought. As discussions proceeded, Roland listened and developed a sound module to meet the proposed specification. At the same NAMM show where the MMA ratified General MIDI Level 1, Roland showed their Sound Brush and Sound Canvas, a Standard MIDI File player and GM-compatible sound module.

Some companies feel that General MIDI doesn't go far enough, so Roland created a superset of General MIDI Level 1, which they call GS Standard. It obeys all the protocols and sound maps of General MIDI and adds many extra controllers and sounds. Some of the controllers use Unregistered Parameter Numbers to give macro control over synth parameters such as envelope attack and decay rates.

The new MIDI Bank Select message provides access to extra sounds (including variations on the stock sounds and a re-creation of the MT-32 factory patches). The programs in each bank align with the original 128 in General MIDI's Instrument Patch Map, with eight banks housing related families. The GS Standard includes a "fall back" system. If the Sound Canvas receives a request for a bank/program number combination that does not exist, it will reassign it to the master instrument in that family. A set of Roland System Exclusive messages allows reconfiguration and customization of the sound module.

This means that a Roland GS Standard sound module will correctly play back any song designed for General MIDI. In addition, if the song's creator wants to create some extra nuance, they can include the GS Standard extensions in their sequence. None of these extensions are so radical as to make the song unplayable on a normal GM sound module. After all, compatibility is what MIDI - and especially General MIDI - is all about.

Music authors interested in the GS Standard should contact Tom White at RolandCorp USA, 7200 Dominion Circle, Los Angeles, CA 90040, (213) 685-5141.

**** TABLE 1 - General MIDI Instrument Patch Map ****


(groups sounds into sixteen families, w/8 instruments in each family)

Prog# Instrument

(1-8 PIANO) --- (9-16 CHROM 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 - Clav --- 16 - Dulcimer

(17-24 ORGAN) (25-32 GUITAR)

17 - Drawbar Organ --- 25 - Acoustic Guitar(nylon)
18 - Percussive Organ--- 26- Acoustic Guitar(steel)
19 - Rock Organ --- 27 - Electric Guitar(jazz)
20 - Church Organ --- 28 - Electric Guitar(clean)
21 - Reed Organ --- 29 - Electric Guitar(muted)
22 - Accoridan --- 30 - Overdriven Guitar
23 - Harmonica --- 31 - Distortion Guitar
24 - Tango Accordian --- 32 - Guitar Harmonics

(33-40 BASS) (41-48 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

(49-56 ENSEMBLE) (57-64 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

(65-72 REED) (73-80 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

(81-88 SYNTH LEAD) (89-96 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)

(97-104 SYNTH EFFECTS) (105-112 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

(113-120 PERCUSSIVE) (121-128 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

**** TABLE 2 - General MIDI Percussion Key Map ****


(assigns drum sounds to note numbers. MIDI Channel 10 is for percussion)

MIDI Drum Sound MIDI Drum Sound
Key

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

**** TABLE 3 - General MIDI minimum sound module specs ****

Voices:
A minimum of either 24 fully dynamically allocated voices available simultaneously for both melodic and percussive sounds or 16 dynamically allocated voices for melody plus eight for percussion.

Channels:
General MIDI mode supports all sixteen MIDI channels. Each channel can play a variable number of voices (polyphony). Each channel can play a different instrument (timbre). Keybased Percussion is always on Channel 10.

Instruments:
A minimum of sixteen different timbres playing various instrument sounds. A minimum of 128 preset for Intruments (MIDI program numbers)

Note on/Note off:
Octabe Registration: Middle C(C3) = MIDI key 60. All Voices including percussion respond to velocity.

Controllers:
Controller # Description
1 - Modulation
7 - Main Volume
10 - Pan
11 - Expression
64 - Sustain
121 - Reset All Controllers
123 - All Notes Off

Registered Description
Parameter #

0 - Pitch Bend Sensitivity
1 - Fine Tuning
2 - Coarse Tuning

Additional Channel Messages:
Channel Pressure (Aftertouch)
Pitch Bend

Power-Up Defaults:
Pitch Bend Amount = 0
Pitch Bend Sensitivity = +-2 semitones
Volume = 90
All Other Controllers = reset