CCIncrementDecrementButtons
This is an example that demonstrates the use of Increment and Decrement buttons that can be used for scrolling through a song list, tuning effects, etc.
You can compare it to a rotary encoder, but with two buttons instead of an encoder.
- Boards: 🛈
- AVR, AVR USB, Nano Every, Due, Nano 33 IoT, Nano 33 BLE, UNO R4, Pi Pico, Teensy 3.x, ESP32, ESP8266
Connections
- 5: momentary push button (to ground)
- 6: momentary push button (to ground)
The internal pull-up resistors for the buttons will be enabled automatically.
Behavior
- If the button on pin 5 is pressed, a MIDI CC increment message is sent.
- If the button on pin 6 is pressed, a MIDI CC decrement message is sent.
- The controller number
MCU::V_POT_1
will be used.
- If either of the buttons is pressed down for a longer time, it will keep on sending increment/decrement messages quickly until you release it (like a key on a computer keyboard). This is to make it easier to scroll a large amount, for example. The timing can be changed by tweaking AH::LONG_PRESS_DELAY and AH::LONG_PRESS_REPEAT_DELAY in AH/Settings/Settings.hpp.
- If both buttons are pressed simultaneously, a MIDI Note On event is sent on note
MCU::V_POT_SELECT_1
.
(This is optional, you can just leave out the final argument to the constructor, and it won't send anything when you press both buttons at once).
- The multiplier can be used to increment multiple ticks per each time you press a button. This is useful if you have to press the button for a very long time to get a substantial change.
Map the Arduino as a Mackie Control Universal (MCU) or equivalent in your audio software.
Written by PieterP, 2019-01-26
https://github.com/tttapa/Control-Surface
{5, 6},
1,
};
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.
@ MACKIE_CONTROL_RELATIVE
Relative mode used by the Mackie Control Universal protocol.
void begin()
Initialize the Control_Surface.
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
static void setMode(relativeCCmode mode)
Set the relative CC mode that's used.
A class for MIDI interfaces sending MIDI messages over a USB MIDI connection.
constexpr uint8_t V_POT_1
V-Pot 1 (Relative) (Out)
constexpr uint8_t V_POT_SELECT_1
V-Pot select 1 (In/Out)