How to Use Virtual MIDI to Record Music on Your iPad or iPhone

By Ryan C. Williams, Mike Levine

OK, so technically everything you do on your iPhone or iPad is “virtual” —because you aren’t using any physical hardware beyond the iOS device, the software does everything in the virtual realm. And MIDI isn’t really “real,” because it’s just the messages that devices exchange to control which events take place and when they occur.

But Virtual MIDI uses CoreMIDI that basically allows synthesizers, drum machines, and sequencers to communicate with each other without needing another app to do all of the work. All you need are the apps that work together.

How apps use Virtual MIDI depends on the imagination and resourcefulness of the developers who make the app. It all depends on what features they implement.

Linking apps

Let’s pair up a drum machine and a synth to handle the bass line for some backing tracks. Both Funkbox and Thor offers some solid Virtual MIDI integration, so this example shows you how to take those apps and make Virtual MIDI magic happen.

First, open up the Thor app and select a good bass preset. Tap the keyboard and see if you like the sound — tweak the controls until you’ve got something you’re good with.

Now, open the Funkbox app and tap the Settings button. If the MIDI switch isn’t already in the On position, make sure you switch it over.

image0.png

For now, leave all of the settings as they are, unless the Bass MIDI Sequence button is off. Make sure you tap that button and the red light next to that button comes on.

Next, tap the MIDI Routing tab.

image1.png

Notice how Thor shows up under the CoreMIDI Outputs section. In this case, Virtual MIDI uses CoreMIDI to transmit the MIDI messages.

Navigate back to the Thor app and tap the gear icon. Select the Source button under the MIDI heading and choose Funkbox from the listed options.

image2.png

All of the steps basically put Thor at the command of Funkbox, with the synth accepting note (the pitch of the note) and gate (when the note actually plays) commands from the drum machine.

Go back to the Funkbox app and tap Start/Stop to hear the results. You should hear a funky drum loop backed by a bass line coming from the Thor app. The programmed beat from Funkbox determines the notes played by Thor, and Funkbox doesn’t really provide a full-featured interface for actual notes. Instead, Thor receives the notes that match up with the notes used to trigger the Funkbox notes. It doesn’t sound bad, but it doesn’t give you the control you might want.

Adding a sequencer

A MIDI sequencer acts as the master control for all apps that accept incoming MIDI signals. Basically, the sequencer manages the song and passes along commands to all the apps listening for those commands.

The advantage of using a MIDI sequencer involves sending standard commands to all the apps and triggering them from a single source, rather than trying to decide which app controls the others and how. Every parameter about the song originates from the sequencer, and you can make any adjustment necessary from that location.

For this example, you’ll see a fairly full-featured MIDI sequencer called Genome. You can find other MIDI sequencers in the App Store, tailored both to live performance and to programmed sequences. Genome falls into the latter category, and it’s used here for a couple of reasons:

  • The aforementioned fairly full functionality of MIDI controls, including the ability to lay out loops and patterns

  • A good linear, visual representation of the MIDI sequence

  • A track-based representation of the 16 available MIDI channels

MIDI transmits information on 16 channels — no more, no less. The MIDI specification allows for 16 channels as a standard, so you can count on that no matter which MIDI sequencer or app you use. So with our Thor and Funkbox apps already open, open Genome.

image3.png

First, let’s set up a pattern for Funkbox on MIDI channel 10. Why channel 10? The MIDI standard for drums and associated percussion uses channel 10. You could use other channels, but more than likely, any drum app or external drum machine you use will accept MIDI commands on channel 10.

On track 10 in Genome, tap the plus sign to add a pattern for that channel. Then tap the pencil icon for channel 10.

image4.png

You can tap on each square to play a drum or percussion hit. In this case, C3 triggers the bass drum, D3 triggers the snare drum, and F#3 triggers a closed hi-hat sound. Tap a quick pattern out for a standard rock beat or just input whatever you want.

image5.png

The pattern entered commands any app listening for instructions on MIDI channel 10 to play those notes at the specified time. Tap Back to go to the main Genome sequence screen, then tap the pattern to activate it. Now, let’s move on to a bass line.

Move over to the Thor app and tap the gear icon. In this case, tap Source and set it to Genome. Then tap the plus icon under Source until it says channel 1. If you haven’t tired your fingers out yet, go back to Genome and tap the plus sign for channel 1. Here’s a simple bass line to go along with the extremely simple drum pattern.

image6.png

Go back to the main sequence screen in Genome and tap the pattern in channel 1 to activate that pattern. Then hit the play button in the upper-left corner to hear the final product.

You may hear the pattern coming from Funkbox in addition to the drum hits you programmed in Genome. Turn down the master fader (labeled MST) to take the programmed pattern out of the sound produced by Funkbox.

Okay, so the example is pretty basic. The magic from here involves the additional patterns you can program. Just keep tapping the plus sign and adding new patterns.