Control Surface  1.1.1
MIDI Control Surface library for Arduino
Serial-Interface.ino

Serial-Interface

This example demonstrates how to use a Serial MIDI Interface, for use with 5-pin DIN connectors, for example.

Boards:
AVR, AVR USB, Due, Nano 33, Teensy 3.x, ESP32

Connections

The internal pull-up resistor for the button will be enabled automatically.

Behavior

Mapping

None.

Written by PieterP, 2020-01-09
https://github.com/tttapa/Control-Surface

#include <Control_Surface.h> // Include the Control Surface library
// Select the serial port to use.
auto &serial = Serial;
// Instantiate a Serial MIDI interface at the default MIDI baud rate.
SerialMIDI_Interface<decltype(serial)> midi = {serial, MIDI_BAUD};
// You can also use the following serial MIDI interfaces:
//
// The Serial port that is connected to your computer over USB:
//
// USBSerialMIDI_Interface midi = 115200;
//
// A hardware serial port:
//
// HardwareSerialMIDI_Interface midi = {Serial1, MIDI_BAUD};
using namespace MIDI_Notes;
// Instantiate a NoteButton object
NoteButton button = {
5, // Push button on pin 5
{note(C, 4), CHANNEL_1}, // Note C4 on MIDI channel 1
};
// Instantiate the LED that will light up when middle C is playing
NoteValueLED led = {
LED_BUILTIN, // Pin of built-in LED
{note(C, 4), CHANNEL_1}, // Note C4 on MIDI channel 1
};
void setup() {
Control_Surface.begin(); // Initialize Control Surface
}
void loop() {
Control_Surface.loop(); // Update the Control Surface
}
MIDI_BAUD
constexpr auto MIDI_BAUD
Definition: MIDI_Interface.hpp:9
SerialMIDI_Interface
A wrapper class for MIDI interfaces sending and receiving MIDI messages over a Serial port of generic...
Definition: SerialMIDI_Interface.hpp:84
Control_Surface.h
The main header file that includes all Control-Surface header files.
Control_Surface_::loop
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
Definition: Control_Surface_Class.cpp:48
Control_Surface
Control_Surface_ & Control_Surface
A predefined instance of the Control Surface to use in the Arduino sketches.
Definition: Control_Surface_Class.cpp:176
MIDI_Notes::note
constexpr int8_t note(int8_t note, int8_t numOctave)
Get the MIDI note in the given octave.
Definition: Notes.hpp:35
NoteValueLED
MIDI Input Element that listens for MIDI Note messages for the given note, and displays its value by ...
Definition: NoteCCRangeLEDs.hpp:114
MIDI_Notes
MIDI note names.
Definition: Notes.hpp:16
NoteButton
A class of MIDIOutputElements that read the input of a momentary push button or switch,...
Definition: NoteButton.hpp:19
CHANNEL_1
constexpr Channel CHANNEL_1
Definition: Channel.hpp:111
MIDI_Notes::C
constexpr int8_t C
Definition: Notes.hpp:18
Control_Surface_::begin
void begin()
Initialize the Control_Surface.
Definition: Control_Surface_Class.cpp:25