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.
I tried:
- 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.

Thanks!!

Comments

  • 14 Comments sorted by Date Votes
  • I hear you. I don’t know if it’s possible for one app to grab hold of all of the midi, though, without bits and pieces getting around the edges. Always debugging this end.

    Apple should be the one to offer a rock solid ‘midi control’ app, really (nothing fancy, just basic connections) but I won’t hold my breath for that. How much money are they making off music apps? And how much would the development of such a basic utilities app cost them? More than zero I suppose. And maybe they’re afraid to open that door. Give people an inch...

    I hope I’m wrong and some developer, any developer, can fix all our midi woes. I’m sure we’d instantly take them for granted and just complain all the time, but they would be a hero.

  • edited November 14 Vote Up0

    Xequence does this automatically by default. Your hardware controller will always play the instrument (app) that is assigned to the currently selected arranger track. (Selecting a track is a single tap).

    (But probably I didn't quite get your problem)! :#

  • Haven´t tried Xequence, but being a sequencer (not an app hoster) I´m guessing it will function very much like Modstep. Actually i was just cheking out this video and he sets channel 10 as midi destination for the drum app, which in turn means that he had to select channel 10 in the drum app... Xequence looks good BTW, thanks!

    So this is what AUM developer was pointing out here

    When using IAA apps, it's up to them to do any channel selection. AUM just routes the MIDI ports.

    Actually i was just doing a quick test and it seems like the midi channel filter in AUM does work when apps (IAA) are loaded directly into AUM, not through Audiobus. Actually, I loaded the same app (Animoog here) twice, first as IAA and then added it to Audiobus routed to AUM. Obviously only the first one worked, but it shows how there is the little widget for MIDI filtering when loaded in AUM and not Audiobus.

    So my guess is (taking a leap here, very simplistic terms) when loaded through Audiobus, AUM just holds "a reference" to the app. Whereas when loaded in AUM, AUM "owns it" sort of speak, and takes care of delivering the MIDI. If the filter is set to, say Midi channel 10 for drums, it will only route the signa to the drum machine if receiving midi through channel 10. Thus, the app (drum machine in this case) can be safely set to OMNI, it´s AUM that delivers based on the filter condition.

    This looks promising!. The only downside that i can think of so far being that apps will not be available in Audiobus little widget or Audiobus remote, which makes it harder to navigate back and forth. I guess state saving for the apps will work if AUM is itself hosted in AB, right?. If this works I´m pretty sure it´s taken care of with Audiobus 3 midi´s implementation.

    So many tests, so little music... I´m dreaming of that moment when I´ll have it all set up and get to actually playing something, I´m a picky-obsessed kind of moron sometimes. I just think getting it right will mean less lost time in the future (if the future ever comes).

  • edited November 14 Vote Up0

    If your goal is using the same controller (be it hardware or software) for several apps, and switching the controller between those apps with a single tap, then Xequence will do this as a sort of standard "collateral damage feature"... I really didn't think this was even special enough to mention:

    • For each app / hardware synth you want to control, create an instrument in Xequence, select the app / MIDI output as the "MIDI Destination", and, if you happen to host several apps (AUv3) inside a host like AUM, the corresponding channel (you would have to select AUM as the destination for all those instruments, and then filter by channel)
    • Enable "MIDI In" and "MIDI Thru" in Xequence's settings ("..." menu at the top, then "MIDI & Recording")
    • Enable your controller in "Sources"
    • Make sure that none of your target apps listen to your controller in their respective settings!
    • Create a track for each instrument in Xequence and assign the instrument

    Now Xequence will forward the MIDI from your controller to the instrument of whatever track is currently selected, i.e. you can select which app / synth you want to control with a single tap on the corresponding track header. This is the standard "MIDI Thru" behaviour of desktop apps like Cubase or Logic. (at least it used to be back in 2010 or so when I last used them :D )

  • So my guess is (taking a leap here, very simplistic terms) when loaded through Audiobus, AUM just holds "a reference" to the app. Whereas when loaded in AUM, AUM "owns it" sort of speak, and takes care of delivering the MIDI.

    Kinda. When loaded via Audiobus, AUM just pipes the audio output from the pipeline in AB. It's clever/friendly enough to show you the icon from the app hosted in AB but it's really just an audio input at this point.

    To make this work with Audiobus, you'll most likely need to use the https://www.midiflow.com/audiobus/channels/ on the MIDI page of AB3.

    Fixed channel per app should work too if the app supports it. If you have apps that you often use, set those to channels 2 through whatever. Save channel 1 for weirdos and some upper channels for apps you don't often use. Just like folks have done with hardware synths since Miami Vice. You can save a 'blank' AB3 preset with your MIDIFlow Channel plugins preset and load synths as needed for your current session. Some apps are "promiscuous"; they will listen on all ports and it's a different pain in the ass. Korg apps are notorious for this.

  • Thanks!!. I could get it to work in AUM if loading IAA apps directly, like i explained, with filtering. But.... No state saving that way. Just tested it and when saving Audiobus only AUM state is saved (not IAA apps within), makes sense since the IAA apps are not directly hosted by AB.
    it seems like Audiobus 3 covers all this.

  • @tahiche said:
    Thanks!!. I could get it to work in AUM if loading IAA apps directly, like i explained, with filtering. But.... No state saving that way. Just tested it and when saving Audiobus only AUM state is saved (not IAA apps within), makes sense since the IAA apps are not directly hosted by AB.
    it seems like Audiobus 3 covers all this.

    If you use AUs instead of IAA in AUM, those will save state with the AUM preset. I don't remember if the AU states in AUM are saved as a part of the AB preset.

    I win the acronym contest.

  • edited November 15 Vote Up0

    You definitely win the acronym contest!. (INMHO LOL)
    Ok, so I bought Audiobus 3 and the Midiflow channel thingy. Just can't believe how stupidly complicated all this is. I haven't the slightest doubt that these developers (AUM, Audiobus, Modstep, Xequence,etc) are extremely good and capable. So I'm gonna have to blame Apple for this nonsense.
    And at this point is not me being dumb or ignorant. Check out this video by haQ attaQ.
    Midiflow Adapter for Audiobus 3 │Tutorial - haQ attaQ 214
    Does anyone really believe having to change the midi channel in every single synth is ever a good idea?. Do you take a notebook with you to recall which channel is which?. It's just not right.
    I sort of managed to do the channel-to-synth going with AB3 but not through AUM's ports like I wanted. The Midiflow Channnel app was no help. Can't get it to work. Doing it through AUM was logical, I have x synth loaded on channel 2, so in AB3 I send midi channel 2 to AUM port 2 and it plays whatever is there. Nope. In AB3 I have to route incoming midi (keyboard channel) to the specific synth. Which means I can't just replace the synth in AUM, I have to go and change it in AB as well. Too much stuff to do, it's just a hype killer.
    Best results so far was loading the synths directly in AUM like pointed out before. But no state saving, a total must, shame on Apple again.
    This whole thing just sucks. It's terrible.
    Apps shouldn't have to implement AB's state saving for others to be able to save, Midiflow shouldn't have to develop an adapter for core MIDI, and above all, I shouldn't have to even know this!.
    I've read statements about "Apple doesn't care, there's not that much money involved ", "it's a niche market", and so on. Apple was built on these "niches", be it musicians, developers, designers, video editors... It was supposed to be "it just works", "it never hangs", "it's reliable, windows is a hack". If iPads are not made for serious music making just say it and let's all loop "the lion sleeps tonight". If they are I need to play 2 synths with my keyboard in no time and I need to save my bloody song!.

  • @syrupcore said:

    @tahiche said:
    Thanks!!. I could get it to work in AUM if loading IAA apps directly, like i explained, with filtering. But.... No state saving that way. Just tested it and when saving Audiobus only AUM state is saved (not IAA apps within), makes sense since the IAA apps are not directly hosted by AB.
    it seems like Audiobus 3 covers all this.

    If you use AUs instead of IAA in AUM, those will save state with the AUM preset. I don't remember if the AU states in AUM are saved as a part of the AB preset.

    Everything that would be saved in the AUM session manually (Menu->SAVE) is also saved in the AB preset if AUM is loaded inside AB. And yes, AUM saves state for everything except the internal state of hosted IAA apps, since there's no way to communicate that state to the host in IAA. But everything else is saved, the state of internal nodes, hosted AU plugins, and AUM itself, etc.

    I win the acronym contest.

    :)

  • @j_liljedahl said:
    Everything that would be saved in the AUM session manually (Menu->SAVE) is also saved in the AB preset if AUM is loaded inside AB. And yes, AUM saves state for everything except the internal state of hosted IAA apps, since there's no way to communicate that state to the host in IAA. But everything else is saved, the state of internal nodes, hosted AU plugins, and AUM itself, etc.

    Exactly, AUM works great except for state saving of IAA apps (again, not their fault). The MIDI filtering for nodes, etc, it´s just very convinient to have it all in one place. So AU instruments would be saved, that´s great. I´d really stick to just using AudioUnits in AUM to stop this headache. There are good enough options for synths, but Drum Machines?. I just know of Ruismaker, which i own, but i don´t see it as a "general purpose" module like, say, DM1.
    I just don´t understand why Apple would start all the AU thing without fixing IAA state saving first!!. So now you got Audiobus, IAA, AU, and nothing works "properly". No matter what route you take there´s blocking situations on the way. Either you´re limited to a small set of instruments, you can´t save properly or you´re bound to a nightmare of routing.

    BTW: I purchased AB3, Midiflow routing and channels... Can´t get it to work properly.

  • @tahiche said:

    @j_liljedahl said:
    Everything that would be saved in the AUM session manually (Menu->SAVE) is also saved in the AB preset if AUM is loaded inside AB. And yes, AUM saves state for everything except the internal state of hosted IAA apps, since there's no way to communicate that state to the host in IAA. But everything else is saved, the state of internal nodes, hosted AU plugins, and AUM itself, etc.

    Exactly, AUM works great except for state saving of IAA apps (again, not their fault). The MIDI filtering for nodes, etc, it´s just very convinient to have it all in one place. So AU instruments would be saved, that´s great. I´d really stick to just using AudioUnits in AUM to stop this headache. There are good enough options for synths, but Drum Machines?. I just know of Ruismaker, which i own, but i don´t see it as a "general purpose" module like, say, DM1.
    I just don´t understand why Apple would start all the AU thing without fixing IAA state saving first!!. So now you got Audiobus, IAA, AU, and nothing works "properly". No matter what route you take there´s blocking situations on the way. Either you´re limited to a small set of instruments, you can´t save properly or you´re bound to a nightmare of routing.

    BTW: I purchased AB3, Midiflow routing and channels... Can´t get it to work properly.

    @benkamen , we need Patterning as AUv3! :)

    I would say that AUs are working "properly" at this point, except the memory-leak issue, which you can work around by remembering to terminate and restart the host after using a session with several AUs. Only then is the memory for the AUs processes actually free'd. This is an iOS bug.

  • Totally agree that having to use MIDIFlow Channels to set the MIDI channel of an AB MIDI lane feels like overkill. Would love to see MIDI inputs that worked like multi-port audio apps. Select the main input for 'omni' or tap a little triangle next to the name to select a specific MIDI channel.

    Anyway... sounds like you have two options at this point.

    1) Just use AUM and AUs if that's working for you. Vatanator could work as your drum machine. There are probably others. Full list of AUs here: https://forum.audiob.us/discussion/comment/414982/#Comment_414982 Should note that if you go the all AUs route, AB3 will save all of that too if you host them internally.

    2) Take the time to create an AB3 setup that works with the MF channel filter on the MIDI page and your IAA instruments on the Audio page. Set AUM as the output. Then you can swap out the IAA instruments as needed, leaving the channel filters in place. For me, this gets you the best of both worlds and worth the time to set up. You get all the mixing awesome sauce of AUM and the IAA state saving, AB sidebar and AB remote action of AB3.

    I get your frustration. I reckon everyone who has ever posted here does. Some people have been frustrated enough that they endeavored to fix it (Ta @Michael and @j_liljedahl!).

    Re: 2) above... If you try this again, explain exactly where you run into problems ("I did this, thought it would do this, but instead X happened") while trying to set this up and someone will get you sorted.

  • About the frustration, I really think that not being able to save IAA "natively" is the source of all this headache. Huge problem and unacceptable that Apple does nothing about this. I beleive @j_liljedahl mentioned it at their forum.

    @syrupcore said:
    Take the time to create an AB3 setup that works with the MF channel filter on the MIDI page and your IAA instruments on the Audio page. Set AUM as the output. Then you can swap out the IAA instruments as needed, leaving the channel filters in place. For me, this gets you the best of both worlds and worth the time to set up. You get all the mixing awesome sauce of AUM and the IAA state saving, AB sidebar and AB remote action of AB3.

    Re: 2) above... If you try this again, explain exactly where you run into problems ("I did this, thought it would do this, but instead X happened") while trying to set this up and someone will get you sorted.

    I find AUs a bit limited for the time being so i´d really love to get this setup working. Do you have it setup this way?.
    What i was trying to do in Audiobus 3 is route incoming MIDI to AUM ports with Midiflow channels in the middle. So MIDI channel 1 to AUM port 1, channel 2 to port 2, and so on. I think it´s the AUM port that´s not doing it´s thing. After doing this in AUM´s MIDI routing i can see "Interapp audio 1, 2..." so i choose that as input (nothing named "ports" and link it to the synth, no good. BTW, i can select individual MIDI channels as input so I can´t see the point of using Midiflow channels for this.

    Can someone post a detailed explanation of how to use AB3 Midi routing to AUM?. I will post images of my failed attemp in case it helps explain the situation.

    Thanks!!!!

  • Why host the instruments in AUM if they wont save their settings? Use apps that support AB State Saving and host them in AB. Send their audio to AUM. Then there's no need for MIDI between AB and AUM.

Sign In or Register to comment.