Control Surface  1.1.0
MIDI Control Surface library for Arduino
CCButton.ino

CCButton

This is an example that demonstrates the use of MIDI Control Change Buttons.

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

Select the Arduino as a custom MIDI controller in your DAW, and use the MIDI learn option to assign the button to a function.

Written by PieterP, 2019-09-29
https://github.com/tttapa/Control-Surface

/**
* This is an example that demonstrates the use of MIDI Control Change Buttons.
*
* @boards AVR, AVR USB, Due, Nano 33, Teensy 3.x, ESP32
*
* Connections
* -----------
*
* - 5: momentary push button (to ground)
*
* The internal pull-up resistor for the button will be enabled automatically.
*
* Behavior
* --------
*
* - When the button on pin 5 is pressed, a MIDI Control Change message with a
* value of 0x7F (127) is sent for General Purpose Controller #1.
* - When the button on pin 5 is released, a MIDI Control Change message with a
* value of 0x00 (0) is sent for General Purpose Controller #1
*
* Mapping
* -------
*
* Select the Arduino as a custom MIDI controller in your DAW, and use the
* MIDI learn option to assign the button to a function.
*
* Written by PieterP, 2019-09-29
* https://github.com/tttapa/Control-Surface
*/
#include <Control_Surface.h> // Include the Control Surface library
// Instantiate a MIDI over USB interface.
// Instantiate a CCButton object
CCButton button = {
// Push button on pin 5:
5,
// General Purpose Controller #1 on MIDI channel 1:
};
void setup() {
Control_Surface.begin(); // Initialize Control Surface
}
void loop() {
Control_Surface.loop(); // Update the Control Surface
}
USBMIDI_Interface
A class for MIDI interfaces sending MIDI messages over a USB MIDI connection.
Definition: USBMIDI_Interface.hpp:43
Control_Surface.h
The main header file that includes all Control-Surface header files.
Control_Surface
Control_Surface_ & Control_Surface
A predefined instance of the Control Surface to use in the Arduino sketches.
Definition: Control_Surface_Class.cpp:174
CCButton
A class of MIDIOutputElements that read the input of a momentary push button or switch,...
Definition: CCButton.hpp:20
MIDI_CC::General_Purpose_Controller_1
constexpr uint8_t General_Purpose_Controller_1
Definition: Control_Change.hpp:32
Control_Surface_::begin
void begin()
Initialize the Control_Surface.
Definition: Control_Surface_Class.cpp:25
CHANNEL_1
constexpr Channel CHANNEL_1
Definition: Channel.hpp:111
Control_Surface_::loop
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
Definition: Control_Surface_Class.cpp:48