34 User Guide Oxygen 88
10: MIDI Messages Defined
Program and 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 became more sophisticated and contained more sounds, bank change messages were included
in an updated MIDI specification allowing access to more than 128 sounds. 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 programs total). Due to inherent limitations of the MIDI communication protocol, the number of directly accessible
programs (using program change messages) cannot easily be expanded beyond 128. Thus, 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 programs) 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).
Bank change messages are useful when calling up sounds from a
large library that may exist in a particular sound module or software
synthesizer. For example, devices that are built according to the
GS specification from Roland or the XG specification (Appendix E)
from Yamaha require you to specify a bank change in order to
access the extra voices that these devices provide. MIDI CC 0 is
the bank select MSB (Most Significant Byte) message. This MIDI
message is 7-bit in size and can be used to select any of 128
banks.
This message can be used in conjunction with MIDI CC 32 which is
bank select LSB (Least Significant Byte): a separate 7-bit message
allowing additional selection of any of another 128 sub-banks. The
combination of Bank MSB and LSB messages gives a 14-bit
message that can select any of a possible 16,384 banks. Each
bank can in turn contain 128 possible sounds selected via a
separate program change MIDI message. This enables a user to
theoretically recall over two million programs directly, using only
MIDI commands. However, most devices only use a few different
banks, and you can often ignore the LSB message.
You will find many MIDI devices respond to program change
commands and many are organized according to the GM listing. In
General MIDI devices, different sounds are organized in the same
way from device to device. Piano sounds are in their particular
place, string sounds are in their place, drum sounds are in their
place, and so on. All GM devices (both hardware and software
sound modules) are clearly labeled as such, so you know that their
sounds are organized in the General MIDI structure. When a GM
device receives a MIDI program change, it calls up a type of sound
that you expect from the GM sound set. All non-GM MIDI sound
modules call up unique sounds from their memory upon receiving MIDI program changes. Since the sounds in a non-GM device are
not arranged in a particular order, you need to take a look at the device itself to see which sound you want and at which location in
the memory it resides. Many VST instruments such as Native Instruments FM7 or the synth modules in Propellerheads Reason are
non-GM devices.
You can send Program Change, Bank LSB and Bank MSB messages directly from Oxygen 88.
Please consult the documentation for your sound module, DAW or software instrument for further information.
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