Operators and utilities for MIDI routing.
Two or more MIDI interfaces can be connected using MIDI Pipes. The simplest pipe just carries messages from the input interface to the output interface, but you can write rules for filtering out certain messages, changing the channel of some messages, etc.
Allows you to use syntax like:
midiA = Serial1, midiB = Serial2, midiC = Serial3;
midiA >> pipes >> midiB;
midiC >> pipes >> midiB;
midiC << pipes << midiB;
A class for MIDI interfaces sending and receiving MIDI messages over a Hardware Serial port.
Class that produces multiple MIDI_Pipes.
Or for bidirectional connections:
midiA = Serial1, midiB = Serial2, midiC = Serial3;
midiA | pipes | midiB;
midiA | pipes | midiC;
Have a look at the following examples on MIDI routing:
If you're interested how the pipes work, see the documentation for MIDI_Pipe.
|
MIDI_Pipe & | operator>> (TrueMIDI_Source &source, MIDI_Pipe &pipe) |
| Connect a source to a pipe (source >> pipe ). More...
|
|
TrueMIDI_Sink & | operator>> (MIDI_Pipe &pipe, TrueMIDI_Sink &sink) |
| Connect a pipe to a sink (pipe >> sink ). More...
|
|
MIDI_Pipe & | operator<< (TrueMIDI_Sink &sink, MIDI_Pipe &pipe) |
| Connect a sink to a pipe (sink << pipe ). More...
|
|
TrueMIDI_Source & | operator<< (MIDI_Pipe &pipe, TrueMIDI_Source &source) |
| Connect a pipe to a source (pipe << source ). More...
|
|
MIDI_Pipe & | operator<< (MIDI_Pipe &, MIDI_Pipe &)=delete |
| Don't connect two pipes to eachother. More...
|
|
TrueMIDI_SinkSource & | operator| (BidirectionalMIDI_Pipe &pipe, TrueMIDI_SinkSource &sinksource) |
| Connect a pipe to a sink+source (pipe | source+sink ). More...
|
|
BidirectionalMIDI_Pipe & | operator| (TrueMIDI_SinkSource &sinksource, BidirectionalMIDI_Pipe &pipe) |
| Connect a sink+source to a pipe (source+sink | pipe ). More...
|
|
template<size_t N, class Pipe > |
MIDI_Pipe & | operator>> (TrueMIDI_Source &source, MIDI_PipeFactory< N, Pipe > &pipe_fact) |
|
template<size_t N, class Pipe > |
MIDI_Pipe & | operator>> (MIDI_Pipe &, MIDI_PipeFactory< N, Pipe > &)=delete |
|
template<size_t N, class Pipe > |
TrueMIDI_Sink & | operator>> (MIDI_PipeFactory< N, Pipe > &pipe_fact, TrueMIDI_Sink &sink) |
|
template<size_t N, class Pipe > |
MIDI_Pipe & | operator>> (MIDI_PipeFactory< N, Pipe > &, MIDI_Pipe &)=delete |
|
template<size_t N, class Pipe > |
MIDI_Pipe & | operator<< (TrueMIDI_Sink &sink, MIDI_PipeFactory< N, Pipe > &pipe_fact) |
|
template<size_t N, class Pipe > |
TrueMIDI_Source & | operator<< (MIDI_PipeFactory< N, Pipe > &pipe_fact, TrueMIDI_Source &source) |
|
template<size_t N> |
TrueMIDI_SinkSource & | operator| (BidirectionalMIDI_PipeFactory< N > &pipe_fact, TrueMIDI_SinkSource &sinksource) |
|
template<size_t N> |
BidirectionalMIDI_Pipe & | operator| (TrueMIDI_SinkSource &sinksource, BidirectionalMIDI_PipeFactory< N > &pipe_fact) |
|
◆ TrueMIDI_Sink
◆ TrueMIDI_Source
◆ BidirectionalMIDI_Pipe
A bidirectional pipe consists of two unidirectional pipes.
Definition at line 589 of file MIDI_Pipes.hpp.
◆ BidirectionalMIDI_PipeFactory
◆ operator>>() [1/6]
Connect a source to a pipe (source >> pipe
).
Definition at line 592 of file MIDI_Pipes.hpp.
◆ operator>>() [2/6]
Connect a pipe to a sink (pipe >> sink
).
Definition at line 598 of file MIDI_Pipes.hpp.
◆ operator<<() [1/5]
Connect a sink to a pipe (sink << pipe
).
Definition at line 604 of file MIDI_Pipes.hpp.
◆ operator<<() [2/5]
Connect a pipe to a source (pipe << source
).
Definition at line 610 of file MIDI_Pipes.hpp.
◆ operator<<() [3/5]
Don't connect two pipes to eachother.
◆ operator|() [1/4]
Connect a pipe to a sink+source (pipe | source+sink
).
Definition at line 619 of file MIDI_Pipes.hpp.
◆ operator|() [2/4]
Connect a sink+source to a pipe (source+sink | pipe
).
Definition at line 627 of file MIDI_Pipes.hpp.
◆ operator>>() [3/6]
◆ operator>>() [4/6]
◆ operator>>() [5/6]
◆ operator>>() [6/6]
◆ operator<<() [4/5]
◆ operator<<() [5/5]
◆ operator|() [3/4]
◆ operator|() [4/4]