Chapter 7: MIDI Messages In-Depth 25
chapter 7
MIDI Messages In-Depth
Program & Bank Changes
When the MIDI standard was first established, it enabled the user to access only 128 different sounds
using program change messages (0-127). As MIDI devices grew to be more sophisticated and contain
more sounds, bank change messages were included in an updated MIDI specification to allow for
more than 128 sounds to be accessed.
The language MIDI uses to communicate between musical instruments only allows for program
change commands 0-127, for a total of 128 possible programs (127 programs + program “0” = 128 pro-
grams total). Because of inherent limitations of the MIDI communication protocol, the number of di-
rectly accessible programs (using program change messages) cannot easily be expanded beyond 128.
Because of this, a system of banks, with 128 sounds in
each, has been created that enables manufacturers to
overcome the 128-sound MIDI limit.
128 banks with 128 sounds in each bank is the basic
principle used to expand the number of accessible
sounds. However, to avoid reaching the new limit of the
resulting 16,384 possible sounds (128 banks x 128 pro-
grams) accessible using a bank change combined with a
program change, another layer of banks was added. The
result is a system of 128 banks that can contain 128 sub-
banks in each of them, which, in turn, can contain 128
sounds (programs) within them.
Bank change messages are useful when calling up sounds
from a large library that may exist in a particular sound
module or software synth. For example devices that are
built with Roland’s GS specification or Yamaha’s XG
specification require you to specify a bank change in or-
der to access the extra voices and effects that these de-
vices provide.
Bank MSB 0
Bank MSB 127
Bank LSB 127
Bank MSB 2
Bank LSB 0
Bank LSB 1
Bank LSB 2
Bank LSB 127
Bank LSB 0
Bank LSB 1
Bank LSB 2
Bank LSB 127
Bank LSB 0
Bank LSB 1
Bank LSB 2
Bank MSB 1
Bank MSB Bank LSB Program
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2
Program 127
Program 0
Program 1
Program 2