Frequently Asked Questions about MIDI

What is MIDI and what can I do with it?

MIDI is a protocol that enables musical instruments, controllers and computers to communicate with each other.

The MIDI specification defines several message types, for example so called Channel Voice Messages like Note On/Note Off and control events for parameters, or messages of the System Real Time category, like Start, Stop and Clock signals to set the tempo.

An example use case of MIDI is the synchronization of two apps running on the same device, as described here.

What MIDI hardware is supported by iOS?

Beside devices built for the dock connector, iOS also supports some USB MIDI hardware.

As acknowledged by Apple here, you may use USB MIDI hardware with your iPad using the Lightning to USB Camera Adapter or the iPad Camera Connection Kit

Update: It seems that iOS 7 allows USB connections on iPhones, through the USB camera adapter just like on the iPad.

iOS recognizes class-compliant USB-MIDI hardware, so if a device works on a Mac without requiring you to install a proprietary driver, then most likely it is compatible. Note that certain devices work only when used in conjunction with a powered USB hub.

What’s to consider when connecting to MIDI ports advertised by other apps?

When connecting to virtual MIDI ports provided by apps running in the background, keep in mind that the own ports can be seen by the other apps.

Important: It is your responsibility to avoid duplicate connections or feedback loops.

An app’s virtual ports can be hidden from others by enabling the Hide Own Ports option in the MIDI Setup dialog. In order to break existing connections it is recommended to force all participating apps to close.

How do I share MIDI on a wireless network?

Both iOS and Mac OS X support MIDI routing over network through the built-in MIDI Network Driver (Windows users can use Tobias Erichsen’s rtpMIDI – Network MIDI driver for Windows).

For MIDI streaming over WLAN you first have to make sure that all participants are connected to the same network.

Important: The MIDI protocol needs accurate timing, therefore a responsive network connection is needed. We recommend to use a Computer-to-computer (Ad-Hoc) Wi-Fi Connection, because a router in between may introduce additional latency.

To set up a MIDI network session on your Mac OS X computer, proceed as follows:

  1. Open Audio MIDI Setup in Applications/Utilities.
  2. Choose Window > Show MIDI Window.
  3. Double-click the Network icon in the MIDI Studio window.
  4. Click the ‘+’ button under My Sessions and enable “Session 1”.
  5. From the “Who may connect to me” pop-up menu choose “Anyone”.

On your iPhone, iPad, or iPod touch:

In the MIDI Setup dialog that’s available in any music app by Finger Pro, you can manage iOS’s MIDI Network Driver.

  1. Enable your device’s system-wide Default Session.
  2. To join a session connect to a remote computer by selecting it from the list.

Note: In order to forward MIDI data to and from the network driver, you also need to establish appropriate connections to the corresponding virtual ports, typically named “Network Session 1”.