Custom-MIDI-Sender
This is an example that demonstrates how to extend the library using your own MIDI Senders. It implements functionality similar to the built-in DigitalNoteSender class, but with support for different on and off velocities.
- See also
- MIDI Senders for different kinds of MIDI senders to start from.
- Boards: 🛈
- AVR, AVR USB, Due, Nano 33 IoT, Nano 33 BLE, UNO R4, Pi Pico, 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 Note On message is sent for note C4 with velocity 0x40.
- When the button on pin 5 is released, a MIDI Note Off message is sent for note C4 with velocity 0x10.
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, 2020-04-18
https://github.com/tttapa/Control-Surface
class CustomNoteSender {
public:
CustomNoteSender(uint8_t onVelocity, uint8_t offVelocity)
: onVelocity(onVelocity), offVelocity(offVelocity) {}
}
}
private:
uint8_t onVelocity, offVelocity;
};
struct CustomNoteButton :
MIDIButton<CustomNoteSender> {
CustomNoteButton(pin_t pin,
MIDIAddress address, uint8_t onVelocity,
uint8_t offVelocity)
:
MIDIButton(pin, address, {onVelocity, offVelocity}) {}
};
CustomNoteButton button {
5,
0x40,
0x10,
};
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.
void begin()
Initialize the Control_Surface.
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
A type-safe utility class for saving a MIDI address consisting of a 7-bit address,...
void sendNoteOn(MIDIAddress address, uint8_t velocity)
Send a MIDI Note On event.
void sendNoteOff(MIDIAddress address, uint8_t velocity)
Send a MIDI Note Off event.
A class for MIDI interfaces sending MIDI messages over a USB MIDI connection.