AppleMidi for Arduino
AppleMidi for Arduino
AppleMidi for Arduino
The goal of this library is to enable an Arduino (with an Ethernet shield) or ESP8266 to particpate in an AppleMIDI session.
Features
- Tested with AppleMIDI on Mac OS and using rtpMIDI from Tobias Erichsen on Windows
- Send and receive MIDI commands
- Uses callbacks to receive MIDI commands (no need for polling)
- Automatic instantiation of AppleMIDI object (see at the end of 'AppleMidi.h')
Basic Usage
#include "AppleMidi.h"
APPLEMIDI_CREATE_DEFAULT_INSTANCE();
void setup()
{
// ...setup ethernet connection
AppleMIDI.begin("test"); // 'test' will show up as the session name
}
void loop()
{
AppleMIDI.run();
// ...
// Send MIDI note 40 on, velocity 55 on channel 1
AppleMIDI.noteOn(40, 55, 1);
}
More usages in the examples folder
Hardware
- Arduino/Genuino (Mega) (Uno and Arduino Ethernet don't have enough memory)
- ESP8266 (Adafruit HUZZAH ESP8266, Sparkfun ESP8266 Thing Dev)
- Teensy 3.2
- Adafruit Feather M0 WiFi - ATSAMD21 + ATWINC1500
Network Shields
- Arduino Ethernet shield (arduino.cc, Wiznet W5100)
- Arduino Wifi R3 shield (arduino.cc)
- Teensy WIZ820io W5200
Arduino IDE (arduino.cc)
- 1.8.0
Contributing
I would love to include your enhancements or bug fixes! In lieu of a formal styleguide, please take care to maintain the existing coding style. Please test your code before sending a pull request. It would be very helpful if you include a detailed explanation of your changes in the pull request.
