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.
How does Midiflow work?
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).