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


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.


An AUParameterGroup object represents a group of related audio unit parameters. A parameter group is KVC-compliant for its children.


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.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software