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

**** table 1 - general midi instrument patch map ****
(groups sounds into sixteen families, w/8 instruments in each family)

prog# instrument 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 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 ****

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.

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.

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.

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

(after electronic musician, 8/91 issue)

date: tue, 14 jan 92 23:01:16 est
from: (jeff mallory)
subject: general midi level spec