cs-midi-docs/docs/examples/01-output/19-program-changer.md

715 B

ProgramChanger

Sends different program changes based on selector state.

Original: Program-Changer.ino

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

using namespace cs;

BluetoothMIDI_Interface midi;

ProgramChanger<4> programChanger {
    {{
        MIDI_PC::Acoustic_Grand_Piano,
        MIDI_PC::Rock_Organ,
        MIDI_PC::Steel_Drums,
        MIDI_PC::Pad_2,
    }},
    Channel_1,
};

IncrementDecrementSelector<4> selector {
    programChanger,
    {2, 3},
    Wrap::Wrap,
};

int main() {
    stdio_init_all();
    if (cyw43_arch_init()) return 1;
    Control_Surface.begin();
    while (true) {
        Control_Surface.loop();
        sleep_ms(1);
    }
}