We recently received a comment asking us to do a tutorial on how to send MIDI between apps on an iOS device. Specifically Sampletank Free and Garageband. Unfortunately Garageband doesn’t have any capabilities of sending and receiving MIDI data between apps. Sampletank can however receive MIDI from other apps.
In the following video I explore some options to send MIDI to Sampletank as well as go over a few MIDI basics. I use the apps Genome MIDI Sequencer and Drumjam to show how this can be done.
MIDI can be a topic of confusion, especially to someone who has never touched any hardware midi device. I know because I was one of them. My first real experience with MIDI was with my iPad. I had an Axiom 25 Midi controller that I used a few times with Ableton Live Lite 8 but never understood what it was actually doing. All I knew was that I could select it as an input and play around with a few sounds.
In a nutshell MIDI is simply signals being sent to control something. If you have a MIDI controller plugged into your iOS device, it is sending messages telling an app to play a C#2 key or to turn a certain knob. Although there are some MIDI standards, it seems iOS apps do not implement all of the standards. One app sends to all apps all the time while another app can only receive MIDI on a certain channel. It can be a little daunting trying to get one app to talk to another app. What does Network 1 even mean? Trial and error is sometimes the only way to figure out what apps work well with others.
Here are some basic terminology and concepts. MIDI operates over 16 different channels. This is helpful when you only want to send certain MIDI messages to certain apps or devices. Omni is another term and it means it will send or receive on all channels. CC or Control Change messages can be sent to control a certain parameter. MIDI standard CC#7 controls volume. There are also messages called Program Change (PC) and SYSEX but they are not widely implemented across iOS apps.
I just want to write out the main points that I cover in the video about connecting iOS Apps. The main thing would be to make sure you are sending and receiving on the same MIDI channel. If App 1 is set to send to channel 1 then App 2 needs to be set to receive on channel 2. Some apps, like Drumjam, have the option to select which app they send and receive too. One last thing would be to always make sure background audio so that when you are controlling one app with another app and it is in the background, you will still hear the sounds. This can save a lot of frustration. I know from experience.