Audiobus: Your virtual music studio.

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 3

    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 3

    @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 3

    @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 4

    @_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. :| ).

Sign In or Register to comment.