# cs-midi A pico-sdk port of [tttapa/Control-Surface](https://github.com/tttapa/Control-Surface) (GPL-3.0). cs-midi provides the full Control Surface MIDI element system — output elements, input elements, banks, selectors, MIDI routing, and the declarative `Control_Surface` singleton — for use with the Raspberry Pi Pico SDK. ## Getting Started ```cpp #include "pico/stdlib.h" #include using namespace cs; BluetoothMIDI_Interface midi; NoteButton button {5, {MIDI_Notes::C[4], Channel_1}}; int main() { stdio_init_all(); Control_Surface.begin(); while (true) { Control_Surface.loop(); sleep_ms(1); } } ``` ## Differences from Control Surface - `#include ` replaces `#include ` - Standard `main()` replaces Arduino `setup()`/`loop()` - All types live in the `cs::` namespace - No `MCU::` namespace yet — use raw CC numbers or `MIDI_CC::` constants ## Credits Original library: [Control Surface](https://github.com/tttapa/Control-Surface) by **Pieter P (tttapa)** (GPL-3.0). pico-sdk port: [pszsh](https://else-if.org).