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 - grouping and activating / deactivating plugins

Hi,
I was wondering whether there is a way to group track in aum and fold this group.
My second question is if it is possible to automate activating / deactivating plugins or how the cpu usage is working.
Lets say I want to have two drummachines playing not at the same time is there a way to deactivate the one that isnt playing and activate it once it starts to save cpu or will the cpu just be used if sound is generated? Same goes for possible EQ's, compressors and other plugins in the bus.
Thanks for helping

Comments

  • midi learn and push da button

  • @yentzee said:
    Hi,
    I was wondering whether there is a way to group track in aum and fold this group.

    No

    My second question is if it is possible to automate activating / deactivating plugins or how the cpu usage is working.

    AUM has no built-in automation. However, you can use any sequencer plugin to send midi messages to activate / deactivate plugins when needed.

    Lets say I want to have two drummachines playing not at the same time is there a way to deactivate the one that isnt playing and activate it once it starts to save cpu or will the cpu just be used if sound is generated? Same goes for possible EQ's, compressors and other plugins in the bus.

    CPU should be mostly freed up when a plugin is deactivated.

  • edited September 2023

    100% in agreement with the recommendations so far. If you decide to go with using a sequencer app and MIDI controls, and you will want to use the method on a regular basis, I would also consider setting up a template in AUM with the MIDI mappings for the plugins already configured (Slot 1, Slot 2, etc.). As far as I know, you would have to map it every time you start a new project. If I'm missing something or someone has a better solution, that would be welcome.

    Edit: There's a simple implementation of this for three slots using Surface Builder over on PatchStorage:

    https://patchstorage.com/show-hide-plugins-via-surface-control/

  • edited September 2023

    I'm not sure whether this been explained clearly enough, so I'll provide a picture.
    AUM supports bypassing instruments, and this is great because they don't use DSP when bypassed.
    To do this, simply assign a MIDI event to the instrument bypass parameter.
    In the example below I'm using MIDI cc 17 to either bypass the Bleass Monolith or not.

    You can set lots of instruments to receive MIDI cc 17 on channel 1 and bypass them all at once, effectively creating a group.

    There are a bunch of tools that can send MIDI cc.
    I use Mozaic, and here's a test script I wrote a while back to test this.

    @Description
    AUM channel bypass v1.0
    -------------------------
    
    Route this Mozaic script to AUM MidiControl.
    On each audio channel's main instrument, set bypass to be matching channel and cc in Mozaic.
    Bypass all channels in initial state.  
    Then press the pads to toggle bypass.
    Also receives MIDI cc to trigger from another script:
        * 104 - Toggle bypass on specified channel (value is ignored and internal state is used)
    @End
    
    
    @OnLoad
      SetShortName {AUMBYP} 
      ShowLayout 2  // Pads
    
      Call @InitVars
      Call @InitUI
      Call @InitKnobs
      Call @KnobChange_CC
    @End
    
    
    @InitVars
      _logEvents = true
      knobCC = 0
    
      if Unassigned _knobCCValue
        _knobCCValue = 17
      endif 
    @End
    
    
    @InitUI
      LabelPads {Toggle bypass channel}
      LabelKnobs { }
    
      for p= 0 to 3
        LabelKnob p, { }
      endfor
    
      for p=0 to 15
        LabelPad p, p+1
        LatchPad p, false 
      endfor
    @End
    
    
    @InitKnobs
      SetKnobValue knobCC, _knobCCValue 
    @End
    
    
    @KnobChange_CC
      _knobCCValue = Round(GetKnobValue knobCC)
      LabelKnob knobCC, {CC: }, _knobCCValue 
    @End
    
    
    @OnKnobChange
      if LastKnob = knobCC 
        Call @KnobChange_CC
      endif
    @End
    
    
    @OnPadDown
      _currentPad = LastPad
      Call @PadBypassToggle
    @End
    
    
    @TriggerBypassToggle
      _currentPad = _lastMIDIChannel
      Call @PadBypassToggle
    @End
    
    
    @PadBypassToggle
      _midiCC = _knobCCValue
      _ps = PadState _currentPad
    
      if  _ps = false
        LatchPad _currentPad, true
        SendMIDICC _currentPad, _midiCC, 0
        if _logEvents = true
          Log {Enabling Channel: }, _currentPad + 1
        endif
    
      else
        LatchPad _currentPad, false
        SendMIDICC _currentPad, _midiCC, 127
        if _logEvents = true
          Log {Bypassing Channel: }, _currentPad + 1
        endif
      endif
    @End
    
    
    @OnReceiveMIDICC
      if _logEvents = true
        Log {CC received: }, _lastMIDICC, {channel: }, _lastMIDIChannel, { value: }, _lastMIDICCValue
      endif
    
      if _lastMIDICC = 104  // trigger mode
          Call @TriggerBypassToggle
      endif
    @End
    
    
    @OnMIDIInput
        // receives CC on any channel, perhaps should filter to note channel?
    
      if MIDICommand = 0xB0  // Cc message, byte2 contains 0-127 controller, byte3 contains value
        _lastMIDIChannel = MIDIChannel
        _lastMIDICC = MIDIByte2
        _lastMIDICCValue = MIDIByte3
    
        Call @OnReceiveMIDICC  // could use OnMIDIcc too...
      endif
    @End
    
    
    @OnShiftDown
      ShowLayout 4  // Description
    @End
    
    
    @OnShiftUp
      ShowLayout 2  // Pads
    @End
    
    
    @OnSysex
       SendSysexThru
    @End
    
  • @belldu - you can fix the code formatting problems in the post above by putting three back ticks on a line by themselves before and after the script. You've added two back ticks to the first line of the script but that won't do the job. When you type it, it should look like this:

    ```
    @Description
        ... rest of your code
    @OnSysex
    SendSysexThru
    @End
    ```
    
  • @wim said:
    @belldu - you can fix the code formatting problems in the post above by putting three back ticks on a line by themselves before and after the script. You've added two back ticks to the first line of the script but that won't do the job. When you type it, it should look like this:

    ```
    @Description
        ... rest of your code
    @OnSysex
    SendSysexThru
    @End
    ```
    

    Thanks, fixed, although make no promises that the code is any more legible :-)

Sign In or Register to comment.