ParticleAppleMIDI (community library)

Summary

Name Value
Name ParticleAppleMIDI
Version 1.0.0
Installs 311
Author Joel Quatrocchi
Maintainer Joel Quatrocchi joel.quatro@gmail.com
URL https://github.com/lathoub/Arduino-AppleMidi-Library
Download .tar.gz

Library code for AppleMIDI protocol RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free (no license is needed), and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets (with automatic regeneration of lost data). RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message. (from https://en.wikipedia.org/wiki/RTP-MIDI)

Example Build Testing

Device OS Version:

This table is generated from an automated build. Success only indicates that the code compiled successfully.

Library Read Me

This content is provided by the library maintainer and has not been validated or approved.

AppleMidi for Arduino Build Status License: CC BY-SA 4.0 GitHub version

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.3

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.

Browse Library Files