Audiobus: Use your music apps together.

What is Audiobus?Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.

Download on the App Store

Audiobus is the app that makes the rest of your setup better.

Spectrum (MI clones) - interesting AU parameter control grouping / listings in AUM and Audiobus

Haven't had a chance to really dive in to these, but they sound great so far!

One interesting thing that I haven't seen in other AU's (does this exist in other apps?): In AUM and Audiobus's MIDI Control panels, instead of having every AU parameter in a giant, unwieldy list, the parameters are grouped according to function. E.g. instead of just "Spectrum" and then a list of 100+ parameters, you have: Main, Modulation, Env, Amp, Matrix, Settings; with the relevant parameters inside their sections.

In Audiobus this works great, everything is still a big list, but broken into sections for easier navigation.

In AUM this results in a hierarchical menu system; each section drops down to a lower level.

Since I prefer to run AUs in AUM because I prefer the multi-windowed approach of AUM to the single panel approach of Audiobus, I'm not quite certain how I feel about this.

On the one hand it still makes tracking down a new parameter easier, as you can follow the logical hierarchy. Want to assign MIDI control to the envelope release? Go to Env, then select release, instead of scrolling through a list of 100+ parameters.

On the other hand, after you're familiar with where the parameters are, and when you want to tweak amounts and scaling, it can be more cumbersome to have to keep diving into sub pages. It reminds me of Mitosynth: a great synth that I never use because the constant, hierarchical menu-diving makes it cumbersome to program.

Additionally, this adds to a frustration I have with all hosts: If you set up a complex series of routings with multiple AUs and then come back to that session later, when you've forgotten the specific routings, it's incredibly tedious to reverse engineer what's been set up, as well as just making a bunch of quick edits to the values. I wish that hosts could have an "Assigned routings" page that would show every assigned parameter from every app on one page; sort of like the "fold notes" feature you often see in piano roll editors, but listing all apps together.

BTW, apeMatix just shows a single list. This is unfortunate as things like the Matrix in Spectrum just show up as a repeating list of "Input 1", "Input 2" "Depth" and "Out" with no easy way to see which Rule you're setting. This is especially unfortunate as the modulation capabilities of apeMatrix make it perfect for hosting these Eurorack clones!

Things to hope for:
-All hosts to have an "Assigned Routings" page!
-Audiobus to have multi-AU-window capabilities
-AUM have the ability to display parameter grouping as list headings like Audiobus instead of sub-pages
-apeMatrix to show the groupings at all!
-Spectrum, perhaps a way to toggle the listing from grouped to flat?

@burns_audio BTW, the groupings could probably be "tightened up" a bit. E.g. in Spectrum, there's a "Main" master group, that has two "Main" sub-groups that in turn have the actual parameters. The sub-groups are probably unnecessary. In Modal and Resonator several parameters have two higher levels when there's no choice; e.g. Resonator/Resonator/then the resonator parameters.

Comments

  • Soo, some back story.. when the UI for Spectrum was just pages of sliders, I was generating the UI based on the tree of parameters that you see. Top level groups defined pages, then columns, then parameters in the columns. I kept it when I rewrote the UI, but yeah I'll look at cleaning it up. I underestimated how much people used the host AU parameter interactions.

  • @burns_audio said:
    Soo, some back story.. when the UI for Spectrum was just pages of sliders, I was generating the UI based on the tree of parameters that you see. Top level groups defined pages, then columns, then parameters in the columns. I kept it when I rewrote the UI, but yeah I'll look at cleaning it up. I underestimated how much people used the host AU parameter interactions.

    Not a major issue, but thanks for looking into it. What I was mostly interested in was the hierarchical grouping itself; I haven’t seen that in other apps (but then I’m not an appaholic, so I don’t have a ton to compare with!).

    BTW, never put it together that you did the Braids Renaissance firmware! Another awesome gift to musicians, thanks for all of this!

  • Yeah, I agree about assigned routings and being able to view them easily.
    I’d love to see a kind of flow chart view for the connections when it starts to get really complicated.

    On AUM and apeMatrix it could be on the midi matrix page, maybe if you long tapped a source it could reveal a flow chart viewer of all the subsequent connections.

  • @aplourde said:
    BTW, never put it together that you did the Braids Renaissance firmware! Another awesome gift to musicians, thanks for all of this!

    Thanks! I'm working on a MOZAIC script that does those chord modes

  • I also loved that cascading Parameter list when i saw it. It’s the fine detail :smile:

  • Hi @burns_audio, I can't remember if it was mentioned already.. but for some reason the exposed parameters in the first of the two MAIN folders (in AUM at least) do not get saved with the project. All other mappings have stuck, but algorithm, harmonics, morph, and timbre need to be remapped every time.

    It wouldn't be a big deal, but I'm hoping to use several instances in a live set soon and having to remap them is a pain. and if anything happens to crash, then all bets are off..

  • edited September 27

    @palms that should be unrelated to the nested parameter tree, as the saved preset is just a map of "AU parameter address": "value".

    So you're saying algorithm, harmonics, morph, and timbre are not being recalled properly when you save an AUM preset and then load that AUM preset?

    Are you saving/loading a presets in AUM or the project? Just so I understand.
    Do you have MIDI automation enabled on these parameters by any chance?

    Thanks,
    Tom

  • edited September 28

    @burns_audio said:
    @palms that should be unrelated to the nested parameter tree, as the saved preset is just a map of "AU parameter address": "value".

    So you're saying algorithm, harmonics, morph, and timbre are not being recalled properly when you save an AUM preset and then load that AUM preset?

    Are you saving/loading a presets in AUM or the project? Just so I understand.
    Do you have MIDI automation enabled on these parameters by any chance?

    Thanks,
    Tom

    Yes, in AUM, the midi mappings are saved at the project level. Channel mappings can be imported from other projects, but the same problem exists either way.

    I do automate parameters with a hardware sequencer, but the problem persists even when all routing is within AUM without any sort of automation.

    I just mapped 8 spectrum parameters to the 8 knobs of apematrix's "send midi" Auv3 (running in AUM), and upon reopening the project, the first 4 from the Main folder are consistently dropped whereas any other mappings work as they should.

    I don't really use other daws, but I've got a few of them so I'll go ahead and see if it happens in Apematrix, Audiobus, and NS2.

  • @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

  • Thank you Burns for your incredible app!

  • edited September 29

    @burns_audio said:
    @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

    I'm absolutely sure. very strange!
    Are you using custom cc's (midi cc control disabled in the spectrum settings). It seems that no matter what cc's I assign, the first four are always dropped. No automation. Even if the assignments aren't connected to anything (fresh AUM project, 1 instance of AUM, nothing else - assign first four MAIN cc, assign ENV to different cc's, the first four are dropped when I open the project again, but the ENV mappings are retained).

    I just tried it in Apematrix and it works perfectly. But for some reason those first four parameters just won't stick in my AUM setup. I've tried reinstalling Spectrum and it's still happening. I'm backing my AUM projects up now to reinstall that as well.. I'll report back.

  • ok, just reinstalled AUM and nothing changes. So strange. I've mapped dozens of other plugins in AUM and have never run into this problem.

    It isn't an os 13.1 problem - it was happening before I installed ipadOS.

  • @palms said:

    @burns_audio said:
    @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

    I'm absolutely sure. very strange!
    Are you using custom cc's (midi cc control disabled in the spectrum settings). It seems that no matter what cc's I assign, the first four are always dropped. No automation. Even if the assignments aren't connected to anything (fresh AUM project, 1 instance of AUM, nothing else - assign first four MAIN cc, assign ENV to different cc's, the first four are dropped when I open the project again, but the ENV mappings are retained).

    I just tried it in Apematrix and it works perfectly. But for some reason those first four parameters just won't stick in my AUM setup. I've tried reinstalling Spectrum and it's still happening. I'm backing my AUM projects up now to reinstall that as well.. I'll report back.

    Maybe you could post a video demo.

  • edited September 29

    @espiegel123 said:

    @palms said:

    @burns_audio said:
    @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

    I'm absolutely sure. very strange!
    Are you using custom cc's (midi cc control disabled in the spectrum settings). It seems that no matter what cc's I assign, the first four are always dropped. No automation. Even if the assignments aren't connected to anything (fresh AUM project, 1 instance of AUM, nothing else - assign first four MAIN cc, assign ENV to different cc's, the first four are dropped when I open the project again, but the ENV mappings are retained).

    I just tried it in Apematrix and it works perfectly. But for some reason those first four parameters just won't stick in my AUM setup. I've tried reinstalling Spectrum and it's still happening. I'm backing my AUM projects up now to reinstall that as well.. I'll report back.

    Maybe you could post a video demo.

    good idea.

    Just did a quick screen recording.. how do I post it?
    (sorry if I'm missing something obvious, but the attachments only let me post screenshots)

  • @palms said:

    @espiegel123 said:

    @palms said:

    @burns_audio said:
    @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

    I'm absolutely sure. very strange!
    Are you using custom cc's (midi cc control disabled in the spectrum settings). It seems that no matter what cc's I assign, the first four are always dropped. No automation. Even if the assignments aren't connected to anything (fresh AUM project, 1 instance of AUM, nothing else - assign first four MAIN cc, assign ENV to different cc's, the first four are dropped when I open the project again, but the ENV mappings are retained).

    I just tried it in Apematrix and it works perfectly. But for some reason those first four parameters just won't stick in my AUM setup. I've tried reinstalling Spectrum and it's still happening. I'm backing my AUM projects up now to reinstall that as well.. I'll report back.

    Maybe you could post a video demo.

    good idea.

    Just did a quick screen recording.. how do I post it?
    (sorry if I'm missing something obvious, but the attachments only let me post screenshots)

    Post to YouTube then post a link

  • @espiegel123 said:

    @palms said:

    @espiegel123 said:

    @palms said:

    @burns_audio said:
    @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

    I'm absolutely sure. very strange!
    Are you using custom cc's (midi cc control disabled in the spectrum settings). It seems that no matter what cc's I assign, the first four are always dropped. No automation. Even if the assignments aren't connected to anything (fresh AUM project, 1 instance of AUM, nothing else - assign first four MAIN cc, assign ENV to different cc's, the first four are dropped when I open the project again, but the ENV mappings are retained).

    I just tried it in Apematrix and it works perfectly. But for some reason those first four parameters just won't stick in my AUM setup. I've tried reinstalling Spectrum and it's still happening. I'm backing my AUM projects up now to reinstall that as well.. I'll report back.

    Maybe you could post a video demo.

    good idea.

    Just did a quick screen recording.. how do I post it?
    (sorry if I'm missing something obvious, but the attachments only let me post screenshots)

    Post to YouTube then post a link

    lol. thanks!
    baby's first youtube vid!

  • @palms said:

    @espiegel123 said:

    @palms said:

    @espiegel123 said:

    @palms said:

    @burns_audio said:
    @palms Are you sure about: "the problem persists even when all routing is within AUM without any sort of automation."?

    Because a lot of people would be affected by this if that was the case. I just loaded a fresh AUM instance, loaded Spectrum, built a patch, saved, cleared session, loaded, and those parameters were set without issue. Also tried save/lading an AUM preset.

    I'm absolutely sure. very strange!
    Are you using custom cc's (midi cc control disabled in the spectrum settings). It seems that no matter what cc's I assign, the first four are always dropped. No automation. Even if the assignments aren't connected to anything (fresh AUM project, 1 instance of AUM, nothing else - assign first four MAIN cc, assign ENV to different cc's, the first four are dropped when I open the project again, but the ENV mappings are retained).

    I just tried it in Apematrix and it works perfectly. But for some reason those first four parameters just won't stick in my AUM setup. I've tried reinstalling Spectrum and it's still happening. I'm backing my AUM projects up now to reinstall that as well.. I'll report back.

    Maybe you could post a video demo.

    good idea.

    Just did a quick screen recording.. how do I post it?
    (sorry if I'm missing something obvious, but the attachments only let me post screenshots)

    Post to YouTube then post a link

    lol. thanks!
    baby's first youtube vid!

    I can confirm this behavior; CC mappings aren’t saved in the first “Main” grouping of the Spectrum extension.

    Also, it does get saved in apeMatrix and Audiobus. Considering that, I wonder if this is an issue in AUM ( @j_liljedahl ); related to the fact that there are two “Main” groupings, both within a “Main” grouping (all other mappings, in all extensions, seem to be saved correctly - not that I’ve tried every parameter!)

    Tested on iPhone running 12.3.1

  • @aplourde said:

    Also, it does get saved in apeMatrix and Audiobus. Considering that, I wonder if this is an issue in AUM ( @j_liljedahl ); related to the fact that there are two “Main” groupings, both within a “Main” grouping (all other mappings, in all extensions, seem to be saved correctly - not that I’ve tried every parameter!)

    Advice to AU host developers from Apple is to ignore the grouping hierarchy completely and map based on AU parameter address, that being said my hierarchy with reused names and an extra layer of grouping is a silly artifact of the original UI I wrote that actually generated the UI (pages of panels of sliders) based on the AU Parameter grouping; I never realized it would be used by users when navigating the tree.

    I'll add fixing the parameter grouping in the next version.

  • @burns_audio said:

    @aplourde said:

    Also, it does get saved in apeMatrix and Audiobus. Considering that, I wonder if this is an issue in AUM ( @j_liljedahl ); related to the fact that there are two “Main” groupings, both within a “Main” grouping (all other mappings, in all extensions, seem to be saved correctly - not that I’ve tried every parameter!)

    Advice to AU host developers from Apple is to ignore the grouping hierarchy completely and map based on AU parameter address, that being said my hierarchy with reused names and an extra layer of grouping is a silly artifact of the original UI I wrote that actually generated the UI (pages of panels of sliders) based on the AU Parameter grouping; I never realized it would be used by users when navigating the tree.

    I'll add fixing the parameter grouping in the next version.

    AUM uses auParameter.keyPath to identify each AU parameter. This is the right thing to do, as far as I can tell. You need to make sure your parameter identifiers are unique. For example, you can't have two subgroups in a group both named "Main", etc.

    Apple docs about parameter identifier:

    All child nodes, under any given parent, must have a unique identifier. From release to release, an audio unit must not change its parameters' identifiers; this will invalidate any hosts' documents that refer to the parameters.

    And keyPath:

    When recording parameter values, hosts should bind to the parameter key path (unless an audio unit specifically documents that its parameter addresses are stable and persistent). The individual node identifiers in a key path are separated by periods (.). Passing a node’s key path to a parameter tree’s valueForKeyPath: method returns the same node.

  • @burns_audio said:

    @aplourde said:

    Also, it does get saved in apeMatrix and Audiobus. Considering that, I wonder if this is an issue in AUM ( @j_liljedahl ); related to the fact that there are two “Main” groupings, both within a “Main” grouping (all other mappings, in all extensions, seem to be saved correctly - not that I’ve tried every parameter!)

    Advice to AU host developers from Apple is to ignore the grouping hierarchy completely and map based on AU parameter address

    Can you post a link to this advice?

  • edited October 1

    @j_liljedahl said:

    Advice to AU host developers from Apple is to ignore the grouping hierarchy completely and map based on AU parameter address

    Can you post a link to this advice?

    Welp.. when I first started writing AU's I thought I had read what I posted from the Apple docs. I'll try to find it, but based on what you've posted, I probably misinterpreted it back then and won't be able to find that advice since it completely contradicts what you posted. Sorry about that. I'm wrong.

    Next release will have fixed naming.

    Edit: I just read my parameter registration code in Spectrum - there's two sub-groups with a display name of "Main", however they each have unique identifiers. Either way I'm reorganizing the whole tree for the next release, but the keypaths were unique. So this may not be the root cause of the issue being experienced.

  • @burns_audio said:

    @j_liljedahl said:

    Advice to AU host developers from Apple is to ignore the grouping hierarchy completely and map based on AU parameter address

    Can you post a link to this advice?

    Welp.. when I first started writing AU's I thought I had read what I posted from the Apple docs. I'll try to find it, but based on what you've posted, I probably misinterpreted it back then and won't be able to find that advice since it completely contradicts what you posted. Sorry about that. I'm wrong.

    No worries, it could also be that Apple has documentation that contradicts itself, that wouldn't be the first time :)

    Next release will have fixed naming.

    Edit: I just read my parameter registration code in Spectrum - there's two sub-groups with a display name of "Main", however they each have unique identifiers. Either way I'm reorganizing the whole tree for the next release, but the keypaths were unique. So this may not be the root cause of the issue being experienced.

    That's interesting. I'd be happy to print some debug info from AUM to see what's going on from the host side. Please PM me with a promocode or testflight invitation if you have a spare.

  • @j_liljedahl - Spectrum is free. B)

    Spectrum Synthesizer Bundle by Thomas Burns https://apps.apple.com/app/spectrum-synthesizer-bundle/id1467384251

  • @j_liljedahl said:

    That's interesting. I'd be happy to print some debug info from AUM to see what's going on from the host side. Please PM me with a promocode or testflight invitation if you have a spare.

    Thanks - I'm waiting a confirmation from @palms if the beta build I made last night with reorganized parameter tree fixes the MIDI mapping issue

  • @burns_audio said:

    @j_liljedahl said:

    That's interesting. I'd be happy to print some debug info from AUM to see what's going on from the host side. Please PM me with a promocode or testflight invitation if you have a spare.

    Thanks - I'm waiting a confirmation from @palms if the beta build I made last night with reorganized parameter tree fixes the MIDI mapping issue

    yup, that did the trick!

    works perfectly now. thank you for the fix! :)

  • @burns_audio
    I just tried the current app store version to see what's going on, and indeed AUM was using the keyPath for parameters as expected, but it was using the display name for parameter groups! So "main.main" became "Main" and "main.main2" became also "Main", overwriting the first.

    I'll see if I can fix this but still be backwards compatible, so users can still load old projects without having to remap all parameters.

  • @j_liljedahl said:
    @burns_audio
    I just tried the current app store version to see what's going on, and indeed AUM was using the keyPath for parameters as expected, but it was using the display name for parameter groups! So "main.main" became "Main" and "main.main2" became also "Main", overwriting the first.

    I'll see if I can fix this but still be backwards compatible, so users can still load old projects without having to remap all parameters.

    Hey, good find. Next version of Spectrum is going to break the parameter tree ordering anyways so don't worry about backwards compatibility for this AU. Not sure if many other popular audio units use parameter groups so I suspect the impact will be minor!

  • @burns_audio said:

    @j_liljedahl said:
    @burns_audio
    I just tried the current app store version to see what's going on, and indeed AUM was using the keyPath for parameters as expected, but it was using the display name for parameter groups! So "main.main" became "Main" and "main.main2" became also "Main", overwriting the first.

    I'll see if I can fix this but still be backwards compatible, so users can still load old projects without having to remap all parameters.

    Hey, good find. Next version of Spectrum is going to break the parameter tree ordering anyways so don't worry about backwards compatibility for this AU. Not sure if many other popular audio units use parameter groups so I suspect the impact will be minor!

    No worries. New AUM beta is out now that fixes this, just in case.

Sign In or Register to comment.