cs-midi-docs/docs/examples/04-banks/03-encoder-selector.md

627 B

EncoderSelector

Bank selection via rotary encoder.

#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#include <cs_midi.h>

using namespace cs;

BluetoothMIDI_Interface midi;

Bank<4> bank(2);

Bankable::CCValue<4> ccVal {
    {bank, BankType::ChangeAddress},
    {16, Channel_1},
};

EncoderSelector<4> selector {
    bank,
    {0, 2},
    4,
    Wrap::Wrap,
};

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);
    }
}