-
Notifications
You must be signed in to change notification settings - Fork 66
Home
lathoub edited this page Feb 13, 2021
·
31 revisions
Read the important migration page first, when you are migrating from v1.* to v2.* or from v2.* to v3.*
From the creators: https://john-lazzaro.github.io/rtpmidi/
Wiki and Introduction to RTP-MIDI aka AppleMIDI
All examples in the examples folder
#include <Ethernet.h>
#include <AppleMIDI.h>
APPLEMIDI_CREATE_DEFAULTSESSION_INSTANCE();
...
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
...
void setup()
{
Ethernet.begin(mac);
MIDI.begin(); // just like the serial MIDI interface
That is it, the rest is like you would make a MIDI application using the FortySevenEffects MIDI library.
APPLEMIDI_CREATE_DEFAULTSESSION_INSTANCE();
resolves to
APPLEMIDI_CREATE_INSTANCE(EthernetUDP, MIDI, "AppleMIDI-Arduino", DEFAULT_CONTROL_PORT);
| | | |
| | | +-> Default UDP port is 5004
| | +---------------> AppleMIDI session name
| +-----------------------------> Variable name used in the sketch
| also create an instance AppleMIDI
+---------------------------------------> UDP class from the Ethernet lib.
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiUdp.h>
#include <AppleMIDI.h>
APPLEMIDI_CREATE_DEFAULTSESSION_INSTANCE();
...
void setup()
{
WiFi.begin("yourSSID", "secretpasswd");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
DBG("Establishing connection to WiFi..");
}
Add callbacks for AppleMIDI connection and disconnection
AppleMIDI.setHandleConnected([](const APPLEMIDI_NAMESPACE::ssrc_t & ssrc, const char* name) {
DBG(F("Connected to session"), ssrc, name);
});
AppleMIDI.setHandleDisconnected([](const APPLEMIDI_NAMESPACE::ssrc_t & ssrc) {
DBG(F("Disconnected"), ssrc);
});