MIDI Devices

The Vogel CMI App will accept MIDI input from any Core MIDI compatible device, either directly connected or connected via WiFi or Bluetooth LE. It will also accept MIDI events from many apps via Virtual MIDI. MIDI events can trigger voices in many pages and can insert notes in Page R.

MIDI events can also be accepted via WiFi from your Mac or PC. You can use the Audio MIDI Setup utility on your Mac to route MIDI events from a keyboard or a sequencer to your iOS device. Note, however, that latency in a busy WiFi network can make it unusable for real-time performance or recording. The best thing to do is to have a private WiFi network just for your Mac and iOS device(s).

The Vogel CMI App does NOT directly accept MIDI input via the Line 6 Midi Mobilizer and the Akai SynthStation 25. However, you can use an app such as MidiBridge to accept MIDI from these devices and route it to the CMI app.

MIDI Omni Mode and the Utility Synthesiser

Usually, the CMI app responds to MIDI events as set up in the currently loaded instrument, where each Channel Card has its MIDI channel number defined and it responds only to that channel. However, in some situations, all MIDI events go to a specific target, regardless of channel. This is called "Omni Mode" and is enabled when an individual voice is selected (eg from Page 2 or in Page 3) and when Page R is in recording mode. Although the original CMI II had eight Channel Cards, the CMI App has a ninth Channel Card that is loaded with the currently selected voice.

In release 2.4 and later, new settings allow you to disable Omni Mode for each of selected voice, instrument editing and Page R Record. The music keyboard MIDI status panel (below) on an iPad will display a message if an incoming MIDI event has been grabbed in Omni mode. Release 2.4 also allows you to specify a MIDI channel for the Utility Synth, so if you select a voice then select an instrument, you will get a nine-channel synthesiser. If you turn off Omni mode for Page R Recording, only events with MIDI channel matching the recording Channel Card will result in notes being recorded.

Audiobus MIDI

In release 2.4 and later, you can use the Audiobus MIDI screen to connect and route MIDI events to the CMI app, and do the same with the CMI app's MIDI clock output and MMC output. Audiobus allows you to connect to all events from a MIDI source, or connect to just one MIDI channel on a device. Devices can be real, via Core MIDI, or can be virtual, that is they can be other Audiobus-connected apps. The MIDI status & config panel allows you to select how you deal with Core MIDI and Audiobus MIDI events, which can sometimes be the same events duplicated:

Core MIDI
Core MIDI inputs are used. Audiobus MIDI inputs are ignored.
Auto
Core MIDI inputs are used, but are disabled whenever any Audiobus MIDI input is connected.
Audiobus
Audiobus MIDI inputs are used. Core MIDI inputs are ignored.

The CMI app exposes eleven MIDI inputs that you can connect in the Audiobus MIDI panel. These work as follows:

CMI MIDI inThis behaves exactly like an external MIDI input, with commands and channels being interpreted as usual
CMI Synth (1..8) MIDI inMIDI events sent to this receiver will have their channel ignored. All events go directly to the Channel Card synthesiser of that number.
CMI Utility Synth MIDI inMIDI events sent to this receiver will have their channel ignored. All events go directly to Channel Card number 9 (see below).
Page R MMCMost MIDI events are ignored. MMC (machine control) events will start and stop a song if a song has been selected.

The Audiobus MIDI router is very powerful. It allows you to connect any MIDI stream to any app, and also allows third-party "MIDI filters" that can do things like keyboard splits, channel routing, velocity curves and so on. You can get more details and a demo video on the Audiobus MIDI help page.

MIDI status & config panel

The on-screen music keyboard has a MIDI status panel at the left of the bezel. Whenever a note on, pitch wheel or Continuous Controller event is received, its details will be displayed here. In release 2.3 and later, tapping the status panel will display a MIDI configuration panel, which allows you to enable or disable MIDI input for physical, network or virtual MIDI inputs. It also allows you to list and connect or disconnect MIDI BLE (Bluetooth Low Energy) devices. In release 2.4+ on an iPad, this panel also shows if an event has been grabbed for Omni mode.

Continuous Controller inputs

In release 2.3+, the following controller inputs are used by the synthesisers:

MIDI MMC messages

The CMI App responds to MIDI MMC messages if a song has been loaded in Page R:

MIDI note input

With a compatible MIDI device connected, live MIDI note-on and note-off events, plus pitch-wheel messages and the control events listed above, will be applied to the currently displayed voice (omni mode) or the currently selected voice (Page R in recording mode). In all other cases MIDI events will be sent to the currently loaded instrument, and will trigger voices with the matching MIDI channel.

Channel Card Polyphony

In release 1.5.2 and later, you can set the channel card polyphony in the Settings page. The default polyphony is 64. So MIDI note events sent to a channel card may play polyphonically if polyphony is set greater than 1. Set it to 1 if you want it to behave like the original CMI.

With a compatible MIDI device connected, live MIDI note-on and note-off events, plus pitch-wheel messages and the control events listed above, will be applied to the currently displayed voice (omni mode) or the currently selected voice (Page R in recording mode). In all other cases MIDI events will be sent to the currently loaded instrument, and will trigger voices with the matching MIDI channel.

The one difference with the MIDI keyboard is that when recording notes in Page R, the note's MIDI 0..127 velocity will be mapped to the closest CMI 1..8 velocity.

Channel Card Shared MIDI By Turns

Note that if you have specified the same MIDI channel number for more than one instrument voice, by default those instrument voices will ALL play at the same time in response to note on/off events. However, in release 1.5.2 and later there is a setting for "Channel Card Shared MIDI By Turns." When this is turned on, it behaves much like release 1.1.x, where incoming MIDI note events are routed to only one channel card instead of all of them. Each event is sent to a random available channel card with a matching MIDI channel whose polyphony is not all used. For example, if polyphony is set to 1, and you have three channel cards with the same MIDI channel, and all keys are held down, incoming note-on events will go to the first, second and third card with that channel (in that order) and the fourth note-on event will stop a random card and replace it with the fourth note. In the same example, if polyphony is set to 2, the first card will receive the first two notes, and so on. The result is a bizarre semi-random voice-changing instrument.

MIDI output (experimental)

The CMI App sends MIDI MMC messages if a song has been loaded in Page R: