All Projects → FortySevenEffects → Arduino_midi_library

FortySevenEffects / Arduino_midi_library

Licence: mit
MIDI for Arduino

Projects that are alternatives of or similar to Arduino midi library

Midi shield
Midi shield product 9595, available from SparkFun Electronics
Stars: ✭ 34 (-96.49%)
Mutual labels:  arduino, midi
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (-81.73%)
Mutual labels:  arduino, midi
Esp8266audio
Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32
Stars: ✭ 972 (+0.31%)
Mutual labels:  arduino, midi
Midi controller
This is a library for creating a MIDI controller using an Arduino or Teensy board.
Stars: ✭ 287 (-70.38%)
Mutual labels:  arduino, midi
Hellodrum Arduino Library
This is a library for making E-Drum with arduino.
Stars: ✭ 95 (-90.2%)
Mutual labels:  arduino, midi
Control Surface
Arduino library for creating MIDI controllers and other MIDI devices.
Stars: ✭ 377 (-61.09%)
Mutual labels:  arduino, midi
Catchme
CatchME - WiFi Fun Box "Having Fun with ESP8266"
Stars: ✭ 28 (-97.11%)
Mutual labels:  arduino
Malduino Password Grabber
Arduino sketch to program a Malduino bad USB (lite) to download a password grabber and send the results via email
Stars: ✭ 31 (-96.8%)
Mutual labels:  arduino
Intellij Music
Play fancy music based on your keyboard activity in IDE
Stars: ✭ 28 (-97.11%)
Mutual labels:  midi
Sbustopwm
Arduino as SBUS to PWM decoder
Stars: ✭ 27 (-97.21%)
Mutual labels:  arduino
Midiflip
🎹 MIDI music mayhem - flip, transpose, and arbitrarily remap pitches in MIDI files
Stars: ✭ 33 (-96.59%)
Mutual labels:  midi
Neofighter
A MIDI controller using arcade buttons with RGB lighting effects
Stars: ✭ 32 (-96.7%)
Mutual labels:  arduino
Code
Arduino library for Programmable-Air
Stars: ✭ 31 (-96.8%)
Mutual labels:  arduino
Teensyz80
Code and related parts of the TeensyZ80 project.
Stars: ✭ 28 (-97.11%)
Mutual labels:  arduino
Hoverboardcontroller
A sample Arduino sketch to drive one motor using the self balancing scooter motor controller - for 3.3V Arduino ONLY!
Stars: ✭ 31 (-96.8%)
Mutual labels:  arduino
Happy bubble esp32 node
An ESP_32 based node for an Happy Bubbles presence server.
Stars: ✭ 28 (-97.11%)
Mutual labels:  arduino
Kotihome
Home automation system based on Arduino with sensors, Raspberry Pi, Node.js and React
Stars: ✭ 32 (-96.7%)
Mutual labels:  arduino
Button
An Arduino compatible library to make working with user input easier
Stars: ✭ 27 (-97.21%)
Mutual labels:  arduino
Calunium
Arduino clone based on the ATmega644P/ATmega1284P
Stars: ✭ 30 (-96.9%)
Mutual labels:  arduino
Badusb botnet
👥😈 Infect a pc with badusb and establish a connection through telegram.
Stars: ✭ 32 (-96.7%)
Mutual labels:  arduino

Arduino MIDI Library

Build Status Coveralls GitHub release License

This library adds MIDI I/O communications to an Arduino board.

Features

  • New : MIDI over USB, Bluetooth, IP & AppleMIDI (see Transports).
  • New : Active Sensing support
  • Compatible with all Arduino boards (and clones with an AVR processor).
  • Simple and fast way to send and receive every kind of MIDI message (including all System messages, SysEx, Clock, etc..).
  • OMNI input reading (read all channels).
  • Software Thru, with message filtering.
  • Callbacks to handle input messages more easily.
  • Last received message is saved until a new one arrives.
  • Configurable: overridable template-based settings.
  • Create more than one MIDI interface for mergers/splitters applications.
  • Use any serial port, hardware or software.

Getting Started

  1. Use the Arduino Library Manager to install the library. Type "MIDI I/Os for Arduino" in the Arduino IDE Library Manager

  2. Start coding:

#include <MIDI.h>

// Create and bind the MIDI interface to the default hardware Serial port
MIDI_CREATE_DEFAULT_INSTANCE();

void setup()
{
    MIDI.begin(MIDI_CHANNEL_OMNI);  // Listen to all incoming messages
}

void loop()
{
    // Send note 42 with velocity 127 on channel 1
    MIDI.sendNoteOn(42, 127, 1);

    // Read incoming messages
    MIDI.read();
}
  1. Read the documentation or watch the awesome video tutorials from Notes & Volts.

Documentation

USB Migration (4.x to 5.x)

All USB related code has been moved into a separate repository Arduino-USB-MIDI, USB MIDI Device support with MIDIUSB, still using this library to do all the MIDI heavy-lifting.

Migration has been made as easy as possible: only the declaration of the MIDI object has been modified, the rest of your code remains identical.

4.3.1 code:

#include <MIDI.h>
#include <midi_UsbTransport.h>

static const unsigned sUsbTransportBufferSize = 16;
typedef midi::UsbTransport<sUsbTransportBufferSize> UsbTransport;

UsbTransport sUsbTransport;

MIDI_CREATE_INSTANCE(UsbTransport, sUsbTransport, MIDI);

// ...

now becomes in 5.x:

#include <USB-MIDI.h>
USBMIDI_CREATE_DEFAULT_INSTANCE();

// ...

Start with the NoteOnOffEverySec example that is based on the original MidiUSB sketch. Note the only difference is in the declaration.

The USB-MIDI Arduino library depends on this library and the MIDIUSB library.

USB-MIDI uses the latest Arduino IDE depends feature in the library.properties file installing all the dependencies automatically when installing from the IDE.

Other Transport mechanisms

Version 5 of this library, allows for other Transport layers than the original MIDI 1.0 Electrical Specification (hardware serial).

All these Transport layers use this library for all the underlying MIDI work, making it easy to switch transport protocols or making transport protocol bridges.

Differences between Serial & other transports

  • Software Thru is enabled by default on Serial, but not on other transports.

Contact & Contribution

To report a bug, contribute, discuss on usage, or request support, please discuss it here.

You can also contact me on Twitter: @fortysevenfx.

Contributors

Special thanks to all who have contributed to this open-source project !

You want to help ? Check out the contribution guidelines.

License

MIT © 2009 - present Francois Best

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].