Bluebie / Arduino-AppleMidi-Library

Use standard Ethernet network to send MIDI messages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 (Uno, Mega)
  • ESP8266 (Adafruit HUZZAH ESP8266, Sparkfun ESP8266 Thing Dev)
  • Teensy 3.2

Network Shields

  • Arduino Ethernet shield (arduino.cc, Wiznet W5100)
  • Arduino Wifi R3 shield (arduino.cc)
  • Teensy WIZ820io W5200

Arduino IDE (arduino.cc)

  • 1.6.9

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.

About

Use standard Ethernet network to send MIDI messages

License:Other


Languages

Language:C++ 94.4%Language:Shell 4.2%Language:C 1.4%