Bank Select Messages (CC 0 MSB & CC 32 LSB)
The two-stage continuous controller message protocol extending synthesizer patch selection from 128 programs up to 2,097,152 patches.
# Mathematical Formula & Architecture
Logic SpecificationSelection Sequence: CC 0 (Bank MSB) -> CC 32 (Bank LSB) -> Program Change (0-127). Total Banks = 128 * 128 = 16,384 banks.
def select_synth_patch(output, channel: int, bank_msb: int, bank_lsb: int, program: int):
"""Sends standard 3-message Bank Select and Program Change sequence."""
output.send([0xB0 | channel, 0, bank_msb]) # CC 0 Bank MSB
output.send([0xB0 | channel, 32, bank_lsb]) # CC 32 Bank LSB
output.send([0xC0 | channel, program]) # Program Change (0-127)
# Deep Technical Analysis & Historical Context
The original 1983 MIDI specification provided only 7 bits for the Program Change command (0xC0 to 0xCF followed by a single byte from 0 to 127), limiting synthesizers to a maximum of 128 patches. As romplers and multi-timbral sound modules arrived in the early 1990s (like the Roland JV-1080 with thousands of expansion card waveforms), 128 patches became hopelessly inadequate. The MMA introduced Bank Select using CC 0 (Most Significant Byte) and CC 32 (Least Significant Byte). Transmitted immediately prior to a Program Change command, Bank Select switches the synth's internal memory page, granting instant access to up to 16,384 banks of 128 patches each.
Common Studio Pitfall & Hardware Hazard
Many synths do not switch soundbanks when receiving CC 0 / CC 32 until the subsequent Program Change byte is received, causing producers to think their bank select message was ignored.
# Hardware Synthesizers Using This Technology
Click any synthesizer below to explore its specific memory protect routine, factory soundbanks, and Web MIDI SysEx cloud backup engine:
# Frequently Asked Engineering Questions
Why do some synths only listen to CC 0 or CC 32?
Synths with fewer than 128 banks often ignore CC 32 (LSB) and map all expansion cards and preset banks strictly across CC 0 (MSB).
Related Engineering Concepts
Back Up Your Hardware Patches Directly in Your Browser
bipluk communicates directly with your 1980s and 90s synthesizers via Web MIDI. Zero driver headaches, automatic checksum calculation, and encrypted cloud preservation.