AUDIOBUS

Connect your music apps


Introduction

Thank you for being a part of the Audiobus community! This manual should cover the basics, but if you have any questions or suggestions – or you just feel like hanging out – please join us over at the Audiobus forum.


Audiobus? Huh?

Audiobus is a music app that makes your other music apps...better. And it works with a thriving ecosystem of thousands of great music apps and Audio Units.

Audiobus Pipeline

Audiobus is like a set of virtual cables: you can plug one app into another, into another. With Audiobus you can, for example, take that great synth app or guitar amp app (or vuvuzela simulator. Hey, no judgement here.) and run it into your favourite live-looper or sampler, or a recorder like GarageBand.

And you can add some crunchy distortion or reverb along the way, with support for a huge host of great effect apps and Audio Units: chain them together to perfect your sound.

Audiobus works great with MIDI, too: drive your favourite synth from a sequencer or an arpeggiator, or from an external MIDI keyboard, with a scale quantizer added into the mix to keep you in tune, or add a MIDI based delay effect.

And with the Audiobus MIDI Learn in-app purchase, you can control everything from mixer levels through to preset loading and Audio Unit parameters from your external MIDI gear – or, another app.

Here are some things you can do with Audiobus:

  • Run your guitar into an amp simulator, then add a custom delay and reverb, and record the result into GarageBand.
  • Play a synth app into a live-looper app like Loopy.
  • Control a modular synth simulator app from a MIDI keyboard, through an arpeggiator.
  • Set up one set of effects for one song, and a totally different set for a different song, and use a MIDI pedal to switch between them.
  • Run vocals and guitar into your iPad, and apply different effects for each, then record each separate track live in a multi-track recorder, or record the mix in a live-looper – or, send each channel out separately through an external audio interface.
  • Use a MIDI sequencer Audio Unit to drive a synth, and a different one to drive a virtual drumkit, and keep it all perfectly synchronized with your external MIDI gear.
  • Use an LFO generator Audio Unit to drive the bandpass frequency parameter on an EQ effect, for a continuous sweep sound.
  • Create a ducker or sidechain compressor using an audio-envelope-to-MIDI utility tied to the audio level control of a bass synth, or the parameter on a compressor effect on its output.
  • So, so much more. Read on.

Getting Started #back to top

When you start Audiobus, you'll see three empty boxes with symbols in the middle. They are labelled INPUT, EFFECT and OUTPUT. Together, they make up a pipeline: the basic building block in Audiobus.

Audiobus Empty Pipeline

Audio or MIDI flows from the left to the right, and you can have as many items in the left (input) and center (effect) slots as you like.

Loading Things - #back to top

Tap one of the buttons to open a list of things that can go into that position:

  • Inputs like the device microphone, or a channel on an audio interface plugged into your iPad, a synthesizer app, guitar amp simulator app or drum machine. Or, a MIDI keyboard, step sequencer or Bluetooth MIDI guitar.
  • Effects like a delay, chorus, EQ or distortion, or a MIDI scaler or arpeggiator.
  • Outputs like a multi-track recorder or DAW, live-looper, sampler or a channel on an audio interface plugged into your iPad.

Some apps can appear in multiple positions – for example, a live-looper app can both send audio (i.e. in the input position), and receive audio (in the output position). See the Audiobus Compatible Apps Directory for an extensive database of compatible apps and where they can be used with Audiobus.

There are several categories of things that can be used, accessed by tabs running along the bottom of the pop-up:

  • Apps are full-sized applications you have installed which launch into the background and keep running during your Audiobus session.
  • Audio Units are smaller, modular parts of apps you have installed which load directly within Audiobus. You can use multiple instances of the same Audio Unit at once.
  • System features include audio inputs and outputs, connected audio or MIDI hardware, and other built-in components.
  • Favorites are items you have favourited by tapping the button in the toolbar, then tapping buttons alongside items in the list.

Some items have extended features, which can be accessed by tapping the button beside them.

You can select more than one input at a time, and these will be mixed together for the next stage in the pipeline. You can also have more than one effect: the audio will be passed from one to the next in the chain. You can reorder effects at any time by tapping and holding, then dragging into position.

Once you have selected an app or an Audio Unit, it will load and appear in the slot you tapped. It's now running and ready to send, manipulate or receive audio. Tap it any time to see its interface.

Some apps may require you to tap to launch them manually. You will be prompted to do so, and then returned back to Audiobus.

To remove things from the current session, tap the Eject icon icon beside them.

Ejected apps should suspend in the background, and thus no longer consume resources on your device. However, many apps do not respond correctly when removed from an Audiobus or Inter-App Audio session, and may continue to remain silently active in the background.

Audiobus will detect this condition and automatically quit these apps. In the event this fails, these apps will reappear in the Audiobus Connection Panel at the top of the screen. You can then switch to the app by tapping Switch to App icon and quit it manually.

Every now and then, apps can fail: It sucks, but it can happen. When Audiobus detects an error condition, it will display the app icon in black-and-white, and will attempt an automatic recovery procedure. If the error persists, Audiobus will prompt you to tap to restart the app. If this doesn't resolve the problem, feel free to get in touch.

Once you have a running pipeline, an active connection is indicated by flashing chevrons running between the slots.

On devices with enough space (iPad, or iPhone in landscape mode), a CPU meter appears on the top right of the screen. This provides an estimation of the amount of device resources being used for audio processing. As the indicator approaches 100%, the risk of audio drop-outs and audible crackles increases, so it is recommended to keep an eye on this number.

If you find yourself running out of CPU resources, you can increase the hardware buffer duration (see Settings for details), which gives your device more time to process audio, at the cost of increased latency.


You'll see three different tabs along the edge of the screen: AUDIO, MIDI and MIXER. These control different features within Audiobus.

The Audio Screen - #back to top

This is the default screen in Audiobus, and controls all of the audio routing: that is, things that actually do stuff with sound. It's here you add synths, guitar sims, drum machines, delays, EQs, autotuners, live-loopers and samplers, and it's here you select physical audio inputs and outputs.

Apps

Apps are full-sized applications you have installed which launch into the background and keep running during your Audiobus session. When you select an app in Audiobus, it will take a moment to load in the background; a loaded and ready status is indicated by a full-color icon.

You may run one instance of an app at a time, although an app may provide multiple ports of different kinds (accessed via the button in the selector) which can be used simultaneously. A live-looper like Loopy, for example, may be used in the output slot in order to receive audio, and simultaneously appear in the input slot for further audio processing at its output. It may also provide individual outputs for each track, so you can apply different effect chains to each, or use a multi-track recorder to record each track separately.

Apps that appear in the output position within Audiobus can be used in the output of more than one pipeline. If the app supports it, this will be sent to the receiving app as separate, independent streams which can be handled individually, such as in a multi-track recorder. Otherwise, the multiple streams will be automatically mixed together into a single stereo stream. In both cases, the levels and balance of the sources can be adjusted via the Mixer.

Tap the app icon to switch to the app once it is loaded.

Occasionally, usually due to a bug in the underlying iOS system, an app will fail to connect. When this error condition is detected, Audiobus will go into recovery mode and attempt to automatically quit and relaunch the app. When this completes successfully, the loaded and ready app will be shown in full-color.

Audio Units

Audio Units are smaller, modular parts of apps you have installed which load directly within Audiobus. You can use multiple instances of the same Audio Unit at once.

Audio Units' interfaces are displayed within Audiobus itself; tap the Audio Unit icon to access its interface. See Audio Units for more information.

Audio Hardware

Audiobus supports input and output via the built-in microphone and speaker, a headset, Bluetooth devices and class-compliant audio interfaces connected via a USB-to-Lightning adapter. These inputs and outputs can be found beneath the "System" tab in the selector.

For attached devices that support multiple input and output channels, these can be selected by tapping the disclosure buttons. Audiobus supports both mono and stereo combinations of channels, and will automatically convert mono to stereo, and vice versa.

For compatible inputs, the hardware input gain can be adjusted from within Audiobus' Settings.

If you have compatible hardware and have enabled Multiroute Audio in Audiobus' Settings, you can simultaneously receive and send audio with an audio device plugged into the headphone port, and a USB audio interface connected via the Lightning port. This can provide for separate monitor and house signals, for instance. Note that due to an iOS limitation, Bluetooth audio devices and AirPlay are not supported when this mode is enabled.

If you experience unexpectedly silent audio output, try disabling Multiroute Audio mode, as this can occasionally interfere with normal operation.

On some devices, for reasons unknown, audio input via the built-in and headset microphone is processed by the iOS audio system through a highpass filter, knocking out the lower frequencies. You may find enabling Measurement Mode improves bass response with your device. Your mileage may vary.

Upon selecting an input, Audiobus will typically auto-select the default output device. However, when using microphone input Audiobus won't automatically select the speaker output: you will need to select the output, and Audiobus may warn you about feedback.

Note that if you're using external hardware, it's up to you to watch out for feedback, just like with physical audio equipment.

Audiobus will always use the default sample rate of the connected device. Internally, Audiobus uses 32-bit floating-point audio for maximum fidelity and mixing headroom.

The MIDI Screen - #back to top

Audiobus' MIDI screen allows you to control the flow of MIDI – that is, note information which is used by synthesizers to produce sound.

Items in the input slot produce MIDI – this includes external MIDI equipment, MIDI sequencer apps and Audio Units, and audio-to-MIDI utilities, for example. Things in the effect slot manipulate MIDI, like scalers, quantizers or arpeggiators. Things in the output slot receive MIDI, like synthesizers and other virtual instruments.

Many apps and Audio Units are used on the Audio and the MIDI screens at the same time. For example, a synthesizer which receives MIDI and generates audio, or an audio-to-MIDI utility which generates MIDI notes in response to incoming audio.

Apps

Audiobus defines its own MIDI standard which avoids the various usability issues of the built-in MIDI system on iOS, and allows the seamless connection of MIDI senders, effects and receivers from within Audiobus.

Upon selection, apps will take a moment to load; a loaded and ready status is indicated by a full-color icon.

Occasionally, due to a bug in the underlying iOS system, an app will fail to connect. When this error condition is detected, Audiobus will go into recovery mode and attempt to automatically quit and relaunch the app. When this completes successfully, the loaded and ready app will be shown in full-color.

Not all apps that are capable of MIDI support Audiobus' MIDI standard. These can still be used via Audiobus' Virtual MIDI features; see below for details.

Audio Units

Audiobus also supports Audio Unit MIDI; see the list of installed Audio Units that support sending or processing MIDI on the "Audio Units" tab on the selector.

You can run more than one instance of the same Audio Unit. Instances operate entirely independently of each other.

Both Audiobus MIDI and the Audio Unit MIDI standards replace the old notion of MIDI channels with more clearly defined ports, which when available, are accessible via the button in the selector. You can still select MIDI ports for MIDI hardware and Virtual MIDI ports.

MIDI Devices

MIDI hardware which is connected via a USB-to-Lightning adapter or via Bluetooth appears within the "System" tab.

Select specific MIDI channels to receive from, or send to, by tapping the button. By default, Audiobus will receive from all channels, and will pass through the MIDI channel of messages unmodified. By selecting a specific MIDI channel, Audiobus will filter out any messages not on that channel, and will remap outgoing messages to that channel.

Connect to Bluetooth MIDI hardware by tapping "Bluetooth Connections". Upon connection, this hardware will appear within the "MIDI Devices" list.

You can also facilitate incoming Bluetooth connections by tapping "Bluetooth Advertising". When you enable advertisement by enabling the "Advertise MIDI Service" switch beneath this item, other devices will be able to see and connect to your device.

Network MIDI

Other computers and devices that support Network MIDI, including other iPads or iPhones running Audiobus, appear within the "System" tab.

Note that due to the limitations of the underlying Core MIDI standard provided by iOS, network MIDI devices all use the same internal MIDI endpoint (sometimes seen in other apps as "Network Session 1"), and it is impossible to target just one device for sending or receiving MIDI. This means that if you have selected more than one network MIDI device in the input position, incoming messages will appear to come from all network MIDI sources at once. Similarly, with more than one network MIDI device in the output position, messages will be sent to all network MIDI devices at once.

To work around this limitation, use MIDI Channels to differentiate devices, accessible via the button in the selector. By default, Audiobus will receive from all channels, and will pass through the MIDI channel of messages unmodified. By selecting a specific MIDI channel, Audiobus will filter out any messages not on that channel, and will remap outgoing messages to that channel.

Virtual MIDI

Apps which do not support the Audiobus MIDI or Audio Unit MIDI standards, but still work with basic Core MIDI, can still be accessed via the "Virtual MIDI" section within the "System" tab when they are running. Apps which publish a Virtual MIDI port appear within this list. Audiobus also provides its own Virtual MIDI Bridge port, which will appear as a MIDI source or destination (named "Audiobus 3") within apps that use Core MIDI only.

Core MIDI setup can be confusing as there are frequently multiple, mutually-exclusive ways to connect two apps, and how setup is performed varies between apps. It is always preferable to use Audiobus MIDI or Audio Unit MIDI where available.

Connections can often be made from either side of a connection: by selecting the source app from within Audiobus' Virtual MIDI list, or by choosing "Audiobus 3" as a destination from within the source app. When doing the latter, you must select "Virtual MIDI Bridge" within Audiobus instead of selecting the port named after the source app.

Care must be taken when working with such apps and other MIDI sources, as they may perform their own automatic MIDI routing in the background, which can have unpredictable results. If you are experiencing unexpected results like doubled notes, ensure MIDI inputs are disabled within the settings of the app in question.

Select specific MIDI channels to receive from, or send to, by tapping the button. By default, Audiobus will receive from all channels, and will pass through the MIDI channel of messages unmodified. By selecting a specific MIDI channel, Audiobus will filter out any messages not on that channel, and will remap outgoing messages to that channel.


Also appearing within the "System" tab for the output slot is the MIDI Learn port, used for controlling other aspects of the Audiobus session from incoming MIDI messages. See MIDI Learn for details on this feature.

Audiobus also supports MIDI clock receiving and sending, which is configured from Audiobus' Settings. See Synchronization for details.

The Mixer Screen - #back to top

The Audiobus mixer provides controls to adjust the levels and balance of all audio and MIDI sources and effects.

  • Level Adjust the audio level slider for audio and MIDI sources, from silence, up to +24dB. Tap and slide to adjust the level, or double-tap to reset the level to 0dB (unmodified level). Behind the level slider is a level meter, with a marker for average level which indicates clipping by switching to a red color. For MIDI sources, the velocity of notes will be modified according to the set level.
  • Balance The circular balance knob is immediately beneath the level slider and controls the gain of the left and right audio channels. Tap and slide to adjust the balance, and double-tap to reset to center.
  • Wet For audio effects, modify the dry/wet mix of the effect. At 100% dry (dial moved to left), the original signal is heard unmodified. At 100% wet (dial moved to right, the default position) the modified signal is heard.
  • Mute Tap to toggle mute for the source. Muted MIDI sources will maintain held nodes until they are released – then, new notes will be muted.
  • Solo Tap to mute all other sources except this one. Tapping "Solo" for more than one source will cause these sources to be audible.
  • Toggle play/pause for the source.
  • Audition a synth app or Audio Unit by playing a series of notes.
  • Bypass Toggle bypass for an audio or MIDI effect. While enabled, audio or MIDI will be passed through without modification.
  • Icon Tap the app or Audio Unit icon at the bottom to switch to the UI of that item.

Every feature of Audiobus' mixer can be controlled by an external MIDI controller or other MIDI source such as an LFO generator or sequencer, using the Audiobus MIDI Learn In-App Purchase. See MIDI Learn for details.

The Connection Panel - #back to top

The Audiobus Connection Panel appears at the top of the screen in Audiobus on devices with enough room (iPad, or iPhone in landscape mode), and provides access to a range of controls for each app and Audio Unit in use.

Apps can provide their own buttons to perform tasks specific to the app in question, and there are a number of common buttons:

App iconTap an app icon to expand or contract the controls for that app/Audio Unit.
Switch to App iconSwitch to an app, or open the interface for an Audio Unit.
ON
OFF
Toggle bypass for effect apps and Audio Units, switching between modified and original audio.
Play icon Toggle transport play/pause for the app.
Record iconToggle recording.

The Connection Panel also appears within each app used with Audiobus, and works as a remote control for the other apps in the session, as well as a means to switch between apps.

This panel can be hidden if necessary by tapping the or button, or tapping and swiping from this button. Bring the panel back by swiping back in from off the screen, then tapping and dragging the small handle that appears.

Connection Panel animation Hiding and showing the Connection Panel

Every element on the Audiobus Connection Panel can be controlled by an external MIDI controller such as a foot switch, using the Audiobus MIDI Learn In-App Purchase. See MIDI Learn for details.

The Toolbar - #back to top

The Audiobus toolbar provides access to transport play and pause, tempo controls, and other features:

Play/Pause icon Toggle play and pause.
120 Adjust the current tempo using a number pad, or tap out a tempo.
Settings iconOpen the app's settings. See Settings.
MIDI Learn iconOpen MIDI Learn configuration. See MIDI Learn
Audiobus Remote iconOpen Audiobus Remote if it is installed on your device. See Audiobus Remote for details.
New session iconStart a new session. This will reset the session to a blank state.
Presets iconOpen the Presets selector. Audiobus' presets feature allows you to save the state of an Audiobus session, and the state of every app and Audio Unit within it. See Presets for more information.

Presets #back to top

Audiobus supports session saving with presets. When you load a preset, the entire session is recalled, along with the saved state of each component.

To access the presets panel, tap the Presets icon icon on the toolbar.

Tap "New Preset" to create a preset from your current session. Audiobus will generate a name automatically, and the new preset will appear in the list.

You can also create a new preset from the Connection Panel by tapping the Audiobus icon to open its controls and tapping Add Preset icon. The same control exists on the Audio Unit screens.

  • To rename the preset, tap Rename.
  • To update it with new changes, tap Save.
  • To export it or share it with others, tap Share: you can save the preset to Files, Dropbox or other storage facilities; AirDrop it to another device, or tap "Upload" to upload the preset: a URL will be provided for sharing (this is particularly useful for sharing on the Audiobus forum!).

Tap a preset in the list to display the available actions:

  • Load to open the preset, replacing the current session and discarding any changes made to it.
  • Add to add the contents of the preset to the current session (see Preset Addition below).
  • Rename and Share as above.

To delete a preset, swipe left and tap the Delete button.

Presets can also be imported or exported via iTunes File sharing (using older iTunes versions, or an app like iExplorer or iFunbox).

iOS Files/iCloud support is coming to Audiobus soon, along with folder management and enhanced preset export.

Tap to search for presets. Tap Name and Date under "Order By" to change the sorting of the list.

Presets can be loaded using a MIDI controller such as a foot switch, using Audiobus MIDI Learn. See MIDI Learn for details.

State Saving - #back to top

An exclusive feature of the Audiobus platform is Audiobus State Saving. This provides apps the ability to save and restore their configuration within Audiobus presets.

When an Audiobus preset is loaded, the saved state within is sent to participating apps, which restore the configuration.

See a list of apps which support Audiobus State Saving on the Compatible Apps Directory.

You may disable Audiobus State Saving from the Audiobus category beneath the System Settings app. See Advanced Settings for details.

Audio Units automatically support saving and restoring of state, which Audiobus also supports, along with Audio Unit factory presets and Audio Unit user presets (see Audio Unit Factory and User Presets for details).

Preset Addition - #back to top

Audiobus presets can be added together, providing for presets to be used like a library of commonly-used components.

Tap Add beside a preset to add its contents to the current session. The pipelines saved within the selected preset will be added to the current session's configuration.

Any Audio Units used within the added preset will have new instances created, so the new pipelines can be run alongside the ones in the current session seamlessly. Additionally, any MIDI Learn configuration stored within the preset will be imported.

Audio Units #back to top

Audiobus supports the Audio Unit standard on iOS. Audio Units are smaller, modular parts of apps you have installed which load directly within Audiobus and other host apps.

The Audio Unit Screen - #back to top

After loading an Audio Unit within Audiobus, the user interface for the Audio Unit can be opened by tapping the icon on the main screen, or by tapping Switch to App icon beside the Audio Unit's icon on the Audiobus Connection Panel.

The Audio Unit screen will display the interface for the Audio Unit as well as an on-screen keyboard, if the Audio Unit in question supports MIDI input.

The toolbar at the top displays the following:

Play/Pause icon Toggle play and pause.
120 Adjust the current tempo using a number pad, or tap out a tempo.
Add Preset iconCreate or save Audiobus preset
Keyboard toggle iconToggle keyboard, when available. When the keyboard is hidden, the Audio Unit view can take up the full screen height, if supported by the Audio Unit.

On devices with enough room (iPad, and iPhone in landscape), the Connection Panel appears on the right of the toolbar.

Depending on whether the on-screen keyboard is visible, the Audio Unit Preset selector is shown on the top toolbar or the keyboard toolbar, when enough room is available. See Factory and User Presets below for details.

The On-Screen Keyboard - #back to top

If an Audio Unit supports MIDI input, an on-screen keyboard will be available from within the Audio Unit screen. Depending on the interface preferences determined by the Audio Unit, the keyboard may be shown or hidden by default.

The keyboard provides velocity control by pressing towards the top or bottom of keys, and an adjustable range which can be set by unlocking the keyboard with the Keyboard lock icon button, then swiping or pinching, or by tapping the and buttons.

The following items appear on the toolbar above the keyboard:

HOLD Toggle hold, which continues holding keys after you release them. Held notes are saved in Audiobus presets and restored upon load.
PresetsWhen sufficient room is available on the toolbar (iPad and iPhone landscape), the presets selector is visible and provides access to factory and user presets. See below for details.
Move the keyboard up or down an octave.
Keyboard lock iconToggle keyboard lock. When unlocked, the keyboard can be dragged left or right and pinched to change the visible range.
Keyboard toggle iconToggle keyboard. When the keyboard is hidden, the Audio Unit view can take up the full screen height, if supported by the Audio Unit.

Factory and User Presets - #back to top

Audio Units can provide a set of configurations accessible via the "Presets" selector above the Audiobus keyboard, or on the top toolbar of the Audio Unit screen.

Audio Unit presets differ from Audiobus presets in that they are specific to the individual Audio Unit.

You can create your own Audio Unit presets by tapping the "Save" button at the top of the Audio Unit preset selector; the current state of the Audio Unit will be saved to this preset, and restored upon loading it again.

Audio Unit user presets, as well as factory presets, remain available across Audiobus sessions.

You can load Audio Unit factory and user presets via a MIDI controller using MIDI Learn.

Multiple Instances - #back to top

Unlike apps, Audio Units are entirely loaded and run within Audiobus. This means that they can be loaded multiple times, and so you can have more than one instance performing different tasks.

After you have loaded an Audio Unit into your Audiobus session, the next time you select the same Audio Unit from the selector, you will be presented with a "New Instance" item. Selecting this will load a brand new, independent instance of the Audio Unit.

Instances are identified by a letter of the alphabet, and appear alongside each other in the Audiobus Connection panel.

Secondary Ports - #back to top

Some Audio Units may provide more than one output. Like apps with similar abilities, Audio Units with multiple outputs are displayed in the selector with a icon. Tapping the Audio Unit reveals the available ports.

Due to limitations in the underlying iOS implementation of this feature, these ports become available only once the Audio Unit in question is loaded. Upon loading, the next time the Audio Unit is shown in the selector, the secondary ports will be visible.

This will change in an upcoming Audiobus release, which will incorporate the ability to remember secondary ports and display them in advance of loading the Audio Unit.

At present, Audiobus supports only additional MIDI outputs, not secondary audio inputs and outputs. Only the first audio input and audio output will be used by Audiobus at this time. This too will change in an upcoming release.

MIDI Learn #back to top

Audiobus MIDI Learn allows you to control every aspect of your Audiobus session, and all apps and Audio Units that are part of it, using MIDI: from a USB or Bluetooth MIDI controller like a foot switch, or from another app or Audio Unit.

With MIDI Learn, you can, for example:

  • Adjust the levels and balance of each source in your Audiobus session.
  • Toggle mute and solo for any source, or toggle bypass for any effect.
  • Toggle play and pause, or tap out a tempo.
  • Adjust a parameter of an Audio Unit, like the center frequency of an EQ, or the frequency parameter of a VCO module.
  • Simultaneously apply a set of adjustments to levels and parameters with one button press.
  • Switch between apps or Audio Units.
  • Trigger app-specific functions accessible via the Audiobus Connection Panel or Audiobus Remote.
  • Step through saved presets.
  • Stack actions by binding several different ones to the same trigger to create complex and sophisticated actions.

MIDI Learn is a modestly-priced In-App Purchase available from within the Audiobus app.


Configuring MIDI Learn is the process of making bindings between incoming MIDI events, like foot switch presses, dial adjustments or incoming oscillator signals (see Triggers), to actions within your Audiobus session, like muting an app or adjusting an Audio Unit parameter (see Actions). You can bind more than one action to a trigger, in order to create composite actions.

To access MIDI Learn setup, tap the MIDI Learn icon button on the Audiobus toolbar.

The first time you open MIDI Learn setup, you will be presented with a short introduction, and a prompt to buy the In-App Purchase. If you would like to evaluate before purchasing, you can simply close this prompt and continue to explore the setup process; however, actions will not be performed in response to MIDI events until the In-App Purchase is unlocked by tapping the "Buy" button at the top right.

If you have already purchased the feature, you will not be charged a second time; you can also use the "Restore Purchases" button in Settings to unlock the feature.

Open opening MIDI Learn setup, the screen will dim, leaving highlighted the items on screen that you can bind actions to.

Along the top of the screen are a number of controls:

PROFILESAccess and manage profiles (see below).
Manage Bluetooth connections.
DONELeave the MIDI Learn setup screen.

Profiles - #back to top

MIDI Learn configurations are stored within profiles, which are accessed from the "Profiles" button at the top right of the MIDI Learn screen.

Each Audiobus preset has a profile, which loads automatically when you load the preset. Thus, you can have MIDI Learn configurations specific to each preset.

You can also have any number of "Global Profiles" which, once opened, remain active across sessions. This allows you to have configurations that work regardless of what preset is opened.

When configuring MIDI Learn, you can select whether to edit the current preset's profile – labelled "Current Preset" within the Profiles selector – or whether to edit a global profile, under the "Global Profiles" heading. The profile currently being edited is highlighted with a blue background.

The currently-active global profile is displayed with a check mark on the right. This means the bindings configured within this profile are active.

Aside from editing, a number of actions can be performed on the selected profile:

RENAMEEdit the name of the preset.
COPYDuplicate the preset to a new entry.
SHAREExport and share the preset.

Create a new global profile by tapping "New Profile" in the top right of the Profiles selector.

Setup - #back to top

To add your first MIDI Learn binding, tap any of the undimmed user interface elements on the main MIDI Learn setup screen. A pop-over will be displayed with the name of the action. For elements with multiple possible actions, a list of these will appear: Tap the action you wish to create a binding for.

MIDI Learn binding interface MIDI Learn Action Pop-Over

When the action pop-over is showing the "Listening for MIDI" text, Audiobus is listening for incoming MIDI signals from any connected device. Once an incoming MIDI message is received, it will be set as the configured trigger.

You can also manually define a trigger by tapping in the bottom area of the action pop-over. You will then be prompted to select a MIDI source, a type of MIDI message and other parameters. See Triggers below for more info on triggers.

Once a trigger has been set, it is shown at the bottom area of the action pop-over. Tap it to edit the trigger, or tap to clear the binding and start over. Once you have cleared a trigger, you can tap "Learn" to go back into listening mode, or "Setup" to manually setup a trigger.

Many actions have additional parameters, which are displayed on this screen. For example, the Mute/Unmute action can be configured to operate in toggle mode, to mute, or to unmute, and the Adjust Parameter action can jump to a pre-set value, or increment or decrement by a pre-set amount. See Actions below for more info on actions.

You can create bindings for multiple actions, so that each configured action is performed at the same time when the trigger occurs. Audiobus will display a summary of any other actions currently bound to the same trigger at the bottom of the action pop-over. Tap this area to view and configure each of the other actions.

You can also create multiple variants of the same action, which can be assigned to different triggers. To create a new action, tap "New" at the top right; a brand new action screen will be displayed, which can be configured independently from the original.

MIDI Learn Receiver - #back to top

Audiobus provides a special MIDI output which allows one to drive the MIDI Learn system from the output of any app or Audio Unit MIDI source. For instance, one can use an LFO generator Audio Unit to drive the parameter of an effect Audio Unit to create a sweep effect, or use an audio-envelope-to-MIDI Audio Unit to control the gain of an audio source, for a ducker/sidechain compression effect.

To use the Audiobus MIDI Learn Receiver, tap the button for the output slot of a MIDI pipeline, and then from the System tab, select MIDI Learn icon MIDI Learn.

Then tap the large MIDI Learn icon icon in the output slot to enter MIDI Learn setup for that MIDI Learn Receiver.

Configured MIDI bindings for MIDI Learn Receivers are always stored within the Audiobus preset.

Triggers - #back to top

Audiobus MIDI Learn actions can be triggered by:

  • MIDI Control Change (CC) messages
  • MIDI Program Change (PC) messages
  • MIDI Notes

Using the training mode is the easiest way to choose a trigger when creating a new binding: as soon as the action pop-over is displayed, Audiobus is listening for incoming MIDI messages from all possible sources.

If you wish to choose a trigger manually, however, you can tap the bottom area of the action pop-over to display the trigger selector.

MIDI Learn trigger interface Manual Trigger Selection

You will be prompted for a MIDI source, a message type, and other parameters depending on the kind of message selected, and the kind of action being bound.

You can also use the trigger selection interface to fine-tune your trigger after using the automatic training mode. In particular, you may wish to adjust the trigger action, or the CC range. Tap in the bottom area of the action pop-over to access trigger configuration.

For actions that are momentary in nature, such as muting or unmuting, or toggling play/pause, the following actions are available for MIDI CC and Note messages:

  • Press Action will be performed on non-zero CC value or Note On. For momentary controls (see below), this is the default action.
  • Release Action will be performed on zero CC value or Note Off.
  • Toggle Action will be performed with every incoming message. For incoming CC messages, the state of the trigger will be taken from the CC value. For example, for a mute action, the target will be muted on value 0, and unmuted for any nonzero value. For toggle controls (see below), this is the default action.
  • Hold Action will be performed after trigger is held for a moment.
  • Double Tap Action will be performed after trigger is tapped twice in a short interval.

Foot switches and MIDI controller buttons can operate in either toggle mode or momentary mode. In toggle mode, the first press sends a non-zero CC value, and the second press sends a zero value. In momentary mode, the press will send a non-zero CC value, and the release will send a zero value.

Audiobus will detect this and automatically select the "Toggle" action or the "Press" action for bindings, depending on whether the controller is detected in toggle or momentary mode.

For continuous actions, such as Audio Unit parameter adjustments or volume adjustments, you can select the source CC range for the action. This determines the range of incoming CC values that will be mapped to the full range of the action.

To reset the trigger, tap "Clear" at the top right; Audiobus will return to the action pop-over and re-enter training mode.

Actions - #back to top

Audiobus provides actions to control almost every aspect of a session.

Continuous Actions

Some actions provide adjustment of a continuous parameter, like gain or an Audio Unit parameter. These allow you to define how the adjustment is made:

  • Adjust Continuously Using a CC knob control, adjust the value across a given range. You can adjust the range, including inverting the direction of movement, and you can enable Pick-Up Mode which will avoid jumps in value by waiting until the incoming value matches the current value.
  • Assign Value On triggering, assigns a fixed value to the parameter.
  • Nudge Value On triggering, increases or decreases the current value by some fixed amount.

Toggle Actions

Other actions will toggle state, such as muting or unmuting an audio source, turning on or off an effect, or toggling play/pause. These actions can operate in one of three modes:

  • Toggle Toggle the parameter. For incoming CC or Note toggle actions, the state is taken from the MIDI value if you specify a Toggle Trigger.
  • On The state is set to enabled (e.g. playing, or unmuted).
  • Off The state is set to disabled (e.g. paused, or muted).

Here is a complete list of the available actions.

Mixer

  • Mute/Unmute Control the mute status of any audio source.
  • Solo/Un-solo Control the solo status of any audio source. You can solo multiple audio sources: these will play, while any un-soloed source remains silent.
  • Gain Adjust the volume of the source.
  • Pan Adjust the pan of the source.
  • Dry/Wet For effects, adjust the ratio of modified to original signal.
  • Bypass For effects, set whether the effect is active or not.

Audio Units

  • Adjust Parameter Modify the value of an Audio Unit parameter.
  • Load Preset Load a Factory or User Audio Unit preset.
  • Send MIDI Message Select a MIDI message to send to an Audio Unit. This can be useful for triggering Audio Unit-specific state changes.

Apps

  • Switch To Switch to an app.
  • Play/Pause For apps that provide a Play/Pause trigger, activates Play/Pause.
  • Activate Connection Panel Trigger Activates any Connection Panel trigger.
  • Activate Remote Trigger Activates any Remote trigger.

Session

  • Play/Pause Toggles between play or pause of Audiobus' own transport.
  • Tempo Adjust the current tempo: assign a specific tempo, nudge up or down, adjust continuously, or tap out a tempo.
  • Load Preset Load a specific preset, or load the next or previous preset in the list.

Synchronization #back to top

Synchronization is used to keep participating apps, Audio Units and external devices in time. Audiobus supports four kinds of clock sync:

  • Ableton Link, a technology developed by Ableton that provides highly accurate and reliable synchronization with independent and quantized transport controls for each participant, so that starting any connected app or device will always occur in sync.
  • MIDI Clock Sync, a widely-used and established standard for synchronization built into most MIDI hardware and available in many apps.
  • Inter-App Audio Sync, a mechanism built into iOS which allows an Inter-App Audio host like Audiobus to provide synchronization to loaded apps.
  • Audiobus App Start/Stop, a simple transport sync mechanism that uses apps' Connection Panel play/pause triggers to start or stop apps in sync with Audiobus' transport changes.

Audiobus' synchronization settings can be found within Settings, which can be reached by tapping the Settings icon icon on Audiobus' main screen, then selecting Sync Settings.

Ableton Link is the recommended sync mechanism, due to its robustness and feature set. In Audiobus, Ableton Link is turned on by default, and – unique to Audiobus – will automatically enable Link in any apps used within an Audiobus session.

Apps connected via Link will all share a common timeline, and can start and stop at any time without affecting other apps – they will start at the next bar, or whatever interval they have selected. This differs from other sync mechanisms, which tend to lock transport (i.e. play/stop) state across participants.

You can also enable Link Start Stop Sync from within the Link settings of each app, including Audiobus, and this will cause transport state changes to be synchronized across apps that also have Start Stop Sync enabled.

Note that by default Audiobus App Start/Stop is also enabled, so if you have enabled Link Start Stop Sync within Audiobus, Audiobus will automatically synchronise transport state with connected apps, even if they do not support Start Stop Sync themselves.

You can set the Quantize Duration on the Sync Settings screen in Audiobus; this duration will determine at what sync intervals Audiobus transport start/stop will occur. For example, if you set it to 4 bars, Audiobus will wait until the shared timeline reaches a 4 bar boundary before starting play.

MIDI Clock Sync - #back to top

MIDI Clock Sync is a standard which is very well established throughout the music tech world: most MIDI devices that have transport controls will also support MIDI sync, and many apps also support it.

Audiobus can act as a MIDI clock receiver (a.k.a. "slave"), or a sender ("master"). This is particularly useful for providing sync with external MIDI hardware, or apps that don't support any other sync standard.

Audiobus provides offset adjustments in both receive and send mode, allowing for fine tuning synchronization as needed.

When used in conjunction with Link, Audiobus' MIDI sync feature will act as a bridge between the two systems.

Note that, unlike Ableton Link or Inter-App Audio Sync, MIDI sync can have reliability issues as it is vulnerable to unreliable connections (such as Bluetooth), and other sources of noise. Audiobus has a sophisticated receiver which applies a range of techniques to minimise jitter and maximise accuracy, but in extremely adverse conditions, there may be some sync inaccuracy.

If you are experiencing unreasonably inaccurate incoming clock sync with Audiobus, you can send in a recording of incoming MIDI data for diagnosis: enable Diagnostic Mode, then reproduce the issue. Then tap "Get Support" in Audiobus' in-app settings to send in a log (requires outgoing email setup on your device).

Inter-App Audio Sync - #back to top

iOS provides a built in mechanism for syncing an app hosted via Inter-App Audio with the host app. Audiobus provides sync via this mechanism by default.

Note that not all apps support syncing via this method.

Audiobus App Start/Stop - #back to top

Audiobus uses the play/pause Connection Panel triggers for apps that provide them to sync the transport state with its own; starting Audiobus' transport will cause any available play/pause triggers to be activated.

If you experience problems with any apps' transport state sync when combining this with other sync methods, try disabling this setting.

Settings #back to top

To access Audiobus' settings, tap the Settings icon icon on the main screen. The following settings are available here.

Latency Control - #back to top

Adjusts the system hardware buffer duration. This allows you to select the amount of audio that is rendered in each processing cycle, which is a trade-off between responsiveness and processing demands.

A small latency, like 64 or 128 frames, provides very fast response with near-inaudible latency, but places a higher demand on the device's processor. A higher latency results in more laggy-sounding audio, but is easier on the processor.

If you find your audio glitching with complex setups, then try increasing the latency.

Audiobus needs to have control over the audio session in order to be able to modify this property. To ensure this, make sure Audiobus is the first audio app you open at the beginning of your session.

Sample Rate - #back to top

Adjusts the hardware sample rate, if available.

Audiobus needs to have control over the audio session in order to be able to modify this property. To ensure this, make sure Audiobus is the first audio app you open at the beginning of your session.

Note that most audio devices only offer support for a limited number of sample rates. If a selected sample rate is not supported by the hardware, it will display an "Unavailable" notice upon selection.

Multiroute Audio - #back to top

With Multiroute Audio mode you can use an audio device plugged into the headphone port (on iOS devices that still have one) simultaneously with a USB audio interface connected via the Lightning port. This can provide for separate monitor and house signals, for instance.

Note that due to an iOS limitation, Bluetooth audio devices and AirPlay are not supported when this mode is enabled.

Input Gain - #back to top

Some audio inputs allow you to adjust the input gain levels. When available, this setting provides access to this system-level configuration.

Sync Settings - #back to top

See Synchronization for details.


Advanced Settings - #back to top

More advanced, and rarely used, settings are available in the iOS Settings app, under "Audiobus 3":

  • Preset State Saving When enabled, Audiobus will store and recall state of compatible apps. If you would prefer not to modify the state of apps, you can turn this feature off here.
  • Feedback Warnings When you have no headset or USB audio interface connected to your device, Audiobus can warn you when it detects the possibility of a feedback loop (microphone to speaker). Turn this off to skip the warnings. Mind your ears!
  • Core MIDI Safe Warnings Some apps that haven't been updated in a while may not have measures in place to avoid certain MIDI issues like double notes. Audiobus can detect this and warn you in situations where this might be a problem. Turn this off to skip the warning.
  • Diagnostic Mode Enable this to have Audiobus gather more information while it is running; when you tap "Get Support" in Audiobus' settings, this extra info will be sent in for diagnosis of issues.
  • Measurement Mode On some devices, for reasons unknown, audio input via the built-in and headset microphone is processed by the iOS audio system through a highpass filter, knocking out the lower frequencies. Turning on the Measurement Mode system feature may bypass this effect, improving bass response. This is an undocumented and poorly-understood iOS feature, and it may or may not work for you.

Getting Help #back to top

Sometimes, things can go wrong: yeah, it sucks – but I'm here to help. Oh, hi, by the way - I'm Michael, the developer of Audiobus, and I'm generally pretty reachable and keen to solve any issues that arise.

Troubleshooting - #back to top

First, if you're having trouble, there are a couple of common things to try first:

  • Check "Local Network" Permissions - on iOS 14, apps now need your permission to talk to each other; you should see a dialog requesting permission the first time using any Audiobus-compatible app. Failing that, you’ll need to manually enable Local Network permissions for that app (and maybe Audiobus too) - find it in the system settings app, in the section for the app in question, then turn on the switch beside Local Network. If you don't see this option, then the app has probably not yet been updated to support iOS 14: please contact the developer of the app and urge them to update, or contact me for help reaching them.
  • Reboot – sometimes iOS, or other apps, can get into a bit of a state. Often the simplest remedy is the best: turn it off and turn it back on again.
  • Power-cycle other hardware – if you're using an external audio interface, for instance, then unplug it and plug it back in.
  • Update apps – make sure the apps you're using are all up to date, unless you're deliberately keeping a device static.

Also, take a look at these known issues:

  • Audiobus crashes – it's still worth getting in touch if this happens to you, but by far the most common cause is an iOS bug related to IAA and Audio Unit discovery, often around installing or removing apps. The fix from Apple is apparently on its way, but we don't have a timeline. Nothing for it but to just start up Audiobus again, for now, and try to stay out of the app/Audio Unit selector when in mission-critical situations.
  • Audiobus hangs on launch, then dumps out to home screen – this is probably due to a new iOS bug that has appeared somewhere around iOS 12.2, related to Core MIDI. Reboot your device, and you should be good to go.
  • An app starts buzzing – this is another iOS bug, but there's a workaround which developers can implement. Get in touch with the app's developer and ask them to look into it, and to update to the latest Audiobus SDK.
  • An app spends a lot of time "Recovering" – you guessed it, another iOS bug, but again there are workarounds: try contacting the developer of the app and asking them to update to the latest Audiobus SDK, for starters.

If none of that solves it for you, there are a number of ways to get help.

Audiobus Forum - #back to top

If you've got questions about workflow, or third-party apps or hardware, the best place to go is probably the Audiobus Forum. This is a very welcoming and active community of iOS musicians, pros and hobbyists, and you're near certain to get a helpful and friendly reply fast. I hang out there too, as @Michael – just @ me to get my attention.

The forum's also a great place to meet other musicians, share your creations and get feedback, discuss other apps and tech and a bunch of other stuff. Drop by, say hello!

Get Support - #back to top

If you're actually experiencing some issues with Audiobus, you can contact me directly via the "Get Support" feature in the app – just tap Settings icon on the main screen, and then "Get Support", and it'll open a new message window with some diagnostic stuff attached (this does require your device to be able to send outgoing email).

Chances are I may ask you to turn on Diagnostic Mode in order to gather a bit more info about what's happening for you – I'd recommend turning this on, and then reproducing your issue immediately before using "Get Support", to give me the best chance to figure out what's happening straight away.

Reporting Crashes - #back to top

If Audiobus or another third-party app is crashing, and dumping you back to the home screen, it would be very helpful to see the associated crash log so that I or the developer of the third-party app can fix the issue. While we may get anonymized versions of these in a big lump, it can be difficult to tie certain events to individual crashes, which is necessary for nailing a bug.

If you're up for it, finding and sending me a crash log can go a long way towards solving the crash. Here's how to find and send them in:

  1. Open the Settings app
  2. Find Privacy, then Analytics, Analytics Data
  3. Look for entries with the app name (i.e. Audiobus, if it's AB that crashed), with the date/time that matches when you saw the crash. Note that any entries with "wakeups" in the name aren't actually crashes, but another kind of log that isn't much use for diagnosis: Ignore those ones.
  4. Select the entry, then select all the text by holding your finger at the top, then dragging the blue handle all the way to the bottom.
  5. Tap “Share” on the callout that appears, and then paste the contents into an email to [email protected].

Sysdiagnose - #back to top

In some cases, it can be helpful to see some more diagnostics from your device, and I may ask you to send a sysdiagnose. Sysdiagnose is a built-in iOS utility which records a variety of diagnostic information to a file that can be sent to Apple or to developers.

To provide a sysdiagnose:

  1. Simultaneously press and release both volume buttons + sleep/wake (power) button. The sysdiagnose is triggered upon button release; you won’t see or hear anything (iPhone will vibrate), but it’ll be running in the background.
  2. Wait 10 minutes for the diagnostic gathering to complete.
  3. Open Settings, and find Privacy, Analytics, Analytics Data, then search for the sysdiagnose entry in the list. It'll start with "sysdiagnose"; the list is alphabetically sorted, so scroll down a bit.
  4. Tap the entry, then tap the share button at the top, and email the file to me. The file is quite large so I recommend doing this on WiFi. If the email setup won’t send the file, we might need to work out an alternative, like using Dropbox instead.

What's New in Audiobus 3.4 #back to top

Audiobus 3.4 is a release that focuses on improving workflow, and removing constraints.

3.4 brings lots of improvements and new features to the MIDI Learn system introduced in version 3.3. There's the new MIDI Learn Receiver, which sits at the output of any MIDI pipeline. It's great for controlling parameters from the output of audio units and apps, like LFOs and envelope-following audio units like FAC Evolver.

Creating a ducker with MIDI Learn Receiver Creating a ducker with MIDI Learn Receiver

You can now adjust the range for parameter adjustment actions, as well as the range of incoming CC messages, and there are more options for toggle actions like mute/unmute, including the ability to invert the incoming value from a CC. The latter can be useful for pairing up more than one action on the same trigger, like switching between two different effects by bypassing one, and un-bypassing another.

Range selector for MIDI Learn actions Range selector
Toggle settings for MIDI Learn actions Toggle options
Trigger settings for MIDI Learn actions Trigger selection

There's a new "Add" button for appending presets to your current session, so you can use presets like reusable components. It's particularly great with Audio Units.

You can now sync external MIDI gear with MIDI Sync: Audiobus works as either MIDI master or slave. It also seamlessly bridges between MIDI Sync and Ableton Link. It's got a configurable offset feature, so you can correct any sync discrepancies that come up. And it works with Virtual MIDI, so you can sync with those apps that don't yet support Link or IAA sync.

Speaking of Virtual MIDI, there's a new Virtual MIDI Bridge input which joins the Virtual MIDI bridge output introduced in the last update. This is great for interacting with apps that support neither IAA nor Audiobus MIDI standards.

Audiobus now does Audio Unit user presets. Audio Unit presets you create can be reused across different Audiobus sessions, and you can switch user presets via MIDI Learn.

There's a brand new selector, with separate tabs for system components, apps, and Audio Units, and with a new Favorites tab.

New selector New selector interface

MIDI inputs which appear in more than one pipeline are now treated independently, allowing for per-pipeline muting and volume control. This works great with the new MIDI Learn toggle actions, as you can toggle smoothly between synths by muting the input for one MIDI source, and unmuting the other. And to support that use case, when you mute MIDI sources, currently-held nodes will continue to play out until they're released, rather than immediately silencing.

There are lots more little improvements and fixes. Here's the full list:

  • Hardware input gain slider in Settings, for compatible devices.
  • Added Link quantize duration setting.
  • Brand new, rewritten-from-scratch Audiobus manual.
  • Fixed crash when using “Copy” on unsaved preset MIDI profile.
  • Fixed issue where MIDI Learn trigger listening becomes unresponsive after clearing.
  • Fixed stuck MIDI level meter when away from mixer screen.
  • Fixed occasional issue where app state saving fails.
  • Don’t show “More” button on Connection Panel during MIDI Learn for AUs.
  • Fixed some app and AU loading issues.
  • Fixed issue displaying secondary AU MIDI output ports.
  • Fixed some sample rate and route change issues.
  • Fixed an issue where MIDI sources present on launch are not initialised.
  • Assorted layout fixes and improvements.
  • Fixes for iPhone XS Max, and AU screen fixes for Plus sized iPhones.
  • Skip MIDI consistency tracking for single MIDI sources, which should enable apps/AUs that mess with MIDI in exciting and illicit ways to work better.
  • Don’t autosave MIDI Learn profiles from presets: wait until the preset is saved to save the MIDI Learn profile of the preset.

I hope you enjoy AB 3.4! If you've got any issues, suggestions or other feedback, feel free to open a new thread on the forum, hit "Get Support" in the app, or send an email to [email protected].

Stay tuned – there's more good stuff to come in 3.5.