Added example for multiple instanciation.
This commit is contained in:
parent
a63afb0868
commit
d2c54c2d18
|
|
@ -0,0 +1,45 @@
|
||||||
|
#include <SoftwareSerial.h>
|
||||||
|
#include <MIDI.h>
|
||||||
|
|
||||||
|
// This example shows how to create two instances of the library to create a merger.
|
||||||
|
// There are two MIDI couples of IO, A and B, each using thru and merging with the
|
||||||
|
// input from the other node. The result is the following:
|
||||||
|
// A out = A in + B in
|
||||||
|
// B out = B in + A in
|
||||||
|
|
||||||
|
SoftwareSerial softSerial(2,3);
|
||||||
|
|
||||||
|
MIDI_CREATE_INSTANCE(HardwareSerial, Serial, midiA);
|
||||||
|
MIDI_CREATE_INSTANCE(SoftwareSerial, softSerial, midiB);
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
// Initiate MIDI communications, listen to all channels
|
||||||
|
midiA.begin(MIDI_CHANNEL_OMNI);
|
||||||
|
midiB.begin(MIDI_CHANNEL_OMNI);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (midiA.read())
|
||||||
|
{
|
||||||
|
// Thru on A has already pushed the input message to out A.
|
||||||
|
// Forward the message to out B as well.
|
||||||
|
midiB.send(midiA.getType(),
|
||||||
|
midiA.getData1(),
|
||||||
|
midiA.getData2(),
|
||||||
|
midiA.getChannel());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (midiB.read())
|
||||||
|
{
|
||||||
|
// Thru on B has already pushed the input message to out B.
|
||||||
|
// Forward the message to out A as well.
|
||||||
|
midiA.send(midiB.getType(),
|
||||||
|
midiB.getData1(),
|
||||||
|
midiB.getData2(),
|
||||||
|
midiB.getChannel());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue