All Projects → lathoub → Arduino-USBMIDI

lathoub / Arduino-USBMIDI

Licence: MIT license
Allows a microcontroller, with native USB capabilities, to appear as a MIDI device over USB to a connected computer

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to Arduino-USBMIDI

MiDispositivoMIDI V3
Open source Arduino MIDI controller.
Stars: ✭ 49 (-50%)
Mutual labels:  midi, midi-device, midi-controller, usb-midi
smartbcr2k
Sits between your midi controller and your DAW to make your controller smarter
Stars: ✭ 21 (-78.57%)
Mutual labels:  midi, midi-device, midi-controller
BMC
BMC the Badass MIDI Controller, all-in-one Scalable MIDI Controller library with a companion Desktop/Browser Editor App for Teensy LC, 3.2, 3.5, 3.6, 4.0, 4.1
Stars: ✭ 34 (-65.31%)
Mutual labels:  midi, midi-device, midi-controller
Arduino-BLE-MIDI
MIDI over Bluetooth Low Energy (BLE-MIDI) 1.0 for Arduino
Stars: ✭ 133 (+35.71%)
Mutual labels:  midi, arduino-library, arduino-midi-library
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (+80.61%)
Mutual labels:  teensy, midi, arduino-library
Control Surface
Arduino library for creating MIDI controllers and other MIDI devices.
Stars: ✭ 377 (+284.69%)
Mutual labels:  teensy, midi, arduino-library
zmidimap
Program for mapping midi signals to shell commands
Stars: ✭ 13 (-86.73%)
Mutual labels:  midi, midi-device, midi-controller
midi-eye
Ruby MIDI input event listener
Stars: ✭ 24 (-75.51%)
Mutual labels:  midi, midi-device, midi-controller
BS2-Web
Novation Bass Station II Web interface
Stars: ✭ 34 (-65.31%)
Mutual labels:  midi, midi-device, midi-controller
TouchOSC
A collection of examples and modules for TouchOSC MK2
Stars: ✭ 30 (-69.39%)
Mutual labels:  midi, midi-controller
Wad
Web Audio DAW. Use the Web Audio API for dynamic sound synthesis. It's like jQuery for your ears.
Stars: ✭ 1,540 (+1471.43%)
Mutual labels:  midi, midi-device
MicroDexed
Dexed port for Teensy (3.5/3.6 with audio shield)
Stars: ✭ 20 (-79.59%)
Mutual labels:  teensy, midi
Midi controller
This is a library for creating a MIDI controller using an Arduino or Teensy board.
Stars: ✭ 287 (+192.86%)
Mutual labels:  teensy, midi
uClock
A tight BPM clock generator for Arduino and Teensy
Stars: ✭ 58 (-40.82%)
Mutual labels:  teensy, midi
Guislice
GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL
Stars: ✭ 534 (+444.9%)
Mutual labels:  teensy, arduino-library
synth
A Teensy 4 modular FM polyphonic synth.
Stars: ✭ 39 (-60.2%)
Mutual labels:  teensy, midi
Dmxusb
DMXUSB emulates an ENTTEC-compatible DMXKing USB to DMX serial device with one, two, or n universes.
Stars: ✭ 66 (-32.65%)
Mutual labels:  teensy, arduino-library
Teensystep
Fast Stepper Motor Library for Teensy boards
Stars: ✭ 191 (+94.9%)
Mutual labels:  teensy, arduino-library
osmid
osmid is a tool to bridge MIDI and OSC. It is currently in use in Sonic Pi
Stars: ✭ 63 (-35.71%)
Mutual labels:  midi, midi-device
ableton-midi-sculptor
Ableton MIDI Sculptor: Tools for MIDI editing in Ableton Live
Stars: ✭ 56 (-42.86%)
Mutual labels:  midi, midi-device

Arduino USB-MIDI Transport

arduino-library-badge

This library implements the USB-MIDI transport layer for the FortySevenEffects Arduino MIDI Library and uses the underlying Arduino MIDIUSB library (so only devices working with MIDIUSB, will work here).

Alternative library: see also Adafruit's TinyUSB Library for Arduino for ESP32, mbed_rp2040, ArduinoCore-samd and Pico

Installation

Screenshot 2020-04-25 at 09 42 19

This library depends on the Arduino MIDI Library and Arduino's MIDIUSB.

When installing this library from the Arduino IDE, both will be downloaded and installed in the same directory as this library. (Thanks to the depends clause in library.properties)

When manually installing this library, you have to manually download Arduino MIDI Library and MIDIUSB from github and install it in the same directory as this library - without these additional installs, this library will not be able to compile.

Usage

Basic / Default

#include <USB-MIDI.h>
...
USBMIDI_CREATE_DEFAULT_INSTANCE();
...
void setup()
{
   MIDI.begin(1);
...
void loop()
{
   MIDI.read();

will create a instance named MIDI (transport instance named __usbMIDI) and is by default connected to cable number 0 - and listens to incoming MIDI on channel 1.

Modified

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

will create a instance named MIDI (transport instance named __usbMIDI) and is connected to cable number 4.

Advanced

#include <USB-MIDI.h>
...
USBMIDI_NAMESPACE::usbMidiTransport usbMIDI2(5);
MIDI_NAMESPACE::MidiInterface<USBMIDI_NAMESPACE::usbMidiTransport> MIDI2((USBMIDI_NAMESPACE::usbMidiTransport&)usbMIDI2);

will create a instance named usbMIDI2 (and underlaying MIDI object MIDI2) and is by default connected to cable number 5.

Tested boards / modules

  • Arduino Leonardo
  • Teensy 4.1 (incl MIDI, MIDIx4 and MIDIx16)

Boards / modules in development (help needed)

  • Arduino NANO 33 BLE
  • nRF52832 Bluefruit Feather

Memory usage

The library does not add additional buffers and is extremely efficient and has a small memory footprint.

Other Transport protocols:

The libraries below the same calling mechanism (API), making it easy to interchange the transport layer.

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