cs-midi-docs/docs/examples/04-banks/06-program-change-selector.md

38 lines
657 B
Markdown

# ProgramChangeSelector
Bank selection triggered by incoming MIDI Program Change messages.
```cpp
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#include <cs_midi.h>
using namespace cs;
BluetoothMIDI_Interface midi;
Bank<8> bank(1);
Bankable::CCValue<8> ccVal {
{bank, BankType::ChangeAddress},
{16, Channel_1},
};
ProgramChangeSelector<8> selector {
bank,
{Channel_1, Cable_1},
};
int main() {
stdio_init_all();
if (cyw43_arch_init()) return 1;
Control_Surface.begin();
while (true) {
Control_Surface.loop();
uint8_t val = ccVal.getValue();
(void)val;
sleep_ms(1);
}
}
```