At the beginning of a MIDI sequence, a Program Change message is usually sent on
each Channel used in the piece in order to set up the appropriate instrument
sound for each part.
A D V E R T I S E M E N T
The Program Change message tells the synthesizer which
patch number should be used for a particular MIDI Channel. If the synthesizer
receiving the MIDI sequence uses the same patch map (the assignment of patch
numbers to sounds) that was used in the composition of the sequence, then the
sounds will be assigned as intended.
Prior to General MIDI, there was no standard for the relationship of patch
numbers to specific sounds for synthesizers. Thus, a MIDI sequence might produce
different sounds when played on different synthesizers, even though the
synthesizers had comparable types of sounds. For example, if the composer had
selected patch number 5 for Channel 1, intending this to be an electric piano
sound, but the synthesizer playing the MIDI data had a tuba sound mapped at
patch number 5, then the notes intended for the piano would be played on the
tuba when using this synthesizer (even though this synthesizer may have a fine
electric piano sound available at some other patch number).
The General MIDI (GM) Specification defines a set of general capabilities for
General MIDI Instruments. The General MIDI Specification includes the definition
of a General MIDI Sound Set (a patch map), a General MIDI Percussion map
(mapping of percussion sounds to note numbers), and a set of General MIDI
Performance capabilities (number of voices, types of MIDI messages recognized,
etc.). A MIDI sequence which has been generated for use on a General MIDI
Instrument should play correctly on any General MIDI synthesizer or sound
The General MIDI system utilizes MIDI Channels 1-9 and 11-16 for chromatic
instrument sounds, while Channel number 10 is utilized for "key-based"
percussion sounds. These instrument sounds are grouped into "sets" of related
sounds. For example, program numbers 1-8 are piano sounds, 9-16 are chromatic
percussion sounds, 17-24 are organ sounds, 25-32 are guitar sounds, etc.
For the instrument sounds on channels 1-9 and 11-16, the note number in a
Note On message is used to select the pitch of the sound which will be played.
For example if the Vibraphone instrument (program number 12) has been selected
on Channel 3, then playing note number 60 on Channel 3 would play the middle C
note (this would be the default note to pitch assignment on most instruments),
and note number 59 on Channel 3 would play B below middle C. Both notes would be
played using the Vibraphone sound.
The General MIDI percussion sounds are set on Channel 10. For these
"key-based" sounds, the note number data in a Note On message is used
differently. Note numbers on Channel 10 are used to select which drum sound will
be played. For example, a Note On message on Channel 10 with note number 60 will
play a Hi Bongo drum sound. Note number 59 on Channel 10 will play the Ride
Cymbal 2 sound.
It should be noted that the General MIDI system specifies sounds using
program numbers 1 through 128. The MIDI Program Change message used to select
these sounds uses an 8-bit byte, which corresponds to decimal numbering from 0
through 127, to specify the desired program number. Thus, to select GM sound
number 10, the Glockenspiel, the Program Change message will have a data byte
with the decimal value 9.
The General MIDI system specifies which instrument or sound corresponds with
each program/patch number, but General MIDI does not specify how these sounds
are produced. Thus, program number 1 should select the Acoustic Grand Piano
sound on any General MIDI instrument. However, the Acoustic Grand Piano sound on
two General MIDI synthesizers which use different synthesis techniques may sound