-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the Motivation-Radio-BLEMIDI wiki!
Limitations of Bluetooth MIDI:
Bluetooth LE has limited bandwidth - approximately 1/3 of what can be achieved on a serial MIDI cable. If you are dropping notes its probably because you have exceeded the bandwidth of Bluetooth LE. Also be aware that Bluetooth LE works by polling devices so it will introduce additional latency and jitter - typically +-20ms. Bluetooth MIDI works well for MIDI control but not so well for sequencer type apps that can send a lot of MIDI information in a short period. If you require precise timing and lots of MIDI throughput you should use a MIDI cable plugged into the MIDI in jack of Motivation Radio.
Bluetooth Tips:
iOS is terrible at finding Bluetooth Low Energy devices. Once it finally finds the device and connects it remembers and should connect easily from then on (unless you "forget" the device). The best app I have found for this is Adafruit's Bluefruit app - it finds BTLE devices very quickly and reliably. Connect to Motivation Radio once with Bluefruit and you should be good to go. Some apps work with Core MIDI but they don't know how to connect to a Bluetooth MIDI device. They will work if you connect first in an app that does know about Bluetooth MIDI devices. Midimittr works well and its free.
Apple Core MIDI allows multiple iOS apps to use the same BTLE MIDI device - just keep track of which app is using which MIDI channels or you may not get what you expect.
The default Motivation Radio BTLE device name is "MRAD1" but you can easily change it in the sketch. Another gotcha - iOS doesn't seem to like long BTLE device names so keep the name short. If you have more than one Motivation Radio I suggest calling the additional modules "MRAD2" etc. BTW: Motivation Radio modules can be cascaded using the front panel MIDI jacks!
Compiling the Code
I use Arduino 1.85. You must install the ESP32 Arduino add on. You may have to install a CP2102 USB to serial driver depending on which OS you are using. Load the source files and from the tools/boards menu select "ESP32 Dev Module" and select the correct serial port. The only other setting you may have to change is the partition scheme which affects how much flash is available for the code. The ESP32 libraries are huge and you will probably run out of flash space with the default partition scheme which provides 1 MB of flash for code. If you select "No OTA" or "Minimal" you can have up to 2 MB of code. I'm sure its possible to use the entire 4 MB of flash for code but you will have to create a custom partition scheme which is beyond the scope of this document. Compile the code and the IDE should upload, reset the ESP32, and run the code.
Great iOS Apps for Eurorack (IMO):
Adafruit's Bluefruit - mentioned above, very handy for finding and getting BTLE info from devices - Free
MIDI Wrench - great for seeing what MIDI messages are being sent/received - Free
Midimittr - mentioned above. Handy for connecting/disconnecting MIDI devices
Ribn - really great 8 channel ribbon controller app with automation. BLEMIDI works very well as a CC controller with this app. $2.99
AUXY - great little piano roll sequencer/drum machine/song composer. The older free version supports MIDI out. Connect to Motivation Radio with another app first and it will show up in the MIDI output device list.
TouchOSC - Create a custom UI with sliders, switches, pots, X/Y pads etc and send those controls to your rack wirelessly via Motivation Radio. Supports MIDI and/or OSC messages. Really awesome! Approx $5.
Refraktions - touch controller with automation and AI. Designed specifically for controlling live synth performances. Approx $5.
Xequence - great multi track MIDI recorder and sequencer. Approx $10.
Quantum - great 960 style MIDI sequencer - super flexible. Approx $10
Different Drummer - Generative music app. Takes a while to learn. Much more than a drum machine, it can create very interesting music based on cyclic waves. I love it! Approx $5.