|
15
KeyRIg 49 User Guide
MIDI Messages In-Depth
11
Program & Bank Changes
WhentheMIDIstandardwasrstestablished,itenabledtheusertoaccessonly128differentsoundsusingprogramchange
messages(0-127).AsMIDIdevicesgrewtobemoresophisticatedandcontainmoresounds,bankchangemessageswereincluded
inanupdatedMIDIspecicationtoallowformorethan128soundstobeaccessed.
ThelanguageMIDIusestocommunicatebetween
musical instruments only allows for program
change commands 0-127, for a total of 128
possibleprograms(127programs+program
“0”=128programstotal).Becauseofinherent
limitationsoftheMIDIcommunicationprotocol,
the number of directly accessible programs (using
program change messages) cannot easily be
expandedbeyond128.Thus,asystemofbanks,
with 128 sounds in each, has been created that
enables manufacturers to overcome the 128-sound
MIDIlimit.
128 Banks with 128 sounds in each bank is the
basicprincipleusedtoexpandthenumberof
accessible sounds. However, to avoid reaching the
new limit of the resulting 16,384 possible sounds
(128banksx128programs)accessibleusinga
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
upsoundsfromalargelibrarythatmayexistina
particular sound module or software synth. For
exampledevicesthatarebuiltwithRoland’sGS
specification or Yamaha’s XG specification require
you to specify a bank change in order to access the
extravoicesandeffectsthatthesedevicesprovide.
MIDICC0isthebankselectMSB(Most
SignicantByte)message.ThisMIDImessageis
7-bit in size and can be used to select any of 128
banks.Thismessagecanbeusedinconjunction
withMIDICC32whichisbankselectLSB(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
selectanyofapossible16,384banks.Eachbank
"ANK-3"
"ANK-3"
"ANK,3"
"ANK-3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK,3"
"ANK-3"
"ANK-3" "ANK,3" 0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM
0ROGRAM