The AUAudioUnitBusArray class defines a container for an audio unit’s input or output busses.


@interface AUAudioUnitBusArray : NSObject


Hosts can observe a bus property across all busses by using KVO on a bus array object, without having to observe it on each individual bus. Some audio units (e.g. mixers) support variable numbers of busses, via subclassing. When the bus count changes, a KVO notification is sent on the audio unit’s inputBusses or outputBusses property, as appropriate.

This version 3 class is bridged to the version 2 kAudioUnitProperty_ElementCount API.



- initWithAudioUnit:busType:

Initializes an empty bus array.

- initWithAudioUnit:busType:busses:

Initializes a bus array by making a copy of the supplied busses.

Bus Array Methods and Properties


The number of busses in the array.


Determines whether the array can have a variable number of busses.


The audio unit that owns the bus array.


Determines whether the bus array is for input or output.

- objectAtIndexedSubscript:

Returns the bus at the specified index.

- setBusCount:error:

Changes the number of busses in the array.

- addObserverToAllBusses:forKeyPath:options:context:

Adds a KVO observer for a given property on all busses in the array.

- removeObserverFromAllBusses:forKeyPath:context:

Removes a KVO observer for a given property on all busses in the array.

Audio Unit Implementations

This method is only of interest to audio unit subclasses.

- replaceBusses:

Replaces the current bus array with a copy of the supplied bus array.


Inherits From

See Also

Audio Unit v3

Hosting Audio Unit Extensions Using the AUv2 API

Update your existing Audio Unit v2 host app to load and use Audio Unit extensions.

Migrating Your Audio Unit Host to the AUv3 API

Update your Audio Unit (AU) host app to take advantage of the new features and capabilities of AUv3.


The AUAudioUnit class defines a host’s interface to an audio unit.


The AUAudioUnitBus class defines an input or output connection point on an audio unit.


The AUAudioUnitPreset class describes an interface for custom parameter settings provided by the audio unit developer. These presets often produce a useful sound or starting point.


The AUAudioUnitV2Bridge class wraps a version 2 audio unit in an AUAudioUnit subclass.


An AUParameter object represents a single audio unit parameter.


A parameter group object represents a group of related audio unit parameters.


An AUParameterNode object represents a node in an audio unit’s parameter tree. Nodes are instances of either an AUParameter or AUParameterGroup class.


An AUParameterTree object is a top-level group node, representing all of an audio unit’s parameters. An audio unit’s parameters are organized into a tree containing groups and parameters (groups may be nested).


Implement this protocol to create a version 3 audio unit.