MIDI Control Surface library for Arduino
|
Go to the documentation of this file.
6 #include <AH/Hardware/ExtendedInputOutput/ExtendedInputOutput.hpp>
14 template <u
int8_t NumLEDs>
41 template <u
int8_t NumLEDs>
53 uint8_t value = AH::increaseBitDepth<8, 7, uint8_t>(t.
getValue(index));
84 template <u
int8_t RangeLen>
86 NoteCCLED<RangeLen>> {
145 template <u
int8_t RangeLen>
147 NoteCCLED<RangeLen>> {
198 template <u
int8_t RangeLen, u
int8_t BankSize>
200 BankSize, NoteCCLED<RangeLen>> {
203 const PinList<RangeLen> &ledPins,
213 template <u
int8_t BankSize>
215 BankSize, NoteCCLED<1>> {
228 template <u
int8_t BankSize>
229 using MIDINoteLED[[deprecated(
"Use NoteValueLED instead")]] =
232 template <u
int8_t RangeLen, u
int8_t BankSize>
234 BankSize, NoteCCLED<RangeLen>> {
237 const PinList<RangeLen> &ledPins,
247 template <u
int8_t BankSize>
277 template <u
int8_t RangeLen>
279 NoteCCLEDPWM<RangeLen>> {
332 template <u
int8_t RangeLen>
334 NoteCCLEDPWM<RangeLen>> {
384 template <u
int8_t RangeLen, u
int8_t BankSize>
386 BankSize, NoteCCLEDPWM<RangeLen>> {
389 const PinList<RangeLen> &ledPins,
399 template <u
int8_t BankSize>
401 BankSize, NoteCCLEDPWM<1>> {
412 template <u
int8_t RangeLen, u
int8_t BankSize>
414 BankSize, NoteCCLEDPWM<RangeLen>> {
417 const PinList<RangeLen> &ledPins,
427 template <u
int8_t BankSize>
void pinMode(pin_t pin, uint8_t mode)
An ExtIO version of the Arduino function.
void analogWrite(pin_t pin, analog_t val)
An ExtIO version of the Arduino function.
CCValueLED(const BankConfig< BankSize > &config, pin_t ledPin, const MIDICNChannelAddress &address)
CCRangeLEDsPWM(const PinList< RangeLen > &ledPins, MIDICNChannelAddress address)
Construct a new CCRangeLEDsPWM object.
A namespace for MIDI elements that can be added to a Bank, to change their address or channel.
PinList< NumLEDs > ledPins
virtual void updateAll(const INoteCCValue ¬eccval)
Update all values: called when a bank change causes all values to (possibly) change,...
CCRangeLEDsPWM(const BankConfig< BankSize > &config, const PinList< RangeLen > &ledPins, const MIDICNChannelAddress &address)
NoteRangeLEDs(const PinList< RangeLen > &ledPins, MIDICNChannelAddress address)
Construct a new NoteRangeLEDs object.
CCRangeLEDs(const BankConfig< BankSize > &config, const PinList< RangeLen > &ledPins, const MIDICNChannelAddress &address)
Interface for NoteCCValue objects: provides getters for the velocity or controller values.
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
A callback for NoteCCRange with an action that can be implemented by the user.
NoteValueLED(const BankConfig< BankSize > &config, pin_t ledPin, const MIDICNChannelAddress &address)
CCValueLED(pin_t ledPin, MIDICNChannelAddress address)
Construct a new CCValueLED object.
NoteValueLEDPWM(pin_t ledPin, MIDICNChannelAddress address)
Construct a new NoteValueLEDPWM object.
#define BEGIN_CS_NAMESPACE
void begin(const INoteCCValue &t) override
Initialize: called once.
#define AH_DIAGNOSTIC_POP()
NoteCCLEDPWM(const PinList< NumLEDs > &ledPins)
CCValueLEDPWM(pin_t ledPin, MIDICNChannelAddress address)
Construct a new CCValueLEDPWM object.
A type-safe utility class for saving a MIDI address consisting of a 7-bit address,...
CCValueLEDPWM(const BankConfig< BankSize > &config, pin_t ledPin, const MIDICNChannelAddress &address)
void update(const INoteCCValue &t, uint8_t index) override
Update the given index: called when a new message is received for this index.
NoteRangeLEDsPWM(const PinList< RangeLen > &ledPins, MIDICNChannelAddress address)
Construct a new NoteRangeLEDsPWM object.
NoteRangeLEDsPWM(const BankConfig< BankSize > &config, const PinList< RangeLen > &ledPins, const MIDICNChannelAddress &address)
MIDI Input Element that listens for MIDI Note messages for the given note, and displays its value by ...
PinList< NumLEDs > ledPins
NoteCCLED(const PinList< NumLEDs > &ledPins)
Callback for Note or CC range or value input that displays the value to a normal on/off LED.
virtual uint8_t getValue(uint8_t index) const =0
Get the velocity or controller value for the given index in the range.
NoteRangeLEDs(const BankConfig< BankSize > &config, const PinList< RangeLen > &ledPins, const MIDICNChannelAddress &address)
MIDI Input Element that listens for MIDI Control Change messages in a given range,...
Callback for Note or CC range or value input that displays the value to a PWM LED.
MIDI Input Element that listens for MIDI Control Change messages in a given range,...
void setThreshold(uint8_t threshold)
CCRangeLEDs(const PinList< RangeLen > &ledPins, MIDICNChannelAddress address)
Construct a new CCRangeLEDs object.
#define AH_DIAGNOSTIC_WERROR()
MIDI Input Element that listens for MIDI Control Change messages for the given controller,...
MIDI Input Element that listens for MIDI Control Change messages for the given controller,...
A struct for selecting the bank of BankableMIDIInputs and the bank type.
void digitalWrite(pin_t pin, uint8_t val)
An ExtIO version of the Arduino function.
MIDI Input Element that listens for MIDI Note messages in a given range, and displays their velocity ...
NoteValueLED(pin_t ledPin, MIDICNChannelAddress address)
Construct a new NoteValueLED object.
MIDI Input Element that listens for MIDI Note messages for the given note, and displays its velocity ...
void begin(const INoteCCValue &t) override
Initialize: called once.
NoteValueLEDPWM(const BankConfig< BankSize > &config, pin_t ledPin, const MIDICNChannelAddress &address)
MIDI Input Element that listens for MIDI Note messages in a given range, and displays their values by...
void update(const INoteCCValue &t, uint8_t index) override
Update the given index: called when a new message is received for this index.
uint8_t getThreshold() const