Midiflow allows you to send MIDI from app to app in a similar way to what you already do with audio. That way, you can sync apps with each other or send MIDI parts from a sequencer app to different synth apps. You can also route the MIDI from your keyboard to apps and assign different key zones to them. Different settings can be stored as a preset, recalled later and inserted into another preset. Furthermore, all MIDI transfer can be monitored in order to find problems or just to learn what MIDI is doing (normally) behind the scenes.

Important news: There is a full documentation on the Midiflow website now!

Midiflow allows you to create multiple routings. Each routing receives MIDI data on its source and sends it to its destination. The selectable sources and destinations include your CoreMIDI compatible MIDI interface and other apps if they provide a virtual MIDI port. You can also create custom ports that can be used by other apps to receive data from Midiflow or send data to it. A routing also has a modifier which allows you to filter data or modify it. That way, you can transpose notes, limit them to a key range, change the MIDI channel of the incoming data, etc. (see the feature list below).

+ MIDI clock – specify tempo and your apps will be in sync
+ Channel filtering and remapping
+ Velocity filtering – a routing is only active for notes in a given velocity range
+ Note shift – shift all notes by a given number of half-tone steps
+ Note remapping – shift each note individually
+ Velocity remapping – apply a velocity curve, transform to fixed velocity, or specify the map value by value. In the latter case, you can also export the mapping to the clipboard, edit it in another app like Apple Numbers, and paste it back in Midiflow
+ Filtering out Clock or dividing the tempo into subdivisions
+ Filtering out SysEx
+ Connect to other iPads/iPhones via Bluetooth MIDI (iOS8 or higher)
+ Save a configuration as a preset, which can be recalled later or inserted into another preset
+ Custom virtual MIDI ports, which can be selected in other apps as a source or destination
+ Control aspects of Midiflow via MIDI. For example, select presets or control the clock with any MIDI command
+ Launch your synth apps from Midiflow (works with an increasing number of apps)
+ Sharing your configurations

ADDITIONAL FEATURES (available as an In-app purchase)
+ Filtering and remapping of controllers – transform (a) the controller type, e.g. from CC1 to pitch-bend or note value to CC1, and (b) transform the value in several ways: as a linear remapping from an input range to an output range, as a curve, or as a value by value list. In the latter case, you can also export the mapping to the clipboard, edit it in another app like Apple Numbers, and paste it back in Midiflow. This allows you to create very sophisticated remappings.
+ Controller conditions – adjust your routings depending on other MIDI messages. This allows you to create sophisticated behavior within your setup by switching routings on and off.

Midiflow works with every app that has a correct MIDI implementation. In the best case, it has an own virtual MIDI port and can be configured so that it receives MIDI only on that port. Unfortunately, some apps don't have that, but can at least be restricted to one MIDI channel. In that case, you can send to that channel on the global MIDI port "Network Session 1". If you can't select a channel either, then the app won't work with Midiflow. There is a tutorial video on that explains this in more detail.

What’s New

Version 2.2.17

Compatibility with iOS 14

Ratings and Reviews

4.5 out of 5
21 Ratings

21 Ratings

Matt N. M. ,

Beautiful App for MIDI Interfaces

This app does exactly what it purports to do. It provides the essential MIDI port routing that is missing from iOS and most USB hardware MIDI interfaces. Plus, it continues running in the background while doing so.

I have a Midisport 4x4 interface connected to my iPad via USB camera adaptor. Now this by itself is useless: You might have a couple controllers and synths plugged in to the interface, but there is no default internal routing in the Midisport. You need to provide this yourself on your USB host. Usually this is easy enough if you're connecting to a Mac or PC, but not so with an iPad. That's where Midiflow comes in.

In addition, you can add filters and all this complicated stuff in the routing paths. In my case, this provides a crucial ability to clean MIDI clock and other noise coming from my controller keyboard.

Thank you Johannes, and I hope you earn a decent income from your well-crafted suite of iOS MIDI apps. I'll be following you on Github and Twitter :)

texasboi316 ,

Good stuff

Kudos to this developer for making a pro app. my midi needs are modest. I’m use to workstations like the Motif, montage, etc. Mostly I just want to play 3-4 sounds at a time. Piano, Rhodes, strings or synth pad stacked and key bass on the left when needed—-no sustain pedal on the bass——all from the same controller too. This is so simple on stage pianos..
I usually don’t write reviews but this is what music tech on iOS should be. This is a GREAT app...seriously has me thinking that this +AUM=Mainstage for IOS! Plays great with AUM btw. Thanks for making this!

viddavisda ,

Fantastic Midi Router

This app is superb for routing midi between apps and external keyboards or other input devices.

Want to invert your keyboard to map high notes to the left and low to the right? Enable only the black keys? Use notes one a keyboard to send program changes? Remap midi channels, create velocity switch layers, key zones?

In short you can do just about anything you can imagine with midi data that your keyboards or apps cannot do on their own, thereby giving added flexibility and function to devices with limited features.

For example, a keyboard with only one zone that sends on one midi channel can be configured to be split into any number of zones each going to its own unique midi channel and routed to any app.

Midiflow is the midi control center on my iPad. I know of no other app that does what this app can.


Johannes Doerr
6.5 MB

Requires iOS 8.0 or later. Compatible with iPhone, iPad, and iPod touch.



Age Rating
In-App Purchases
  1. Controller Remapping $3.99
  2. Controller Conditions $2.99
  3. Send Controller On Load $1.99


  • Family Sharing

    With Family Sharing set up, up to six family members can use this app.

More By This Developer

You May Also Like