We’ve regularly get inquiries from users having trouble trying to integrate modern synth modules with old controllers or sequencers. Most of the problems lie in the fact that old equipment has no direct way to access the hundreds of sounds in newer modules because most of the sounds reside in banks that cannot be reached by simple MIDI program change commands. The following explanation, from our Director of Customer Support, Bruce Hendrix, will hopefully shed some light on this.
The MIDI specification was originally developed to access up to 128 programs using the Program Change message (0-127). At that time (mid 1980’s) no synthesizer held more than 128 sounds, but as technology advanced rapidly in the early 1990’s and RAM prices decreased, we found more and more synthesizers with greater than 128 patches. The MIDI Association recognized this problem and developed a new MIDI command called the Bank Select Command. The Bank Select command is made up of two messages: Continuous Controller 0 (Most Significant Bit or MSB) and Continuous Controller 32 (Least Significant Bit or LSB). Continuous Controller (see WFTD archive Continuous Controller) messages are often abbreviated as CC (For example: CC0 and CC32). Having two messages allows you the ability to access up to 16384 banks, each with 128 patches for a total of 2,097,152 patch locations! Unfortunately the MIDI association left the implementation of the Bank Select commands up to the synthesizer manufacturers and each company implemented it differently. Some synthesizers require both CC0 and CC32 while others require one or the other. You must check your synthesizer’s MIDI implementation chart (see WFTD archive MIDI Implementation Chart) to determine what message your machine needs.
So, to put it simply, in order to access the sounds beyond patch number 128 in your synthesizer you are going to use a combination of three commands: (2) Bank Select commands and a Program Change command.
For sequencer users you will need to manually insert the correct bank select and program change messages into your sequencer at the proper point (most sequencers have an insert function) and then each time you start the song the correct programs will be called automatically.