<!--
{
  "documentType" : "article",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/audio-unit-v2-c-api",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Audio Unit v2 (C) API"
}
-->

# Audio Unit v2 (C) API

Configure an Audio Unit and prepare it to render audio.

## Topics

### Initializing the Audio Unit

[`AudioUnitInitialize`](/documentation/AudioToolbox/AudioUnitInitialize(_:))

Initializes an audio unit

[`AudioUnitUninitialize`](/documentation/AudioToolbox/AudioUnitUninitialize(_:))

Uninitializes an audio unit.

[`AudioUnitProcess`](/documentation/AudioToolbox/AudioUnitProcess(_:_:_:_:_:))

[`AudioUnitProcessMultiple`](/documentation/AudioToolbox/AudioUnitProcessMultiple(_:_:_:_:_:_:_:_:))

[`AudioUnitReset`](/documentation/AudioToolbox/AudioUnitReset(_:_:_:))

Resets an audio unit’s render state.

[`AudioUnit`](/documentation/AudioToolbox/AudioUnit)

The data type for a plug-in component that provides audio processing or audio data generation.

### Starting and Stopping Output

[`AudioOutputUnitStart`](/documentation/AudioToolbox/AudioOutputUnitStart(_:))

Starts an I/O audio unit, which in turn starts the audio unit processing graph that it is connected to.

[`AudioOutputUnitStop`](/documentation/AudioToolbox/AudioOutputUnitStop(_:))

Stops an I/O audio unit, which in turn stops the audio unit processing graph that it is connected to.

[`AudioOutputUnitStartProc`](/documentation/AudioToolbox/AudioOutputUnitStartProc)

[`AudioOutputUnitStopProc`](/documentation/AudioToolbox/AudioOutputUnitStopProc)

### Rendering the Audio

[`AudioUnitRender`](/documentation/AudioToolbox/AudioUnitRender(_:_:_:_:_:_:))

Initiates a rendering cycle for an audio unit.

[`AudioUnitAddRenderNotify`](/documentation/AudioToolbox/AudioUnitAddRenderNotify(_:_:_:))

Registers a callback to receive audio unit render notifications.

[`AudioUnitRemoveRenderNotify`](/documentation/AudioToolbox/AudioUnitRemoveRenderNotify(_:_:_:))

Unregisters a previously-registered render listener callback function.

[`AURenderCallback`](/documentation/AudioToolbox/AURenderCallback)

Called by the system when an audio unit requires input samples, or before and after a render operation.

[`AudioUnitRenderActionFlags`](/documentation/AudioToolbox/AudioUnitRenderActionFlags)

Flags for configuring audio unit rendering.

### Configuring Audio Unit Properties

[`AudioUnitGetProperty`](/documentation/AudioToolbox/AudioUnitGetProperty(_:_:_:_:_:_:))

Gets the value of an audio unit property.

[`AudioUnitSetProperty`](/documentation/AudioToolbox/AudioUnitSetProperty(_:_:_:_:_:_:))

Sets the value of an audio unit property.

[`AudioUnitGetPropertyInfo`](/documentation/AudioToolbox/AudioUnitGetPropertyInfo(_:_:_:_:_:_:))

Gets information about an audio unit property.

[`AudioUnitAddPropertyListener`](/documentation/AudioToolbox/AudioUnitAddPropertyListener(_:_:_:_:))

Registers a callback to receive audio unit property change notifications.

[`AudioUnitRemovePropertyListenerWithUserData`](/documentation/AudioToolbox/AudioUnitRemovePropertyListenerWithUserData(_:_:_:_:))

Unregisters a previously-registered property listener callback function.

### Responding to Events

[`AUEventListenerCreateWithDispatchQueue`](/documentation/AudioToolbox/AUEventListenerCreateWithDispatchQueue(_:_:_:_:_:))

[`AUEventListenerCreate`](/documentation/AudioToolbox/AUEventListenerCreate(_:_:_:_:_:_:_:))

[`AUListenerDispose`](/documentation/AudioToolbox/AUListenerDispose(_:))

[`AUEventListenerNotify`](/documentation/AudioToolbox/AUEventListenerNotify(_:_:_:))

[`AUEventListenerAddEventType`](/documentation/AudioToolbox/AUEventListenerAddEventType(_:_:_:))

[`AUEventListenerRemoveEventType`](/documentation/AudioToolbox/AUEventListenerRemoveEventType(_:_:_:))

[`AUListenerAddParameter`](/documentation/AudioToolbox/AUListenerAddParameter(_:_:_:))

[`AUListenerRemoveParameter`](/documentation/AudioToolbox/AUListenerRemoveParameter(_:_:_:))

[`AUEventListenerBlock`](/documentation/AudioToolbox/AUEventListenerBlock)

### Getting and Setting Parameters

[`AudioUnitGetParameter`](/documentation/AudioToolbox/AudioUnitGetParameter(_:_:_:_:_:))

Gets the value of an audio unit parameter.

[`AudioUnitScheduleParameters`](/documentation/AudioToolbox/AudioUnitScheduleParameters(_:_:_:))

Schedules changes to the value of an audio unit parameter.

[`AudioUnitSetParameter`](/documentation/AudioToolbox/AudioUnitSetParameter(_:_:_:_:_:_:))

Sets the value of an audio unit parameter.

### Monitoring Parameter Changes

[`AUListenerCreateWithDispatchQueue`](/documentation/AudioToolbox/AUListenerCreateWithDispatchQueue(_:_:_:_:))

[`AUListenerCreate`](/documentation/AudioToolbox/AUListenerCreate(_:_:_:_:_:_:))

[`AUParameterListenerNotify`](/documentation/AudioToolbox/AUParameterListenerNotify(_:_:_:))

[`AUParameterFormatValue`](/documentation/AudioToolbox/AUParameterFormatValue(_:_:_:_:))

[`AUParameterSet`](/documentation/AudioToolbox/AUParameterSet(_:_:_:_:_:))

[`AUParameterValueFromLinear`](/documentation/AudioToolbox/AUParameterValueFromLinear(_:_:))

[`AUParameterValueToLinear`](/documentation/AudioToolbox/AUParameterValueToLinear(_:_:))

[`AUParameterListenerBlock`](/documentation/AudioToolbox/AUParameterListenerBlock)

[`AUParameterListenerProc`](/documentation/AudioToolbox/AUParameterListenerProc)

[`AUParameterListenerRef`](/documentation/AudioToolbox/AUParameterListenerRef)

[`AUImplementorDisplayNameWithLengthCallback`](/documentation/AudioToolbox/AUImplementorDisplayNameWithLengthCallback)

A block called to obtain a parameter node’s display name, possibly truncated to a desired length.

[`AUImplementorStringFromValueCallback`](/documentation/AudioToolbox/AUImplementorStringFromValueCallback)

A block called to convert a parameter value to a string representation.

[`AUImplementorValueFromStringCallback`](/documentation/AudioToolbox/AUImplementorValueFromStringCallback)

A block called to convert a string to a parameter value.

### Getting Information from the Host

[`HostCallback_GetBeatAndTempo`](/documentation/AudioToolbox/HostCallback_GetBeatAndTempo)

When called by the system, provides beat and tempo information to an audio unit from a host application.

[`HostCallback_GetMusicalTimeLocation`](/documentation/AudioToolbox/HostCallback_GetMusicalTimeLocation)

When called by the system, provides musical timing information to an audio unit from a host application.

[`HostCallback_GetTransportState`](/documentation/AudioToolbox/HostCallback_GetTransportState)

When called by the system, provides audio transport state and timeline information to an audio unit from a host application.

[`HostCallback_GetTransportState2`](/documentation/AudioToolbox/HostCallback_GetTransportState2)

[`AUInputSamplesInOutputCallback`](/documentation/AudioToolbox/AUInputSamplesInOutputCallback)

Called by the system when an audio unit has provided a buffer of output samples.

[`AUMIDIOutputCallback`](/documentation/AudioToolbox/AUMIDIOutputCallback)

When called by a host application, gets MIDI data from an audio unit.

### Getting the Configuration Information

[`kAudioUnitConfigurationInfo_BusCountWritable`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_BusCountWritable)

[`kAudioUnitConfigurationInfo_ChannelConfigurations`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_ChannelConfigurations)

[`kAudioUnitConfigurationInfo_HasCustomView`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_HasCustomView)

[`kAudioUnitConfigurationInfo_IconURL`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_IconURL)

[`kAudioUnitConfigurationInfo_InitialInputs`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_InitialInputs)

[`kAudioUnitConfigurationInfo_InitialOutputs`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_InitialOutputs)

[`kAudioUnitConfigurationInfo_SupportedChannelLayoutTags`](/documentation/AudioToolbox/kAudioUnitConfigurationInfo_SupportedChannelLayoutTags)

### Configuring the Audio Unit UI

[`AudioUnitCocoaViewInfo`](/documentation/AudioToolbox/AudioUnitCocoaViewInfo)

The name and number of custom Cocoa views for an audio unit.

[`AUCocoaUIBase`](/documentation/AudioToolbox/AUCocoaUIBase)

[`AudioUnitCarbonView`](/documentation/AudioToolbox/AudioUnitCarbonView)

[`AudioUnitCarbonViewEventID`](/documentation/AudioToolbox/AudioUnitCarbonViewEventID)

[Audio Unit Carbon View Events](/documentation/AudioToolbox/1579365-audio_unit_carbon_view_events)

[Audio Unit Carbon View Selectors](/documentation/AudioToolbox/1579372-audio_unit_carbon_view_selectors)

[Audio Unit Carbon View Component Types](/documentation/AudioToolbox/1579363-audio_unit_carbon_view_component)

[`GetAudioUnitParameterDisplayType`](/documentation/AudioToolbox/GetAudioUnitParameterDisplayType(_:))

[`SetAudioUnitParameterDisplayType`](/documentation/AudioToolbox/SetAudioUnitParameterDisplayType(_:_:))

### Configuring the Audio Unit UI

[`AudioUnitCocoaViewInfo`](/documentation/AudioToolbox/AudioUnitCocoaViewInfo)

The name and number of custom Cocoa views for an audio unit.

[`GetAudioUnitParameterDisplayType`](/documentation/AudioToolbox/GetAudioUnitParameterDisplayType(_:))

[`SetAudioUnitParameterDisplayType`](/documentation/AudioToolbox/SetAudioUnitParameterDisplayType(_:_:))

### Audio Unit Types

[`ScheduledAudioFileRegion`](/documentation/AudioToolbox/ScheduledAudioFileRegion)

[`ScheduledAudioSlice`](/documentation/AudioToolbox/ScheduledAudioSlice)

[`ScheduledAudioFileRegionCompletionProc`](/documentation/AudioToolbox/ScheduledAudioFileRegionCompletionProc)

[`ScheduledAudioSliceCompletionProc`](/documentation/AudioToolbox/ScheduledAudioSliceCompletionProc)

[`MIDIChannelNumber`](/documentation/AudioToolbox/MIDIChannelNumber)

MIDI Channel, 0~15 (channels 1 through 16, respectively).

[`AUAudioObjectID`](/documentation/AudioToolbox/AUAudioObjectID)

[`AUMIDICIProfileChangedBlock`](/documentation/AudioToolbox/AUMIDICIProfileChangedBlock)

[`AUAudioChannelCount`](/documentation/AudioToolbox/AUAudioChannelCount)

A number of audio channels.

[`AUAudioFrameCount`](/documentation/AudioToolbox/AUAudioFrameCount)

A number of audio sample frames.

[`AUAudioUnitStatus`](/documentation/AudioToolbox/AUAudioUnitStatus)

A result code returned from an audio unit’s render function.

[`AUEventListenerProc`](/documentation/AudioToolbox/AUEventListenerProc)

[`AUEventListenerRef`](/documentation/AudioToolbox/AUEventListenerRef)

[`AUEventSampleTime`](/documentation/AudioToolbox/AUEventSampleTime)

Expresses time as a sample count.

[`AUImplementorValueObserver`](/documentation/AudioToolbox/AUImplementorValueObserver)

A block called to notify the audio unit implementation of changes to a parameter value.

[`AUImplementorValueProvider`](/documentation/AudioToolbox/AUImplementorValueProvider)

A block called to fetch a parameter’s current value from the audio unit implementation.

[`AUInputHandler`](/documentation/AudioToolbox/AUInputHandler)

A block to notify the host of an I/O unit that an input is available.

[`AUNodeConnection`](/documentation/AudioToolbox/AUNodeConnection)

[`AUParameterAddress`](/documentation/AudioToolbox/AUParameterAddress)

A numeric identifier for an audio unit parameter.

[`AUParameterAutomationObserver`](/documentation/AudioToolbox/AUParameterAutomationObserver)

[`AUParameterObserver`](/documentation/AudioToolbox/AUParameterObserver)

A block called after the value of a parameter changes.

[`AUParameterObserverToken`](/documentation/AudioToolbox/AUParameterObserverToken)

A token representing an installed parameter observer block.

[`AUParameterRecordingObserver`](/documentation/AudioToolbox/AUParameterRecordingObserver)

A block called to record parameter changes as automation events.

[`AURenderBlock`](/documentation/AudioToolbox/AURenderBlock)

A block to render the audio unit.

[`AURenderObserver`](/documentation/AudioToolbox/AURenderObserver)

A block called when an audio unit renders audio.

[`AURenderPullInputBlock`](/documentation/AudioToolbox/AURenderPullInputBlock)

A block to supply audio input to a render block.

[`AUScheduleParameterBlock`](/documentation/AudioToolbox/AUScheduleParameterBlock)

A block to schedule parameter changes.

[`AUValue`](/documentation/AudioToolbox/AUValue)

A value of an audio unit parameter.

[`AudioUnitAddPropertyListenerProc`](/documentation/AudioToolbox/AudioUnitAddPropertyListenerProc)

[`AudioUnitAddRenderNotifyProc`](/documentation/AudioToolbox/AudioUnitAddRenderNotifyProc)

[`AudioUnitComplexRenderProc`](/documentation/AudioToolbox/AudioUnitComplexRenderProc)

[`AudioUnitElement`](/documentation/AudioToolbox/AudioUnitElement)

The data type for an audio unit element identifier.

[`AudioUnitGetParameterProc`](/documentation/AudioToolbox/AudioUnitGetParameterProc)

[`AudioUnitGetPropertyInfoProc`](/documentation/AudioToolbox/AudioUnitGetPropertyInfoProc)

[`AudioUnitGetPropertyProc`](/documentation/AudioToolbox/AudioUnitGetPropertyProc)

[`AudioUnitInitializeProc`](/documentation/AudioToolbox/AudioUnitInitializeProc)

[`AudioUnitParameterID`](/documentation/AudioToolbox/AudioUnitParameterID)

The data type for an audio unit parameter identifier.

[`AudioUnitParameterNameInfo`](/documentation/AudioToolbox/AudioUnitParameterNameInfo)

A short version of the name for an audio unit parameter.

[`AudioUnitParameterIDName`](/documentation/AudioToolbox/AudioUnitParameterIDName)

A type definition for a data type that defines the short version of the name for an audio unit parameter.

[`AudioUnitParameterValue`](/documentation/AudioToolbox/AudioUnitParameterValue)

The data type for an audio unit parameter value.

[`AudioUnitProcessMultipleProc`](/documentation/AudioToolbox/AudioUnitProcessMultipleProc)

[`AudioUnitProcessProc`](/documentation/AudioToolbox/AudioUnitProcessProc)

[`AudioUnitPropertyID`](/documentation/AudioToolbox/AudioUnitPropertyID)

The data type for audio unit property keys.

[`AudioUnitPropertyListenerProc`](/documentation/AudioToolbox/AudioUnitPropertyListenerProc)

Called by the system when the value of a specified audio unit property has changed.

[`AudioUnitRemoteControlEventListener`](/documentation/AudioToolbox/AudioUnitRemoteControlEventListener)

[`AudioUnitRemovePropertyListenerProc`](/documentation/AudioToolbox/AudioUnitRemovePropertyListenerProc)

[`AudioUnitRemovePropertyListenerWithUserDataProc`](/documentation/AudioToolbox/AudioUnitRemovePropertyListenerWithUserDataProc)

[`AudioUnitRemoveRenderNotifyProc`](/documentation/AudioToolbox/AudioUnitRemoveRenderNotifyProc)

[`AudioUnitRenderProc`](/documentation/AudioToolbox/AudioUnitRenderProc)

[`AudioUnitResetProc`](/documentation/AudioToolbox/AudioUnitResetProc)

[`AudioUnitScheduleParametersProc`](/documentation/AudioToolbox/AudioUnitScheduleParametersProc)

[`AudioUnitScope`](/documentation/AudioToolbox/AudioUnitScope)

The data type for audio unit scope identifiers.

[`AudioUnitSetParameterProc`](/documentation/AudioToolbox/AudioUnitSetParameterProc)

[`AudioUnitSetPropertyProc`](/documentation/AudioToolbox/AudioUnitSetPropertyProc)

[`AudioUnitUninitializeProc`](/documentation/AudioToolbox/AudioUnitUninitializeProc)

### Enumerations

[Audio Unit Types](/documentation/AudioToolbox/1584142-audio_unit_types)

The defined types of audio processing plug-ins known as audio units.

[Inter-App Audio Unit Types](/documentation/AudioToolbox/1619501-inter-app-audio-unit-types)

[Audio Unit Manufacturer Identifier](/documentation/AudioToolbox/1584143-audio_unit_manufacturer_identifi)

The Apple audio unit manufacturer code.

[Audio Unit Output Subtypes](/documentation/AudioToolbox/1584148-audio-unit-output-subtypes)

[I/O Audio Unit Subtypes](/documentation/AudioToolbox/1619485-i-o-audio-unit-subtypes)

[Converter Audio Unit Subtypes](/documentation/AudioToolbox/1584145-converter_audio_unit_subtypes)

Audio data format converter audio unit subtypes for audio units provided by Apple.

[Reserved Audio Unit Clump Identifier](/documentation/AudioToolbox/1533986-reserved_audio_unit_clump_identi)

Reserved for system use.

[Offline Audio Unit Properties](/documentation/AudioToolbox/1534054-offline_audio_unit_properties)

Properties for audio units that perform offline processing—that is, processing in a nonplayback, nonrealtime mode.

[MIDI Audio Unit Parameters](/documentation/AudioToolbox/1389613-midi_audio_unit_parameters)

Parameters for instrument units.

[General Audio Unit Function Selectors](/documentation/AudioToolbox/1584140-general_audio_unit_function_sele)

General audio unit component selectors that correspond to functions in the audio unit API.

[Generator Audio Unit Subtypes](/documentation/AudioToolbox/1619493-generator_audio_unit_subtypes)

Audio units that serve as sound sources.

[Input/Output Audio Unit Subtypes](/documentation/AudioToolbox/1584139-input_output_audio_unit_subtypes)

Input/output audio unit subtypes for audio units provided by Apple.

[Audio Unit Panner Subtypes](/documentation/AudioToolbox/1584151-audio-unit-panner-subtypes)

[Audio Unit Player Subtypes](/documentation/AudioToolbox/1584155-audio-unit-player-subtypes)

[Audio Unit Pitch Subtypes](/documentation/AudioToolbox/1584152-audio-unit-pitch-subtypes)

[`AudioUnitEventType`](/documentation/AudioToolbox/AudioUnitEventType)

[`AudioUnitParameterOptions`](/documentation/AudioToolbox/AudioUnitParameterOptions)

Value options for audio unit parameters.

[`AudioUnitParameterUnit`](/documentation/AudioToolbox/AudioUnitParameterUnit)

The unit-of-measure for an audio unit parameter.

[`AudioUnitRemoteControlEvent`](/documentation/AudioToolbox/AudioUnitRemoteControlEvent)

[Audio Unit Sample Rate Converter Complexity](/documentation/AudioToolbox/1534173-audio_unit_sample_rate_converter)

Quality levels for the audio sample-rate conversion algorithm.

[Audio Unit Scopes](/documentation/AudioToolbox/1534214-audio_unit_scopes)

Programmatic roles and contexts for audio unit properties.

[Audio Unit SRC Algorithms](/documentation/AudioToolbox/1533994-audio-unit-src-algorithms)

[Audio Unit Full Name Parameter](/documentation/AudioToolbox/1534055-audio-unit-full-name-parameter)

[Audio Unit Parameter Flags](/documentation/AudioToolbox/1534035-audio-unit-parameter-flags)

[Audio Unit Filter Parameters](/documentation/AudioToolbox/1390052-audio-unit-filter-parameters)

[Audio Unit Generic Properties](/documentation/AudioToolbox/1533969-audio-unit-generic-properties)

[Audio Unit Parameter Flags](/documentation/AudioToolbox/1534166-audio-unit-parameter-flags)

[Audio Unit Scheduled Sound Player Properties](/documentation/AudioToolbox/1534024-audio-unit-scheduled-sound-playe)

[Audio Unit Offline Preflight Flags](/documentation/AudioToolbox/1534010-audio-unit-offline-preflight-fla)

[Audio Unit Migration Properties](/documentation/AudioToolbox/1534149-audio-unit-migration-properties)

[Audio Unit File Player Properties](/documentation/AudioToolbox/1534079-audio-unit-file-player-propertie)

[Audio Unit Parameter Listener](/documentation/AudioToolbox/1509425-audio-unit-parameter-listener)

[Audio Unit Errors](/documentation/AudioToolbox/1584138-audio-unit-errors)

[`AUAudioUnitBusType`](/documentation/AudioToolbox/AUAudioUnitBusType)

[AUEventSampleTime](/documentation/AudioToolbox/1387633-aueventsampletime)

Expresses time as a sample count.

[`AUHostTransportStateFlags`](/documentation/AudioToolbox/AUHostTransportStateFlags)

[`AUParameterAutomationEventType`](/documentation/AudioToolbox/AUParameterAutomationEventType)

[`AUParameterEventType`](/documentation/AudioToolbox/AUParameterEventType)

Audio unit parameter event types.

[`AURenderEventType`](/documentation/AudioToolbox/AURenderEventType)

[`AUScheduledAudioSliceFlags`](/documentation/AudioToolbox/AUScheduledAudioSliceFlags)

[`AUParameterMIDIMappingFlags`](/documentation/AudioToolbox/AUParameterMIDIMappingFlags)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)