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.
- See also
- Routing MIDI messages (MIDI tutorial)
|
MIDI_Pipe & | operator>> (TrueMIDI_Source &source, MIDI_Pipe &pipe) |
| Connect a source to a pipe (source >> pipe ).
|
|
TrueMIDI_Sink & | operator>> (MIDI_Pipe &pipe, TrueMIDI_Sink &sink) |
| Connect a pipe to a sink (pipe >> sink ).
|
|
MIDI_Pipe & | operator<< (TrueMIDI_Sink &sink, MIDI_Pipe &pipe) |
| Connect a sink to a pipe (sink << pipe ).
|
|
TrueMIDI_Source & | operator<< (MIDI_Pipe &pipe, TrueMIDI_Source &source) |
| Connect a pipe to a source (pipe << source ).
|
|
MIDI_Pipe & | operator<< (MIDI_Pipe &, MIDI_Pipe &)=delete |
| Don't connect two pipes to eachother.
|
|
TrueMIDI_SinkSource & | operator| (BidirectionalMIDI_Pipe &pipe, TrueMIDI_SinkSource &sinksource) |
| Connect a pipe to a sink+source (pipe | source+sink ).
|
|
BidirectionalMIDI_Pipe & | operator| (TrueMIDI_SinkSource &sinksource, BidirectionalMIDI_Pipe &pipe) |
| Connect a sink+source to a pipe (source+sink | pipe ).
|
|
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
◆ BidirectionalMIDI_PipeFactory
◆ operator>>() [1/6]
Connect a source to a pipe (source >> pipe
).
Definition at line 603 of file MIDI_Pipes.hpp.
◆ operator>>() [2/6]
Connect a pipe to a sink (pipe >> sink
).
Definition at line 609 of file MIDI_Pipes.hpp.
◆ operator<<() [1/5]
Connect a sink to a pipe (sink << pipe
).
Definition at line 615 of file MIDI_Pipes.hpp.
◆ operator<<() [2/5]
Connect a pipe to a source (pipe << source
).
Definition at line 621 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 630 of file MIDI_Pipes.hpp.
◆ operator|() [2/4]
Connect a sink+source to a pipe (source+sink | pipe
).
Definition at line 638 of file MIDI_Pipes.hpp.
◆ operator>>() [3/6]
template<size_t N, class Pipe >
◆ operator>>() [4/6]
template<size_t N, class Pipe >
◆ operator>>() [5/6]
template<size_t N, class Pipe >
◆ operator>>() [6/6]
template<size_t N, class Pipe >
◆ operator<<() [4/5]
template<size_t N, class Pipe >
◆ operator<<() [5/5]
template<size_t N, class Pipe >
◆ operator|() [3/4]
◆ operator|() [4/4]