Getting Started

cs-midi is a standalone MIDI library for pico-sdk, extracted from Control Surface. It provides BLE MIDI, Classic BT SPP MIDI, rotary encoders, buttons, potentiometers, LEDs, banks, and a flexible pipe-based routing system.

What's included


Installation

Prerequisites

Adding to your project

Add cs-midi as a git submodule:

git submodule add https://git.else-if.org/jess/cs-midi.git lib/cs-midi

In your CMakeLists.txt:

add_subdirectory(lib/cs-midi)
target_link_libraries(your_target cs_midi)
target_include_directories(cs_midi PRIVATE ${CMAKE_CURRENT_LIST_DIR})

The last line is required so cs-midi can find your project's btstack_config.h and lwipopts.h.

Include

#include <cs_midi.h>

This single header pulls in everything: output elements, input elements, pipes, banks, BLE interface, and the Control Surface singleton.