<!--
{
  "documentType" : "article",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/audio-converter-services",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Audio Converter Services"
}
-->

# Audio Converter Services

Convert between linear PCM audio formats, and between linear PCM and compressed formats.

## Discussion

Audio converter objects convert between various linear PCM audio formats. They can also convert between linear PCM and compressed formats. Supported transformations include the following:

- PCM bit depth
- PCM sample rate
- PCM floating point to and from PCM integer
- PCM interleaved to and from PCM deinterleaved
- PCM to and from compressed formats

A single audio converter may perform more than one of the listed transformations.

## Topics

### Managing Audio Converter Objects

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

Creates a new audio converter object based on specified audio formats.

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

Creates a new audio converter object using a specified codec.

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

Resets an audio converter object, clearing and flushing its buffers.

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

Disposes of an audio converter object.

### Configuring Audio Converter Properties

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

Gets an audio converter property value.

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

Gets information about an audio converter property.

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

Sets the value of an audio converter object property.

### Performing Conversions

[Encoding and decoding audio](/documentation/AudioToolbox/encoding-and-decoding-audio)

Convert audio formats to efficiently manage data and quality.

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

Converts audio data from one linear PCM format to another.

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

Converts audio data supplied by a callback function, supporting non-interleaved and packetized formats.

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

Converts audio data from one linear PCM format to another, where both use the same sample rate.

### Deprecated Functions

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

### Callbacks

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

Supplies input data to the [`AudioConverterFillComplexBuffer(_:_:_:_:_:_:)`](/documentation/AudioToolbox/AudioConverterFillComplexBuffer(_:_:_:_:_:_:)) function.

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

Deprecated. Use [`AudioConverterFillComplexBuffer(_:_:_:_:_:_:)`](/documentation/AudioToolbox/AudioConverterFillComplexBuffer(_:_:_:_:_:_:)) instead.

### Data Types

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

Specifies priming information for an audio converter.

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

A reference to an audio converter object.

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

An audio converter property identifier.

### Constants

[Audio Converter Properties](/documentation/AudioToolbox/1559928-audio-converter-properties)

Audio converter properties, used with the [`AudioConverterGetPropertyInfo(_:_:_:_:)`](/documentation/AudioToolbox/AudioConverterGetPropertyInfo(_:_:_:_:)), [`AudioConverterGetProperty(_:_:_:_:)`](/documentation/AudioToolbox/AudioConverterGetProperty(_:_:_:_:)), and [`AudioConverterSetProperty(_:_:_:_:)`](/documentation/AudioToolbox/AudioConverterSetProperty(_:_:_:_:)) functions.

[Converter Priming Constants](/documentation/AudioToolbox/1559927-converter-priming-constants)

Constants used with the [`kAudioConverterPrimeMethod`](/documentation/AudioToolbox/kAudioConverterPrimeMethod) property.

[Sample Rate Conversion Quality Identifiers](/documentation/AudioToolbox/1559924-sample-rate-conversion-quality-i)

Specifiers for sample rate conversion quality, used for the [`kAudioConverterSampleRateConverterQuality`](/documentation/AudioToolbox/kAudioConverterSampleRateConverterQuality) property.

[Sample Rate Conversion Complexity Identifiers](/documentation/AudioToolbox/1559923-sample-rate-conversion-complexit)

Specifiers for the sample rate conversion algorithm, used for the [`kAudioConverterSampleRateConverterComplexity`](/documentation/AudioToolbox/kAudioConverterSampleRateConverterComplexity) property.

### Enumerations

[Converter Audio Unit Properties](/documentation/AudioToolbox/1533972-converter_audio_unit_properties)

Properties for the Apple AUConverter audio unit.

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

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

[Audio Converter Dithering Algorithms](/documentation/AudioToolbox/1559931-audio-converter-dithering-algori)

[Audio Converter Properties (macOS)](/documentation/AudioToolbox/1559925-audio-converter-properties-macos)

[Audio Converter Errors](/documentation/AudioToolbox/1559930-audio-converter-errors)

### Result Codes

This table lists result codes defined for Audio Converter Services.

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

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

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

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

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

The byte size is not an integer multiple of the frame size.

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

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

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

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

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

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

Returned from the [`AudioConverterFillComplexBuffer(_:_:_:_:_:_:)`](/documentation/AudioToolbox/AudioConverterFillComplexBuffer(_:_:_:_:_:_:)) function if the underlying hardware codec has become unavailable, probably due to an audio interruption.

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

Returned from the [`AudioConverterNew(_:_:_:)`](/documentation/AudioToolbox/AudioConverterNew(_:_:_:)) function if the new converter would use a hardware codec which the application does not have permission to use.



---

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)