Control Surface  1.2.0
MIDI Control Surface library for Arduino
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes | List of all members
MIDIInputElementNote Class Referenceabstract

Class for objects that listen for incoming MIDI Note events. More...

#include <MIDI_Inputs/MIDIInputElementNote.hpp>

+ Inheritance diagram for MIDIInputElementNote:
+ Collaboration diagram for MIDIInputElementNote:

Public Member Functions

virtual ~MIDIInputElementNote ()
 Destructor. More...
 
virtual void begin ()
 Initialize the input element. More...
 
virtual void reset ()
 Reset the input element to its initial state. More...
 
virtual void update ()
 Update the value of the input element. Used for decaying VU meters etc. More...
 
bool updateWith (const ChannelMessageMatcher &midimsg)
 Receive a new MIDI message and update the internal state. More...
 

Static Public Member Functions

static void beginAll ()
 Initialize all MIDIInputElementNote elements. More...
 
static void updateAll ()
 Update all MIDIInputElementNote elements. More...
 
static void resetAll ()
 Reset all MIDIInputElementNote elements to their initial state. More...
 
static void updateAllWith (const ChannelMessageMatcher &midimsg)
 Update all MIDIInputElementNote elements with a new MIDI message. More...
 

Protected Member Functions

 MIDIInputElementNote (const MIDIAddress &address)
 Constructor. More...
 

Protected Attributes

const MIDIAddress address
 
MIDIInputElementNotenext
 
MIDIInputElementNoteprevious
 

Private Member Functions

void moveDown ()
 Move down this element in the linked list of elements. More...
 
virtual bool updateImpl (const ChannelMessageMatcher &midimsg, const MIDIAddress &target)=0
 Update the internal state with the new MIDI message. More...
 
virtual MIDIAddress getTarget (const ChannelMessageMatcher &midimsg) const
 Extract the target address from a MIDI message. More...
 
virtual bool match (const MIDIAddress &target) const
 Check if the address of the incoming MIDI message matches an address of this element. More...
 

Static Private Attributes

static DoublyLinkedList< MIDIInputElementNoteelements
 

Detailed Description

Class for objects that listen for incoming MIDI Note events.

Examples
Custom-Note-LED-Input-Element-Callback-FastLED.ino.

Definition at line 20 of file MIDIInputElementNote.hpp.

Constructor & Destructor Documentation

◆ MIDIInputElementNote()

MIDIInputElementNote ( const MIDIAddress address)
inlineprotected

Constructor.

Todo:
Documentation.

Definition at line 28 of file MIDIInputElementNote.hpp.

◆ ~MIDIInputElementNote()

virtual ~MIDIInputElementNote ( )
inlinevirtual

Destructor.

Todo:
Documentation.

Definition at line 39 of file MIDIInputElementNote.hpp.

Member Function Documentation

◆ beginAll()

static void beginAll ( )
inlinestatic

Initialize all MIDIInputElementNote elements.

See also
MIDIInputElementNote::begin

Definition at line 49 of file MIDIInputElementNote.hpp.

◆ updateAll()

static void updateAll ( )
inlinestatic

Update all MIDIInputElementNote elements.

See also
MIDIInputElementNote::update

Definition at line 60 of file MIDIInputElementNote.hpp.

◆ resetAll()

static void resetAll ( )
inlinestatic

Reset all MIDIInputElementNote elements to their initial state.

See also
MIDIInputElementNote::reset

Definition at line 71 of file MIDIInputElementNote.hpp.

◆ updateAllWith()

static void updateAllWith ( const ChannelMessageMatcher midimsg)
inlinestatic

Update all MIDIInputElementNote elements with a new MIDI message.

See also
MIDIInputElementNote::updateWith

Definition at line 84 of file MIDIInputElementNote.hpp.

◆ moveDown()

void moveDown ( )
inlineprivate

Move down this element in the linked list of elements.

This means that the element will be checked earlier on the next iteration.

Definition at line 102 of file MIDIInputElementNote.hpp.

◆ begin()

virtual void begin ( )
inlinevirtualinherited

Initialize the input element.

Reimplemented in GenericProgramChangeSelector< N, Callback >, GenericProgramChangeSelector< N >, GenericProgramChangeSelector< N, SelectorLEDsCallback< N > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCFastLEDCallback< DefaultColorMapper > >, VU_Base< NumValues, Callback >, VU_Base< NumBanks, VULEDsCallback< NumLEDs > >, VU_Base< NumBanks, VUEmptyCallback >, VU_Base< 1, VUEmptyCallback >, VU_Base< 1, VULEDsCallback< NumLEDs > >, VPotRing_Base< NumValues, Callback >, VPotRing_Base< 1, VPotRingLEDsCallback >, VPotRing_Base< NumBanks, VPotEmptyCallback >, VPotRing_Base< 1, VPotEmptyCallback >, and VPotRing_Base< NumBanks, VPotRingLEDsCallback >.

Definition at line 30 of file MIDIInputElement.hpp.

◆ reset()

virtual void reset ( )
inlinevirtualinherited

Reset the input element to its initial state.

Reimplemented in GenericProgramChangeSelector< N, Callback >, GenericProgramChangeSelector< N >, GenericProgramChangeSelector< N, SelectorLEDsCallback< N > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCFastLEDCallback< DefaultColorMapper > >, VU_Base< NumValues, Callback >, VU_Base< NumBanks, VULEDsCallback< NumLEDs > >, VU_Base< NumBanks, VUEmptyCallback >, VU_Base< 1, VUEmptyCallback >, VU_Base< 1, VULEDsCallback< NumLEDs > >, VPotRing_Base< NumValues, Callback >, VPotRing_Base< 1, VPotRingLEDsCallback >, VPotRing_Base< NumBanks, VPotEmptyCallback >, VPotRing_Base< 1, VPotEmptyCallback >, VPotRing_Base< NumBanks, VPotRingLEDsCallback >, SevenSegmentDisplay< LENGTH >, SevenSegmentDisplay< AssignmentDisplayLength >, and SevenSegmentDisplay< TimeDisplayLength >.

Definition at line 33 of file MIDIInputElement.hpp.

◆ update()

virtual void update ( )
inlinevirtualinherited

◆ updateWith()

bool updateWith ( const ChannelMessageMatcher midimsg)
inlineinherited

Receive a new MIDI message and update the internal state.

Definition at line 39 of file MIDIInputElement.hpp.

◆ updateImpl()

virtual bool updateImpl ( const ChannelMessageMatcher midimsg,
const MIDIAddress target 
)
privatepure virtualinherited

Update the internal state with the new MIDI message.

Implemented in GenericProgramChangeSelector< N, Callback >, GenericProgramChangeSelector< N >, GenericProgramChangeSelector< N, SelectorLEDsCallback< N > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLEDBarCallback< NumLEDs > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDPWM< RangeLen > >, NoteCCRange< MIDIInputElementCC, RangeLen, 1, NoteCCLEDPWM< 1 > >, NoteCCRange< MIDIInputElementCC, RangeLen, NumBanks, NoteCCLED< RangeLen > >, NoteCCRange< MIDIInputElementNote, RangeLen, 1, NoteCCLED< 1 > >, NoteCCRange< MIDIInputElementNote, RangeLen, NumBanks, NoteCCFastLEDCallback< DefaultColorMapper > >, VU_Base< NumValues, Callback >, VU_Base< NumBanks, VULEDsCallback< NumLEDs > >, VU_Base< NumBanks, VUEmptyCallback >, VU_Base< 1, VUEmptyCallback >, VU_Base< 1, VULEDsCallback< NumLEDs > >, VPotRing_Base< NumValues, Callback >, VPotRing_Base< 1, VPotRingLEDsCallback >, VPotRing_Base< NumBanks, VPotEmptyCallback >, VPotRing_Base< 1, VPotEmptyCallback >, VPotRing_Base< NumBanks, VPotRingLEDsCallback >, SevenSegmentDisplay< LENGTH >, SevenSegmentDisplay< AssignmentDisplayLength >, and SevenSegmentDisplay< TimeDisplayLength >.

◆ getTarget()

virtual MIDIAddress getTarget ( const ChannelMessageMatcher midimsg) const
inlineprivatevirtualinherited

Extract the target address from a MIDI message.

Note
This base version of the function is only valid for messages that use data1 as an address (i.e. Note On, Note Off, Polyphonic Key Pressure and Control Change), because it assumes that the target address consists of the address (data 1), the MIDI channel and the cable number.

Reimplemented in MIDIInputElementPC, MIDIInputElementChannelPressure, VU_Base< NumValues, Callback >, VU_Base< NumBanks, VULEDsCallback< NumLEDs > >, VU_Base< NumBanks, VUEmptyCallback >, VU_Base< 1, VUEmptyCallback >, and VU_Base< 1, VULEDsCallback< NumLEDs > >.

Definition at line 63 of file MIDIInputElement.hpp.

◆ match()

virtual bool match ( const MIDIAddress target) const
inlineprivatevirtualinherited

Check if the address of the incoming MIDI message matches an address of this element.

Note
This base version of the function is only valid for non-Bankable MIDI input elements, it only matches if the address is equal to the address of this element.

Reimplemented in GenericNoteCCRange< MIDIInputElementCC, RangeLen, BankSize, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, BankSize, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, BankSize, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, BankSize, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, BankSize, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, BankSize, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, NoteCCFastLEDCallback< DefaultColorMapper > >, GenericVU< NumBanks, Callback >, GenericVU< NumBanks >, GenericVU< NumBanks, VULEDsCallback< NumLEDs > >, GenericVPotRing< NumBanks, Callback >, GenericVPotRing< NumBanks >, GenericVPotRing< NumBanks, VPotRingLEDsCallback >, SevenSegmentDisplay< LENGTH >, SevenSegmentDisplay< AssignmentDisplayLength >, and SevenSegmentDisplay< TimeDisplayLength >.

Definition at line 78 of file MIDIInputElement.hpp.

Member Data Documentation

◆ elements

DoublyLinkedList< MIDIInputElementNote > elements
staticprivate

Definition at line 107 of file MIDIInputElementNote.hpp.

◆ address

const MIDIAddress address
protectedinherited

Definition at line 83 of file MIDIInputElement.hpp.

◆ next

MIDIInputElementNote * next
protectedinherited

Definition at line 323 of file LinkedList.hpp.

◆ previous

MIDIInputElementNote * previous
protectedinherited

Definition at line 324 of file LinkedList.hpp.


The documentation for this class was generated from the following files: