I love my collection of iOS synths, guitar amp modellers and audio effects but, while ‘exciting’ might not be the word to describe them, I’m also glad I’ve got access to a number of very useful ‘music utility’ apps that I use on a regular basis. One of these is MidiBridge by Audeonic Apps (Nic Grant’s app home and where MidiBus and, in part, Music IO have come from). Given just how unpredictable MIDI can be under iOS, MidiBridge is an interesting app as it attempts to help you untangle your virtual MIDI cables between various apps and provides you with the facilities to modify and filter MIDI data as it moves around your iOS system.
MidiBridge is not the only App Store app that attempts this functionality though and a more recent arrival on the Store is Midiflow. Developer Jonannes Dorr first launched the app back in June 2014 but v.2.0 arrived in December and there have been a number of further updates since then (suggesting a pretty active development process) with v.2.2.3 arriving on the App Store a few days ago.
The app is a universal one so will work on iPhone, iPod Touch and iPad (the screenshots shown here are from an iPad and, obviously, the layouts would be somewhat different on a smaller iPhone screen) and is currently priced at UK£3.99. This provides an impressive set of features for monitoring and adjusting your MIDI data flows but, if you want to go the whole nine yards, there are two additional IAPs (both also UK£3.99) that add further feature options. The app is a 10MB download and requires iOS7.0 or later.
Go with the flow
The essence of what Midiflow does is actually quite simple in that it allows you to route MIDI data from a source (app, external MIDI in, a MIDI keyboard/controller, a network MIDI connection) to a MIDI destination (an app such as a synth, drum machine or sequencer or, via a suitable MIDI connection, onwards to other external MIDI devices). As the data passes through Midiflow, you can both monitor it (to see what data is actually going where) and modify it (change the values in some way whether that is to remap them or to filter/restrict them; there are plenty of options and even more via the two additional IAPs). In addition, Midiflow can act as a MIDI Clock source and, providing you can get your destination app hooked up OK, you could therefore use Midiflow as the clock master for your various other iOS music apps.
The other obvious thing to say about Midiflow is that users of Audiobus may well find some elements of the layout feel instantly familiar. As for audio in Audiobus, you can set up a MIDI-based signal chain that goes through three stages – input/source to process (think the Audiobus Effects slot) to destination (the Audiobus Output slot).
You can set up multiple signal chains of this fashion (as shown in some of the screenshots) and, at each of these three stages, you can assign multiple objects. You can, therefore, have several MIDI input sources feeding a single MIDI chain, operate several ‘MIDI processing’ options upon those input data, and then send the results to multiple MIDI destinations (apps, for example).
Equally, if you switch on the MIDI monitoring options (via the buttons at the bottom/centre of the display) you can see exactly what MIDI data is arriving on each MIDI chain and what the processing is doing to it before it is sent on to the destinations. This feature is particularly helpful if you are trying to track down where something is going wrong MIDI-wise, although the app does give you a friendly warning that this places a somewhat higher CPU load on your system and is best disabled unless being used for troubleshooting purposes.
When you start the app for the first time, aside from the various options/buttons located along the top and bottom strips of the display, the main area contains four small icons/buttons. Tapping on the ‘+’icon sets you up with an empty MIDI chain to populate. The Insert button will add an existing preset (for example, one you have created earlier) to the current setup, while ‘Save As’ allows you to save the current setup as a preset. The Share icon does pretty much what you would expect and allows you to get your presets off and out into the wider world for sending to others or backing up.
While the appearance might be somewhat different, once you have created an empty MIDI signal chain, adding a MIDI ‘input’ source or specifying a MIDI ‘output’ destination simply involves tapping on the rather Audiobus-like, app-shaped ‘+’ icons. An app selection list – which also includes non-app MIDI destinations (ports, interfaces, network) – and you can add as required. Apps that are already running in the background will appear brightly in the list while those installed on your iDevice, but not currently running, will appeared faded out. If you do tap on one of these then it will automatically launch. No, you don’t get a ‘quick switch’ option within your selected app to get you back to Midiflow (as you do with most Audiobus compatible apps), but the basic principle is similar…
So, for example, in a very simple setup, we might identify out MIDI input keyboard as the source and a single synth app as the destination. If we then tap on the circular ‘+’ icon between these two, then we can begin to adjust the MIDI data flowing from the input to the source in some fashion. There are all sorts of options here but, for example, a simply option might simply be to remap the MIDI channel so that what comes into your iPad from your external MIDI keyboard on channel 1 is actually sent on to your iOS synth app on MIDI channel 2.
And while this might be very useful (particularly if your external keyboard doesn’t make it easy to switch MIDI channels), there are plenty of other useful options here including the ability to restrict MIDI data to a single channel, restrict notes to a particular range, control the MIDI velocity range, shift notes and remap notes. Again, further options can be added via the IAPs.
However, even without those IAPs, there are all sorts of things that someone with a decent, large-format MIDI keyboard and a small selection of synths apps might find very useful here. For example, you can easily use Midiflow to create custom keyboard splits (so each section of your MIDI keyboard triggers a different synth). Equally, you can create layered sounds where some sections (or all) of the keyboard sends data to two or more synths. And with the velocity-based options, you can also create some velocity selective layers, where one or more of your layered sounds only triggers at certain velocity levels. Whether in a live or recording context, all these sorts of functions would be very useful…
Having read the excellent documentation for the app available on the Midiflow website, it didn’t take me long to find my way around the basic operation of the app. I’m sure I’ve only scratched the surface of what this utility can do but, in terms of setting up the kinds of functions mentioned above, it proved itself to be both capable and, on the whole, very easy to use.
Yes, there is often a bit of back-and-forth between Midiflow and your various destination apps – mainly to ensure that their own MIDI configuration is correctly setup – but Midiflow certainly makes it easy to both get MIDI data going where you want it, to modify that MIDI data in some very useful ways, and to monitor the data if things don’t seem to be going quite to plan.
Equally, I was able to use the app as a MIDI Clock source and had no problems getting it to control the stop/start and tempo of Diode-108 (for example). If you have multiple apps that you need to control via MIDI Clock sync this could, again, be a useful utility by which to do this.
In use, the interface seems pretty logical and, visually, the app is clean and fairly uncluttered. Being able to save presets for later recall also works well and if you do find yourself using a regular suite of apps together (for example, for a live performance), then this would certainly be a neat way to ensure any MIDI routing required was reasonably well organised and could be easily recalled. Note that Midiflow presets can, themselves, be recalled via MIDI; if you wanted to switch between several different MIDI routing configurations during a live performance, then this would be easily achieved.
I think I would find the ability to create complex keyboard splits and/or layers to most obviously useful feature of the app for my own use but, if you are more of a MIDI nerd than I am, then I’m sure there are some way more sophisticated things you could do here, particularly in terms of remapping controllers.
Given just how unpredictable MIDI can be used iOS, I’m sure there will be some apps that don’t want to play ball with Midiflow but, in my own testing using some of my more regular iOS synths and drum machines, I didn’t encounter too many ‘missing in action’ cases. These is, however, information on the Midiflow website that explains the steps you can follow with apps that don’t seem to work as planned and some workaround ideas are described that might help.
If you do like to work with multiple iOS MIDI apps – and in particular if you do that in a live performance context, I can imagine Midiflow being a very useful utility app to have around. I’m sure the base app – at UK£3.99 – would be adequate for most users needs but the IAPs are there for the real MIDI-heads if you need more.
The functionality obviously covers similar ground to MidiBridge but, on present prices at least, Midiflow is the cheaper of the two options and, if you are also an Audiobus users, then the Midiflow workflow might well appeal. The performance also seems very solid and, as a useful MIDI utility app, Midiflow has a lot to recommend it.