A MIDI Controller message used to extend the range of the program change message type.When the MIDI standard was first drawn up in the early 1980s, memory was expensive, and the creators of the program change message assumed that the 128 possible patch memory location numbers was more than any practical synth would ever need, due to cost considerations.However, with memory having become far cheaper since 1980, many synths now have far more than 128 patch storage locations. (Upwards of 500 is not uncommon now.) To allow more than 128 patch locations to be accessed, the MIDI standard allows patches to be grouped into banks; the bank select message selects a bank of patches, and then the program change message selects a patch within the bank. Note that bank select is a Controller type message; it uses Controller type 0 and optionally type 32. Using both allows up to about 16,000 banks to be accessed, each containing up to 128 patches.

Unfortunately, some manufacturers started using the bank select message before it was officially added to the MIDI standard, and so some early-1990s synths can be found which don’t do bank select properly because, although they recognize the message, they require a non-standard format. Some sequencers have the ability to generate bank select messages in different formats to accommodate this.