Control Surface new-input
MIDI Control Surface library for Arduino


This is an example on how to send MIDI messages.

AVR, AVR USB, Nano Every, Due, Nano 33 IoT, Nano 33 BLE, Teensy 3.x, ESP32

For a full list of available MIDI send functions, see MIDI_Sender.






Written by PieterP, 2020-06-11

#include <Control_Surface.h> // Include the Control Surface library
// The MIDI over USB interface to use
void setup() {
midi.begin(); // Initialize the MIDI interface
// MIDI note number, channel, and velocity to use
const MIDIAddress address {MIDI_Notes::C(4), CHANNEL_1};
const uint8_t velocity = 0x7F;
void loop() {
midi.sendNoteOn(address, velocity);
midi.sendNoteOff(address, velocity);
midi.update(); // Handle or discard MIDI input
constexpr Channel CHANNEL_1
Definition: Channel.hpp:118
The main header file that includes all Control-Surface header files.
void update() override
Read the MIDI interface and call the callback if a message was received.
A type-safe utility class for saving a MIDI address consisting of a 7-bit address,...
void begin() override
Initialize the MIDI Interface.
void sendNoteOn(MIDIAddress address, uint8_t velocity)
Send a MIDI Note On event.
Definition: MIDI_Sender.ipp:20
void sendNoteOff(MIDIAddress address, uint8_t velocity)
Send a MIDI Note Off event.
Definition: MIDI_Sender.ipp:31
A class for MIDI interfaces sending MIDI messages over a USB MIDI connection.
constexpr Note C
C (Do)
Definition: Notes.hpp:40