Advanced functions

Program Change

In Erae 2, Program Change, Bank Select, MSB, and LSB are used to control and select sounds or patches on a MIDI-compatible device. Buttons and both footswitch A and footswitch B can send Program Change on both states ON (trigger) and OFF (release). You can also latch these two states. 

Some jargon about on/off states:

We call BankSel off, MSB off, LSB off and PC off, the Bank Select, MSB, and LSB and Program Change value corresponding to the off-state or release state of the button/footswitch pedal.
Similarly, we call BankSel on, MSB on, LSB on and PC on, the Bank Select, MSB, and LSB and Program Change value corresponding to the on-state or triggered state of the button/footswitch pedal. 

Here's what Bank Select, MSB and LSB mean:

Bank Select:

  • MIDI allows for 128 program changes (0–127), but some devices offer more than 128 patches or sounds. To access these additional sounds, the Bank Select command is used to switch between different banks of sounds or presets.
  • It’s essentially an extension of the Program Change command.

MSB (Most Significant Byte):  

  • The MSB is part of the Bank Select message and represents the higher-order byte (more significant digits) of the bank number.
  • It defines the "coarse" part of the bank, which allows for broader selection across multiple banks.

LSB (Least Significant Byte):

  • The LSB is the complementary part of the Bank Select message and represents the lower-order byte (less significant digits) of the bank number.
  • It provides finer granularity within the bank selection process.

How They Work Together:

  • To select a specific sound, you typically:some text
    1. Send a Bank Select MSB message.
    2. Optionally send a Bank Select LSB message.
    3. Send a Program Change (PC) message to choose the desired patch within the selected bank.

This three-step process ensures you can select from a much larger range of sounds than what a single Program Change message can handle alone. Keep in mind that buttons, footswitch A and footswitch B can handle MSB/LSB/PC for both ON/OFF states. 

Example:

If a synthesizer has multiple banks of 128 patches:

  • BankSel off MSB 1, LSB 0, Program Change 10 might select patch 10 in bank 1 when a button or footswitch is released
  • BankSel on MSB 2, LSB 3, Program Change 50 could select patch 50 in bank 2, sub-bank 3 when a button or footswitch is triggered

These messages are often managed automatically by software or hardware MIDI controllers, but understanding their structure is essential when programming MIDI manually.