MIDI recording using an Android device

midicontrolkeyboard

Raspberry Pi 3

I used a Raspberry Pi 3 on top of one of my musical instruments to send program changes, record and playback MIDI as well as recording audio. A cardboard box did host the computer, its touch screen, the power supply, and a lot of cables went out of it (power chord, two MIDI chords, two audio chords, and sometimes a mouse and kayboard connected via USB).

Recording MIDI via Bluetooth LE on Android 6

I wanted to get rid of most of the hardware required by using an Android 6 device with its Bluetooth LE MIDI capabilities. I was looking for a basic MIDI recording application. Rather surprisingly, there was none that did fulfill my essential needs (simply record any MIDI message incoming via Bluetooth).

Recording MIDI via USB using Audio Evolution Mobile Studio

So I looked for apps that at least can record MIDI via USB. It turned out not to be an easy task. I finally selected Audio Evolution Mobile Studio. Of all the apps I inspected, it was the one that is closest to a traditional digital audio workstation.

It doesn’t use the native Android 6 MIDI subsystem. As a consequence, it can’t cope with MIDI over Bluetooth. So I’m still stuck with an USB OTG cable, a power supply for it, and a MIDI to USB cable. Additionally, USB MIDI support is not included when purchasing the app. A further “In-App” purchase is required to unlock this feature. Unfortunately it didn’t accept my preferred USB to MIDI device, the excellent Edirol UM-1S. It did accept the cheap device I bought I couple of months ago, though. This leads to a couple of issues. Firstly, the instrument in question sends a couple of program changes before recording. They appearently all arrive at the handset (since they appear in the MIDI file exported from Audio Evolution Mobile Studio). However some of them get lost each time I playback the MIDI file. Furthermore, the instrument sends a MIDI system exclusive command to reset all program changes before the actual program changes. This command does either not arrive at Audio Evolution Mobile Studio, or it denies recording them.

Audio Evolution Mobile Studio supports the traditional three track types: Audio, virtual instrument, pure MIDI. When pressing the record button, Audio Evolution Mobile Studio automatically creates a new audio track in case no other track is present or switched to recording mode. This behaviour can be switched off via the preferences.

When it comes to MIDI recording, the app shows some neat features that perfectly fulfill my needs. I created four MIDI tracks to record the Kisselbach Gloria Klassik 240. One for the Main organ (MIDI channel 1), one for the swell (MIDI channel 2), one for the pedal board (MIDI channel 3), and one for the program changes plus the volume controller (MIDI channel 12). Audio Evolution Mobile Studio allows to enable recording for multiple tracks at once, plus it allows to choose for each track which MIDI channel should be recorded by it. I was pretty impressed to detect this feature set, since I assume it is a very exotic request that someone wants to record multiple MIDI channels at once.

I already recorded some piece and exported it to MIDI. Obviously it didn’t write the track names to the MIDI file. But otherwise, everything seemed to work fine.

Verdict

Appearently Audio Evolution Mobile Studio does the one thing I need quite well. However, I did not get rid of the cables since it does not support the native MIDI subsystem as instruduced in Android 6. Further, it seems to ignore SysEx data and ignores track names when exporting MIDI. The latter two mean that I have to circumvent those issues by manually editing the resulting MIDI files. It’s annoying, but not really an issue.

Taking into account the many features the app provides, the price tag seems to be OK. For my needs, it’s a bit too expensive (not to mention the extra fee for the MIDI recording feature). I decided to buy it anyway due to the lack of alternatives.