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.

AUM AU preset question...

Is there a way to 'update' save an AU preset in AUM or others without making a new preset? I've noticed I have resorted to doing things like preset 1, preset 1a, preset 1b, etc... Then just deleting the old ones.

I would love to see more than just + or slide delete as options of preset management. A save / save as would be really helpful. Oh, and folders for presets. Just like the main file browser.

Second question, how to rename presets?

Lastly, in the AU window toolbar, top left next to piano, routing, preset list icons... What does the four vertical bars icon do when lit yellow vs unlit?

Apologies if any of this should be obvious, cheers.

Comments

  • _ki_ki
    edited June 2019

    Update presets: Press + and use the previous name

    Save as: Press + and choose an unused name for preset

    Folders: Cool feature request, but quite a it work to implement

    Rename: Save under new name and left slide the old preset to delete it

    The 4 bar icon allows to show/hide the AU internal keyboard - but this feature has to be supported by the AU. I have tons of synth, but so far i only found that Roli Noise reacts to that button.

  • Is there a way to use a CC or PC message to have AUM change MIDI routing?

    When live-looping, I sometimes need to change which lanes are listening to which controller. I would love to be able to use my Bluetooth foot switches to change between MIDI routings.

  • _ki_ki
    edited June 2019

    @espiegel - if the controller come in on different midi channels and main their output is also just receiving on specific channel, i might do some kind of midi in/out mux with Mozaic and/or StreamByterthat allows to store several connection presets and switch between these using a Cc message...

    For instance 4 configs with up to 4 inputs (ch 1-4) routed to any of the 16 output channels would fit the 4 pad + control knobs layout of Mozaic. There could be a ‚learn‘ mode to configure the output channel for each input channel for each of the configs.
    Or when using 2 layouts, one could change between 16 settings with the pads view and use the 16 knob view to configure the output of the 16 inputs for each of the pads.

    Tell me more about the problem - i‘m listening :)

  • :) I‘m already on implementing the latter idea while watching WWDC

  • @_ki said:
    @espiegel - if the controller come in on different midi channels and main their output is also just receiving on specific channel, i might do some kind of midi in/out mux with Mozaic and/or StreamByterthat allows to store several connection presets and switch between these using a Cc message...

    For instance 4 configs with up to 4 inputs (ch 1-4) routed to any of the 16 output channels would fit the 4 pad + control knobs layout of Mozaic. There could be a ‚learn‘ mode to configure the output channel for each input channel for each of the configs.
    Or when using 2 layouts, one could change between 16 settings with the pads view and use the 16 knob view to configure the output of the 16 inputs for each of the pads.

    Tell me more about the problem - i‘m listening :)

    Yes, I could do that (use Mozaic or Streambyter to reroute MIDI). But, what I am wondering whether there is some native AUM feature that I am overlooking that allows one to use MIDI to change routings -- or even load additional AUM presets. Sometimes, I need to eject an input in a session to free up CPU and load another in its place.

    Currently, I am manually resetting the routing after I do this but maybe AUM has a feature I've overlooked.

  • @_ki said:
    Update presets: Press + and use the previous name

    Save as: Press + and choose an unused name for preset

    Folders: Cool feature request, but quite a it work to implement

    Rename: Save under new name and left slide the old preset to delete it

    The 4 bar icon allows to show/hide the AU internal keyboard - but this feature has to be supported by the AU. I have tons of synth, but so far i only found that Roli Noise reacts to that button.

    Thank you! Dunno how I didn't catch that earlier, but I'm glad the solution was so simple.

  • _ki_ki
    edited June 2019

    @espiegel123 BTW The script for Mozaic is done, besides an editor for the settings the GUI also features copy setting and reset setting, and a help page.

    When i started testing, i realized that channel changing with held notes will cause hanging notes and choosing the same output channel for several inputs might cause double send notes (which some synth don‘t like) - so i implemented tracking note-on/off for both input and output notes. This allows to safely switch or edit the settings.
    A held chord will be muted on the ‚old channel‘ and resend with initial note-on velocity to the new channel.

    I currently test everything and when ‚okay‘, i‘ll upload it to patchstorage :)

  • Hmm, not that easy...

    When switching channels its better not switch of active notes and resend it to the new channel (got that working) - but instead store the old assignment for each note and when a chord is held during a switch, the note off needs to be send to the old channel. A held piano chord will then continue to play until its notes are released, but new additional notes will be played the new synth.
    I now have to refactor the logic and re-debug, but since its nearly midnight, i‘ll continue tomorrow :)

  • wimwim
    edited June 2019

    @_ki said:
    Hmm, not that easy...

    When switching channels its better not switch of active notes and resend it to the new channel (got that working) - but instead store the old assignment for each note and when a chord is held during a switch, the note off needs to be send to the old channel. A held piano chord will then continue to play until its notes are released, but new additional notes will be played the new synth.
    I now have to refactor the logic and re-debug, but since its nearly midnight, i‘ll continue tomorrow :)

    (Hovers inconspicuously in the background waiting to steal this code...)

  • @wim I still rarely get hanging notes when doing heaving switching while tons of notes are being fed on multiple channels. I have no clue about the race condition, so i wrote myself a Note State Debugger (also to be published...).
    I know now which note hangs and when it was triggered, but not why - therefore i‘ll also will add full event debugging to the Midi Matrix Switch script :)

    And the external control features (via note-on, or cc or pc all on specific channel or AU User1 param) are not yet implemented except for the UI functionality.

    Mentally i‘ want to start coding immediately, but i still have to finish my working day.

  • @_ki said:
    @wim I still rarely get hanging notes when doing heaving switching while tons of notes are being fed on multiple channels. I have no clue about the race condition, so i wrote myself a Note State Debugger (also to be published...).
    I know now which note hangs and when it was triggered, but not why - therefore i‘ll also will add full event debugging to the Midi Matrix Switch script :)

    And the external control features (via note-on, or cc or pc all on specific channel or AU User1 param) are not yet implemented except for the UI functionality.

    Mentally i‘ want to start coding immediately, but i still have to finish my working day.

    I'm adding the SetNoteState and GetNoteState functions in Mozaic which let you keep track of each note on each channel. It's in the beta I'll be uploading tonight or tomorrow, so that may come in handy. Obviously you could already do that using arrays (it is essentially a 2-dimensional 16x128 element array) but this will be more convenient I think B)

  • Yeah - thats what i‘ve already implemented.... and the Midi State Debugger script also does this for CCs, PCs, ATs and pitchbends of all channels.
    Seems as i could get rid of several lines of code when the beta goes public. I think i still will publish it in its current state and later update it :)

  • @_ki said:
    Yeah - thats what i‘ve already implemented.... and the Midi State Debugger script also does this for CCs, PCs, ATs and pitchbends of all channels.
    Seems as i could get rid of several lines of code when the beta goes public. I think i still will publish it in its current state and later update it :)

    I’m definitely looking forward learning from that code!

  • @brambos said:
    I'm adding the SetNoteState and GetNoteState functions in Mozaic which let you keep track of each note on each channel. It's in the beta I'll be uploading tonight or tomorrow, so that may come in handy. Obviously you could already do that using arrays (it is essentially a 2-dimensional 16x128 element array) but this will be more convenient I think B)

    Cool. Not more than an hour ago I was thinking of how to do something that this should nail with just a few lines of code.

  • During tests of the Midi State Debugger, i noticed that the sumarization output cause cpu spikes up to 105% resulting in crackles. It was iterating 3 times over 16*128 entries doing some offset and array-lookups (for notes, aftertouch and CCs) - this probably took way to long.

    As a work-around, i split this output task into approx 40 stages being output in OnTimer :s The code became quite ugly and lengthy. But it does no longer crackle and there are no spikes anymore.

    That one refactoring took me about 3 hours... now its long after midnight and i have to get up at 6 in the morning. Sorry for not yet delivering.

    .

    Checking cpu with the previous incarnation „Note State Debugger“ (only tracking note-on/off) and not all the other stuff, that script also had the cpu spikes. Its a lot more compact, but i will not publish that one, since i also would need to split the output into stages to get rid of the spikes...

    .

    BTW: I could narrow down the error in the main script, but still can not fully reproduce the note-hanging bug :/

  • @_ki said:
    During tests of the Midi State Debugger, i noticed that the sumarization output cause cpu spikes up to 105% resulting in crackles. It was iterating 3 times over 16*128 entries doing some offset and array-lookups (for notes, aftertouch and CCs) - this probably took way to long.

    As a work-around, i split this output task into approx 40 stages being output in OnTimer :s The code became quite ugly and lengthy. But it does no longer crackle and there are no spikes anymore.

    That one refactoring took me about 3 hours... now its long after midnight and i have to get up at 6 in the morning. Sorry for not yet delivering.

    .

    Checking cpu with the previous incarnation „Note State Debugger“ (only tracking note-on/off) and not all the other stuff, that script also had the cpu spikes. Its a lot more compact, but i will not publish that one, since i also would need to split the output into stages to get rid of the spikes...

    There will always be a limit to how much you can do in one burst on the render-thread, but if you like I could have a look at the script and see where/why it's peaking - and if performance is perhaps already better on the new Beta (which is still waiting at Apple for review/approval. Indeed, Apple even insist on reviewing testflight betas. :| ).

  • @_ki said:
    Update presets: Press + and use the previous name

    Save as: Press + and choose an unused name for preset

    Folders: Cool feature request, but quite a it work to implement

    Rename: Save under new name and left slide the old preset to delete it

    The 4 bar icon allows to show/hide the AU internal keyboard - but this feature has to be supported by the AU. I have tons of synth, but so far i only found that Roli Noise reacts to that button.

    Altough you can update a preset. You have to type the exact preset name again and again and again.
    Would be nice to have the option to save current so you don't have to type it every time.
    Imagine you would have to do that in a word document with every change. Thats why there is Save and Save As. Its a small detail but a huge (work)flow improvement.😎

  • If i know that i will ‚overwrite’ a preset several times (for instance when doing sound design) i copy the name or start of the name into the clipboard and when saving, i use the small cross in the save dialog to clear the default name and paste the clipboard - this spares the exact retyping :)

    If one would want that AUM keeps track of the last loaded preset name for each loaded AU, then this would mean several changes to its internal structure and maybe even to the AUM session format if this information would be persisted - i don‘t know this convenience simplification justifies the necessary development and debugging time.

  • @tpj said:
    Altough you can update a preset. You have to type the exact preset name again and again and again.
    Would be nice to have the option to save current so you don't have to type it every time.

    That's tiring me and is so prone to typos.
    Even simply being able to copy the preset name in clipboard (by tap+hold on the preset name, for example), so I can paste it in the field.
    That would reduce the saving preset time of a good 80%.

    Or, simply initialize the preset name input field with the current preset name, as many other AU/IAA apps usually do.

  • @_ki said:
    If one would want that AUM keeps track of the last loaded preset name for each loaded AU, then this would mean several changes to its internal structure and maybe even to the AUM session format if this information would be persisted - i don‘t know this convenience simplification justifies the necessary development and debugging time.

    I can't say about the code and architecture of it, but imho the 2 suggestions in my post above might be quite simple to implement (no spanning of context, simple reading of preset-name value and then putting it in clipboard or initializing it in the save dialog).
    That could be a low hanging fruit.

  • @Pictor said:

    @tpj said:
    Altough you can update a preset. You have to type the exact preset name again and again and again.
    Would be nice to have the option to save current so you don't have to type it every time.

    That's tiring me and is so prone to typos.
    Even simply being able to copy the preset name in clipboard (by tap+hold on the preset name, for example), so I can paste it in the field.
    That would reduce the saving preset time of a good 80%.

    Or, simply initialize the preset name input field with the current preset name, as many other AU/IAA apps usually do.

    Fot quite a while, if you save a preset that you have chosen from AUM's preset list, AUM puts up a dialog with the existing preset's name already filled in. All you have to do is tap Save in AUM. No typing needed.

  • My bad, I got confused thinking we were talking of Audiobus, always fuck it up with the acronyms, especially late at night 😅

    But yes, I meant Audiobus doesn't seem to have a way of quickly overwriting a preset. Would be great to have the same function as AUM.

    Although I was complicating it thinking I had to save a preset for every single audiounit, in order to retain their settings together with the audiobus saved preset.
    But apparently the manual says that an audiobus preset will save its own settings and also all the settings/state of any (?) connected plugin.
    That actually makes sense 😄

  • @Pictor said:
    My bad, I got confused thinking we were talking of Audiobus, always fuck it up with the acronyms, especially late at night 😅

    But yes, I meant Audiobus doesn't seem to have a way of quickly overwriting a preset. Would be great to have the same function as AUM.

    Although I was complicating it thinking I had to save a preset for every single audiounit, in order to retain their settings together with the audiobus saved preset.
    But apparently the manual says that an audiobus preset will save its own settings and also all the settings/state of any (?) connected plugin.
    That actually makes sense 😄

    This is true of any properly working host with properly implemented AUs. Saving a host project, should save and restore the state of all AUs independent of whether individual presets were saved.

  • @espiegel123 said:
    This is true of any properly working host with properly implemented AUs. Saving a host project, should save and restore the state of all AUs independent of whether individual presets were saved.

    That's nice to hear :)
    I guess this doesn't include IAA apps, right?
    I have to save the preset manually there in order to restore them. Or AudioBus is magic also with them?

  • @Pictor said:

    @espiegel123 said:
    This is true of any properly working host with properly implemented AUs. Saving a host project, should save and restore the state of all AUs independent of whether individual presets were saved.

    That's nice to hear :)
    I guess this doesn't include IAA apps, right?
    I have to save the preset manually there in order to restore them. Or AudioBus is magic also with them?

    As I said, AUs. IAA does not have state saving. Some IAA apps implement Audiobus’ state-saving protocol. But that only applies when being saved as part of an Audiobus configuration.

  • @espiegel123 said:
    As I said, AUs. IAA does not have state saving. Some IAA apps implement Audiobus’ state-saving protocol. But that only applies when being saved as part of an Audiobus configuration.

    A pity that one has to remember to save manually.
    But at least now I am aware of that, thanks ^_^

Sign In or Register to comment.