#include <MIDI_Interfaces/DebugMIDI_Interface.hpp>
A wrapper class for debug MIDI outputs sending human-readable MIDI messages over a Serial port of class T.
begin
method. Definition at line 84 of file DebugMIDI_Interface.hpp.
Enabling and disabling updatables | |
void | enable () |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More... | |
void | disable () |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More... | |
bool | isEnabled () const |
Check if this updatable is enabled. More... | |
void | moveDown () |
Move down this element in the list. More... | |
static void | enable (UpdatableCRTP *element) |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More... | |
static void | enable (UpdatableCRTP &element) |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More... | |
static void | enable (U(&array)[N]) |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically. More... | |
static void | disable (UpdatableCRTP *element) |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More... | |
static void | disable (UpdatableCRTP &element) |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More... | |
static void | disable (U(&array)[N]) |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically. More... | |
Sending MIDI Channel Voice messages | |
void | send (ChannelMessage message) |
Send a MIDI Channel Voice message. More... | |
void | sendChannelMessage (MIDIMessageType m, Channel c, uint8_t d1, uint8_t d2, Cable cable=CABLE_1) |
Send a 3-byte MIDI Channel Voice message. More... | |
void | sendChannelMessage (MIDIMessageType m, Channel c, uint8_t d1, Cable cable=CABLE_1) |
Send a 2-byte MIDI Channel Voice message. More... | |
void | sendNoteOn (MIDIAddress address, uint8_t velocity) |
Send a MIDI Note On event. More... | |
void | sendNoteOff (MIDIAddress address, uint8_t velocity) |
Send a MIDI Note Off event. More... | |
void | sendKeyPressure (MIDIAddress address, uint8_t pressure) |
Send a MIDI Key Pressure event. More... | |
void | sendControlChange (MIDIAddress address, uint8_t value) |
Send a MIDI Control Change event. More... | |
void | sendProgramChange (MIDIAddress address) |
Send a MIDI Program Change event. More... | |
void | sendProgramChange (MIDIChannelCable address, uint8_t value) |
Send a MIDI Program Change event. More... | |
void | sendChannelPressure (MIDIChannelCable address, uint8_t pressure) |
Send a MIDI Channel Pressure event. More... | |
void | sendPitchBend (MIDIChannelCable address, uint16_t value) |
Send a MIDI Pitch Bend event. More... | |
Sending MIDI System Common messages | |
void | send (SysCommonMessage message) |
Send a MIDI System Common message. More... | |
void | sendSysCommon (MIDIMessageType m, Cable cable=CABLE_1) |
Send a MIDI System Common message. More... | |
void | sendSysCommon (MIDIMessageType m, uint8_t data1, Cable cable=CABLE_1) |
Send a MIDI System Common message. More... | |
void | sendSysCommon (MIDIMessageType m, uint8_t data1, uint8_t data2, Cable cable=CABLE_1) |
Send a MIDI System Common message. More... | |
void | sendMTCQuarterFrame (uint8_t data, Cable cable=CABLE_1) |
Send a MIDI Time Code Quarter Frame. More... | |
void | sendMTCQuarterFrame (uint8_t messageType, uint8_t values, Cable cable=CABLE_1) |
Send a MIDI Time Code Quarter Frame. More... | |
void | sendSongPositionPointer (uint16_t spp, Cable cable=CABLE_1) |
Send a MIDI Song Position Pointer message. More... | |
void | sendSongSelect (uint8_t song, Cable cable=CABLE_1) |
Send a MIDI Song Select message. More... | |
void | sendTuneRequest (Cable cable=CABLE_1) |
Send a MIDI Tune Request. More... | |
Sending MIDI System Exclusive messages | |
void | send (SysExMessage message) |
Send a MIDI System Exclusive message. More... | |
void | sendSysEx (const uint8_t(&sysexdata)[N], Cable cable=CABLE_1) |
Send a MIDI System Exclusive message. More... | |
void | sendSysEx (const uint8_t *data, uint16_t length, Cable cable=CABLE_1) |
Send a MIDI System Exclusive message. More... | |
Sending MIDI Real-Time messages | |
void | send (RealTimeMessage message) |
Send a MIDI Real-Time message. More... | |
void | sendRealTime (MIDIMessageType rt, Cable cable=CABLE_1) |
Send a MIDI Real-Time message. More... | |
void | sendRealTime (uint8_t rt, Cable cable=CABLE_1) |
Send a MIDI Real-Time message. More... | |
void | sendTimingClock (Cable cable=CABLE_1) |
Send a MIDI Timing Clock message. More... | |
void | sendStart (Cable cable=CABLE_1) |
Send a MIDI Start message. More... | |
void | sendContinue (Cable cable=CABLE_1) |
Send a MIDI Continue message. More... | |
void | sendStop (Cable cable=CABLE_1) |
Send a MIDI Stop message. More... | |
void | sendActiveSensing (Cable cable=CABLE_1) |
Send a MIDI Active Sensing message. More... | |
void | sendSystemReset (Cable cable=CABLE_1) |
Send a MIDI System Reset message. More... | |
Flusing the MIDI send buffer | |
void | sendNow () |
Causes all buffered messages to be sent immediately. More... | |
Deprecated | |
void | sendKP (MIDIAddress address, uint8_t pressure) |
Send a MIDI Key Pressure event. More... | |
void | sendCC (MIDIAddress address, uint8_t value) |
Send a MIDI Control Change event. More... | |
void | sendPC (MIDIAddress address) |
Send a MIDI Program Change event. More... | |
void | sendPC (MIDIChannelCable address, uint8_t value) |
Send a MIDI Program Change event. More... | |
void | sendCP (MIDIChannelCable address, uint8_t pressure) |
Send a MIDI Channel Pressure event. More... | |
void | sendPB (MIDIChannelCable address, uint16_t value) |
Send a MIDI Pitch Bend event. More... | |
Connecting and disconnecting MIDI Pipes | |
void | connectSourcePipe (MIDI_Pipe *source) |
Fully connect a source pipe to this sink. More... | |
void | disconnectSourcePipes () |
Disconnect all source pipes that sink to this sink (recursively). More... | |
bool | disconnect (TrueMIDI_Source &source) |
Disconnect the given source from this sink. More... | |
bool | disconnect (MIDI_Pipe &)=delete |
bool | hasSourcePipe () const |
Check if this sink is connected to a source pipe. More... | |
MIDI_Pipe * | getSourcePipe () |
Get a pointer to the pipe this sink is connected to, or nullptr if not connected. More... | |
Public Member Functions | |
SerialDebugMIDI_Output (T &serial, unsigned long baud=AH::defaultBaudRate, const char *prefix=nullptr) | |
Construct a new Debug MIDI Output on the given Serial interface with the given baud rate. More... | |
SerialDebugMIDI_Output (T &serial, const char *prefix) | |
void | begin () override |
Start the Serial interface at the predefined baud rate. More... | |
Stream & | getStream () const |
void | setPrefix (const char *prefix) |
Set the prefix to be printed before each message. More... | |
const char * | getPrefix () const |
Static Public Member Functions | |
static void | beginAll () |
static void | swap (MIDI_Sink &a, MIDI_Sink &b) |
Protected Member Functions | |
void | sendChannelMessageImpl (ChannelMessage) |
void | sendChannelMessageImpl (Stream &, ChannelMessage) |
void | sendSysCommonImpl (SysCommonMessage) |
void | sendSysCommonImpl (Stream &, SysCommonMessage) |
void | sendSysExImpl (SysExMessage) |
void | sendSysExImpl (Stream &, SysExMessage) |
void | sendRealTimeImpl (RealTimeMessage) |
void | sendRealTimeImpl (Stream &, RealTimeMessage) |
void | sendNowImpl () |
void | sendNowImpl (Stream &) |
void | sinkMIDIfromPipe (ChannelMessage m) override |
Accept an incoming MIDI Channel message. More... | |
void | sinkMIDIfromPipe (SysExMessage m) override |
Accept an incoming MIDI System Exclusive message. More... | |
void | sinkMIDIfromPipe (SysCommonMessage m) override |
Accept an incoming MIDI System Common message. More... | |
void | sinkMIDIfromPipe (RealTimeMessage m) override |
Accept an incoming MIDI Real-Time message. More... | |
Protected Attributes | |
MIDIOutputOnly * | next |
MIDIOutputOnly * | previous |
Stream & | stream |
friend | MIDI_Sender< StreamDebugMIDI_Output > |
MIDI_Pipe * | sourcePipe = nullptr |
Static Protected Attributes | |
static DoublyLinkedList< MIDIOutputOnly > | updatables |
Private Member Functions | |
virtual void | stallDownstream (MIDIStaller *, MIDI_Source *) |
Base case for recursive stall function. More... | |
virtual void | unstallDownstream (MIDIStaller *, MIDI_Source *) |
Base case for recursive un-stall function. More... | |
virtual MIDI_Sink * | getFinalSink () |
Base case for recursive function. More... | |
void | disconnectSourcePipesShallow () |
Disconnect only the first pipe connected to this sink. More... | |
Private Attributes | |
const unsigned long | baud |
const char * | prefix = nullptr |
|
inline |
Construct a new Debug MIDI Output on the given Serial interface with the given baud rate.
serial | The Serial interface. |
baud | The baud rate for the Serial interface. |
prefix | An optional string to print before each message. |
Definition at line 98 of file DebugMIDI_Interface.hpp.
|
inline |
Definition at line 102 of file DebugMIDI_Interface.hpp.
|
inlineoverridevirtual |
Start the Serial interface at the predefined baud rate.
Implements MIDIOutputOnly.
Definition at line 108 of file DebugMIDI_Interface.hpp.
|
inlinestaticinherited |
Definition at line 70 of file DebugMIDI_Interface.hpp.
|
inlineinherited |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.
Definition at line 100 of file Updatable.hpp.
|
inlinestaticinherited |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.
Definition at line 129 of file Updatable.hpp.
|
inlinestaticinherited |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.
Definition at line 131 of file Updatable.hpp.
|
inlinestaticinherited |
Enable this updatable: insert it into the linked list of instances, so it gets updated automatically.
Definition at line 134 of file Updatable.hpp.
|
inlineinherited |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.
Definition at line 110 of file Updatable.hpp.
|
inlinestaticinherited |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.
Definition at line 140 of file Updatable.hpp.
|
inlinestaticinherited |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.
Definition at line 142 of file Updatable.hpp.
|
inlinestaticinherited |
Disable this updatable: remove it from the linked list of instances, so it no longer gets updated automatically.
Definition at line 145 of file Updatable.hpp.
|
inlineinherited |
Check if this updatable is enabled.
Definition at line 124 of file Updatable.hpp.
|
inlineinherited |
Move down this element in the list.
Definition at line 151 of file Updatable.hpp.
|
inlineinherited |
Definition at line 47 of file DebugMIDI_Interface.hpp.
|
protectedinherited |
Definition at line 118 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 52 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 121 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 89 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 124 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 77 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 127 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 107 of file DebugMIDI_Interface.cpp.
|
protectedinherited |
Definition at line 130 of file DebugMIDI_Interface.cpp.
|
inlineprotectedinherited |
Definition at line 21 of file DebugMIDI_Interface.hpp.
|
inlineoverrideprotectedvirtualinherited |
Accept an incoming MIDI Channel message.
Implements MIDI_Sink.
Definition at line 56 of file DebugMIDI_Interface.hpp.
|
inlineoverrideprotectedvirtualinherited |
Accept an incoming MIDI System Exclusive message.
Implements MIDI_Sink.
Definition at line 57 of file DebugMIDI_Interface.hpp.
|
inlineoverrideprotectedvirtualinherited |
Accept an incoming MIDI System Common message.
Implements MIDI_Sink.
Definition at line 58 of file DebugMIDI_Interface.hpp.
|
inlineoverrideprotectedvirtualinherited |
Accept an incoming MIDI Real-Time message.
Implements MIDI_Sink.
Definition at line 59 of file DebugMIDI_Interface.hpp.
|
inlineinherited |
Set the prefix to be printed before each message.
Definition at line 27 of file DebugMIDI_Interface.hpp.
|
inlineinherited |
Definition at line 28 of file DebugMIDI_Interface.hpp.
|
inherited |
Send a MIDI Channel Voice message.
Definition at line 17 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI System Common message.
Definition at line 74 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI System Exclusive message.
Definition at line 101 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Real-Time message.
Definition at line 114 of file MIDI_Sender.ipp.
|
inherited |
Send a 3-byte MIDI Channel Voice message.
m | MIDI message type. [0x80, 0xE0] |
c | The MIDI channel. [1, 16] |
d1 | The first data byte. [0, 127] |
d2 | The second data byte. [0, 127] |
cable | The MIDI Cable Number. [CABLE_1, CABLE_16] |
Definition at line 33 of file MIDI_Sender.ipp.
|
inherited |
Send a 2-byte MIDI Channel Voice message.
m | MIDI message type. [0x80, 0xE0] |
c | The MIDI channel. [1, 16] |
d1 | The first data byte. [0, 127] |
cable | The MIDI Cable Number. [1, 16] |
Definition at line 48 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Note On event.
Definition at line 52 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Note Off event.
Definition at line 54 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Key Pressure event.
Definition at line 56 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Control Change event.
Definition at line 58 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Program Change event.
Definition at line 60 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Program Change event.
Definition at line 62 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Channel Pressure event.
Definition at line 64 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Pitch Bend event.
Definition at line 66 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI System Common message.
Definition at line 76 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI System Common message.
Definition at line 78 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI System Common message.
Definition at line 80 of file MIDI_Sender.ipp.
Send a MIDI Time Code Quarter Frame.
Definition at line 84 of file MIDI_Sender.ipp.
Send a MIDI Time Code Quarter Frame.
Definition at line 86 of file MIDI_Sender.ipp.
Send a MIDI Song Position Pointer message.
Definition at line 89 of file MIDI_Sender.ipp.
Send a MIDI Song Select message.
Definition at line 91 of file MIDI_Sender.ipp.
Send a MIDI Tune Request.
Definition at line 93 of file MIDI_Sender.ipp.
Send a MIDI System Exclusive message.
Definition at line 104 of file MIDI_Sender.ipp.
Send a MIDI System Exclusive message.
Definition at line 106 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Real-Time message.
Definition at line 116 of file MIDI_Sender.ipp.
Send a MIDI Real-Time message.
Definition at line 118 of file MIDI_Sender.ipp.
Send a MIDI Timing Clock message.
Definition at line 121 of file MIDI_Sender.ipp.
Send a MIDI Start message.
Definition at line 123 of file MIDI_Sender.ipp.
Send a MIDI Continue message.
Definition at line 125 of file MIDI_Sender.ipp.
Send a MIDI Stop message.
Definition at line 127 of file MIDI_Sender.ipp.
Send a MIDI Active Sensing message.
Definition at line 129 of file MIDI_Sender.ipp.
Send a MIDI System Reset message.
Definition at line 131 of file MIDI_Sender.ipp.
|
inherited |
Causes all buffered messages to be sent immediately.
Definition at line 142 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Key Pressure event.
Definition at line 152 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Control Change event.
Definition at line 156 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Program Change event.
Definition at line 160 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Program Change event.
Definition at line 164 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Channel Pressure event.
Definition at line 168 of file MIDI_Sender.ipp.
|
inherited |
Send a MIDI Pitch Bend event.
Definition at line 172 of file MIDI_Sender.ipp.
|
inherited |
Fully connect a source pipe to this sink.
Definition at line 16 of file MIDI_Pipes.cpp.
|
inherited |
Disconnect all source pipes that sink to this sink (recursively).
Definition at line 25 of file MIDI_Pipes.cpp.
|
inherited |
Disconnect the given source from this sink.
Leaves other sources connected. Returns true if the source was found and disconnected, false if the given source was not a direct or indirect source to this sink.
Definition at line 40 of file MIDI_Pipes.cpp.
|
deleteinherited |
|
inlineinherited |
Check if this sink is connected to a source pipe.
Definition at line 117 of file MIDI_Pipes.hpp.
|
inlineinherited |
Get a pointer to the pipe this sink is connected to, or nullptr
if not connected.
Definition at line 120 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive stall function.
Reimplemented in MIDI_Pipe.
Definition at line 127 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive un-stall function.
Reimplemented in MIDI_Pipe.
Definition at line 130 of file MIDI_Pipes.hpp.
|
inlineprivatevirtualinherited |
Base case for recursive function.
Reimplemented in MIDI_Pipe.
Definition at line 133 of file MIDI_Pipes.hpp.
|
privateinherited |
Disconnect only the first pipe connected to this sink.
Leaves the other pipes connected to the original pipe, which doesn't have a sink anymore when this function finishes. Used to disconnect a MIDI_Pipe while preserving the connections of its “through” inputs.
Definition at line 33 of file MIDI_Pipes.cpp.
Definition at line 56 of file MIDI_Pipes.cpp.
|
private |
Definition at line 111 of file DebugMIDI_Interface.hpp.
|
staticprotectedinherited |
Definition at line 156 of file Updatable.hpp.
|
protectedinherited |
Definition at line 324 of file LinkedList.hpp.
|
protectedinherited |
Definition at line 325 of file LinkedList.hpp.
|
protectedinherited |
Definition at line 61 of file DebugMIDI_Interface.hpp.
|
protectedinherited |
Definition at line 63 of file DebugMIDI_Interface.hpp.
|
privateinherited |
Definition at line 31 of file DebugMIDI_Interface.hpp.
|
protectedinherited |
Definition at line 142 of file MIDI_Pipes.hpp.