Record or play audio, convert formats, parse audio streams, and configure your audio session.


The Audio Toolbox framework provides interfaces for recording, playback, and stream parsing. In iOS, the framework provides additional interfaces for managing audio sessions.


Getting Started

Incorporating Audio Effects and Instruments

Add custom audio processing and MIDI instruments to your app by hosting Audio Unit (AU) plug-ins.

Creating Custom Audio Effects

Add custom audio effect processing to apps like Logic Pro X and GarageBand by creating Audio Unit (AU) plug-ins.

Inter-Device Audio and MIDI

Enabling USB Audio and MIDI for iOS

Set up your system to record digital audio from an iOS device and exchange MIDI data with it by enabling Inter-Device Audio and MIDI.

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.

class AUAudioUnit

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

class AUAudioUnitBus

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

class AUAudioUnitBusArray

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

class AUAudioUnitPreset

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.

class AUAudioUnitV2Bridge

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

class AUParameter

An AUParameter object represents a single audio unit parameter.

class AUParameterGroup

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

class AUParameterNode

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

class AUParameterTree

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).

protocol AUAudioUnitFactory

Implement this protocol to create a version 3 audio unit.

Basic Playback and Recording

Inter-App Audio

Inter-App Audio is deprecated in iOS 13 and is unavailable when running iPad apps in macOS.

func AudioOutputUnitGetHostIcon(AudioUnit, Float) -> UIImage?

The UIImage of the host app’s icon.

func AudioComponentGetIcon(AudioComponent, Float) -> UIImage?

The UIImage of the audio component’s icon.

func AudioComponentGetLastActiveTime(AudioComponent) -> CFAbsoluteTime

The time at which the application publishing the component was last active.