Control Surface master MIDI Control Surface library for Arduino
Control-Change-Potentiometer.ino

Control-Change-Potentiometer

This example demonstrates the use of MIDI Control Change potentiometers that can be used for changing effect parameters, volumes, pan and balance controls, etc. It can control almost any knob in your DAW software.

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

Connections

• A0: wiper of a potentiometer

Connect the left terminal of the potentiometer to ground, and the right one to VCC.

Behavior

• When you turn the potentiometer, you should receive MIDI Control Change events, with a value between 0 and 127.
• The analog input is filtered, so there shouldn't be any noise on the position. If there is, check your wiring, and make sure that the resistance of the potentiometer isn't too high (10 kΩ is ideal).

Mapping

Select the Arduino as a custom MIDI controller in your DAW, and use the MIDI learn option to assign the potentiometer to a function.
It will send the MIDI Control Change Channel Volume parameter for channel 1.

Written by PieterP, 2019-08-13
https://github.com/tttapa/Control-Surface

#include <Control_Surface.h> // Include the Control Surface library
// Instantiate a MIDI over USB interface.
// Instantiate a CCPotentiometer object
CCPotentiometer potentiometer {
A0, // Analog pin connected to potentiometer
{MIDI_CC::Channel_Volume, CHANNEL_1}, // Channel volume of channel 1
};
void setup() {
Control_Surface.begin(); // Initialize Control Surface
}
void loop() {
Control_Surface.loop(); // Update the Control Surface
}
constexpr Channel CHANNEL_1
Definition: Channel.hpp:118