BLE MIDI for All!!!


**UPDATED**


I've been waiting for the adoption of BLE MIDI in products for a while.
I first saw it when I received my Miselu Kickstarter keyboard. I was surprised at how
low the latency was and how reactive the interface was.

This year at NAMM, I saw that companies are starting to jump on the BLE MIDI
bandwagon. Korg has their wireless controllers, Yamaha has their self-powered dongles, ect.
I've been interested in using BLE MIDI myself for battery powered projects; I have too many ideas for 'wearable' MIDI controllers and cutting the wires would be great. 

I recently picked up a new Arduino 101 board:


It's the same size and same pinouts as the standard Arduinos, except this one uses Intel's latest and greatest SoC geared towards wearables, the Curie. 
I based my characteristic ID and service ID on Apple's BLE MIDI document (https://developer.apple.com/bluetooth/Apple-Bluetooth-Low-Energy-MIDI-Specification.pdf) since MIDI.org has yet to release an official spec. 

With that said, I have only tested this out with my iPhone (6s), iPad (air 2), and Macbook Pro, and it works perfectly. 


As shown above, you can go to your settings in an app like Apple's Garageband, choose Bluetooth MIDI Devices, and then connect to your device. In the example my device is called Tabor. After connecting, you are off to the races with whatever MIDI data you want to send and receive.

In a similar fashion, on OS X, you go to your Audio MIDI settings app and choose MIDI Studio. If you click on Bluetooth, you will see a window pop up looking for your advertising BLE MIDI compliant devices and give you a chance to connect to them.


When using OS X, once connected, your device shows up just like any other MIDI device on OS X, so your use is very flexible.


Here is the Github for the code: https://github.com/auxren/MIDIBLE101
Initially, I put up code for a bare minimum MIDI Sending device. I will be adding code for MIDI receiving and both together, along with some simple instruments you can implement with the Arduino 101.

As with everything, if you have any questions, feel free to reach out on twitter @auxren or email: oren@auxren.com

Update: added Airpeggiator instrument example.
Update: Fixed code to work with Arduino 1.6.9. Added licensing and more comments to Airpreggiator.

No comments:

Post a Comment