Control Surface master
MIDI Control Surface library for Arduino


An advanced example with Program Change buttons in different Banks.

Bank<3> bank(4);
IncrementDecrementSelector<3> bankSelector {bank, {A0, A1}, Wrap::Clamp};
using namespace MIDI_PC;
2, // pin
3, // pin
4, // pin
5, // pin
void setup() {
void loop() {
The main header file that includes all Control-Surface header files.
Control_Surface_ & Control_Surface
A predefined instance of the Control Surface to use in the Arduino sketches.
@ Clamp
When the maximum (minimum) setting is reached, clamp to the maximum (minimum) setting.
A class that groups Bankable MIDI Output Elements and Bankable MIDI Input Elements,...
Definition: Bank.hpp:91
A class of MIDIOutputElements that read the input of a momentary push button or switch,...
void begin()
Initialize the Control_Surface.
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
Selector with two buttons (one to increment, one to decrement).
A class for MIDI interfaces sending MIDI messages over a USB MIDI connection.
Names and values for all MIDI Control Change Controller Numbers.
constexpr uint8_t Electric_Bass_Pick
constexpr uint8_t Rock_Organ
constexpr uint8_t Drawbar_Organ
constexpr uint8_t Harpsichord
constexpr uint8_t Church_Organ
constexpr uint8_t Acoustic_Guitar_Nylon
constexpr uint8_t Distortion_Guitar
constexpr uint8_t Slap_Bass_1
constexpr uint8_t Accordion
constexpr uint8_t Acoustic_Grand_Piano
constexpr uint8_t HonkyTonk_Piano
constexpr uint8_t Electric_Piano_1