One midi controller multiple apps (Midiflow, Modstep, AUM...). Audiobus 3?
I´m trying to figure out the best and stable way to be able to fast-switch which app listens to my keyboard.
Apps loaded in Audiobus 2 (state saving app switching and global transport), routed to AUM and midi controlled by Modstep (read this is the most solid approach).
That means playing one app at a time (or two if you want to) with the keyboard, but apps still have to "listen" since midi notes might come from Modstep.
The obvious choice is to use channels, so that synth 1 listens to Midi channel 2, synth 2 listens to midi channel 2, etc...You change the midi channel in your keyboard accordingly, and in modtstep you choose midi channels per track.
Ok, that would work, but what i absolutely hate about this is that you have to restrict what channel an instrument responds to per app. So you have to open Animoog, change the midi channel, then open Magellan, etc, etc. You just have to remember all this, sometimes it doesn´t save with the preset, you have to load exactly the same setup everytime... Its bound to all kind of problems, not flexible and it´s not an intuitive workflow.
Ideally all apps should just listen to whatever on whatever (OMNI) so you can just open it and play, regardless it´s hosted or not.
- AUM "channel filters" are great for this, you restrict what midi channel each AUM port/channel listens to. Only seems to work if app/synth is loaded directly into AUM, so not previously loaded in AB (not good, no fast app-switch). If the app/synth is previously loaded inAB you donñt get the "Node channel options" widget thingy.
- Midiflow: seems like the deal, as explained in this post Channel selection in AUM – with Midiflow
The idea is you have a virtual Midi input (MFi) that outputs to virtual outs (MF1, MF2...) depending on the MIDI channel.
But as far as i can see it still means that you have to choose the virtual port per app/synth, right?. So Animoog listens to MF1, Magellan to MF2... I don´t see any benefit, you still have to go to each app and disable all other MIDI inputs... Because they listen to MF1 port but ALSO to MF2, my MIDI keyboard port (whatever/OMNI requirement)!.
How i think it should work but either it doesn´t or i must be doing something wrong... The "midi-routing" app should intercept the inputs. Like "i´ll own the midi input and then i´ll distrubute". The fact that you can´t do the channel filtering in AUM when synth is loaded in AB makes me think that the synth-app, being it´s own entity, has "listening" of it´s own.... AUM doen´t own it so it won´t intercept the MIDI before it gets to the synth (channel filtering), thus if the synth is omni it will play no matter what AUM routing you specify. This also seems to be the case with Midiflow... If you tell the app to only listen to Midiflow port, then yes, Midiflow will do its thing and route output based on midi channel. But if the app is also listening to the controller´s midi, it will just play regardless (OMNI).
I´m using Audiobus 2, maybe this is solved with AB Midi in AB3?. Because it seems like it´s a "flow" issue, not being able to intercept the midi signals... If AB3 hosts audio and midi, it makes sense that it could alter or intercept the midi signal (like it does the audio) so it´d be MidiKeyboard -> AB3 -> channel 1 to lane 1, channel 2 to lane 2....
I hope it makes sense... I´m trying to have a flexible/predictable setup so you don´t have to change settings in five different places everytime you change something in the chain.... Do i need AB3 for this?. I´d have to upgrade iOS version to install AB3.