<!--
{
  "documentType" : "article",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/audio-components",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Audio Components"
}
-->

# Audio Components

Find, load, and configure audio components, such as Audio Units and audio codecs.

## Discussion

Use the Audio Components API to register and discover audio units, codecs, and other loadable code modules. This API replaces the Component Manager API used prior to macOS 10.6. The system searches for loadable bundles with a `.audiocomp` or `.component` filename extension in the following locations:

- `~/Library/Audio/Plug-Ins/Components`
- `/Library/Audio/Plug-Ins/Components`
- `/System/Library/Components`

The bundle `Info.plist` file needs to contain an `AudioComponents` item whose value is an array of dictionaries. For example:

```swift
<key>AudioComponents</key>
<array>
    <dict>
        <key>type</key>
        <string>aufx</string>
        <key>subtype</key>
        <string>XMPL</string>
        <key>manufacturer</key>
        <string>ACME</string>
        <key>name</key>
        <string>AUExample</string>
        <key>version</key>
        <integer>12345</integer>
        <key>factoryFunction</key>
        <string>AUExampleFactory</string>
        
        <!-- An AudioComponent is sandbox safe. -->
        
        <key>sandboxSafe</key>
        <true/>
        
        <!-- Or it can describe its resource usage. -->
        
        <key>resourceUsage</key>
        <dict>
            <key>iokit.user-client</key>
            <array>
                <string>CustomUserClient1</string>
                <string>CustomUserClient2</string>
            </array>
            <key>mach-lookup.global-name</key>
            <array>
                <string>MachServiceName1</string>
                <string>MachServiceName2</string>
            </array>
            <key>network.client</key>
            <true/>
            <key>temporary-exception.files.all.read-write</key>
            </true>
        </dict>

        <!-- An AudioComponent can define its tags. -->
        
        <key>tags</key>
        <array>
            <string>Effect</string>
            <string>Equalizer</string>
        </array>
    </dict>
</array>
```

## Topics

### Creating an Audio Component Instance

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

Creates a new instance of an audio component.

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

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

Disposes of an audio component instance.

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

An audio component.

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

[Audio Component Errors](/documentation/AudioToolbox/1619490-audio-component-errors)

### Creating an Audio Component Dynamically

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

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

Returns the number of audio components that match a specified `AudioComponentDescription` structure.

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

Finds the next component that matches a specified `AudioComponentDescription` structure after a specified audio component.

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

Retrieves a reference to an audio component from an instance of that audio component.

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

Identifying information for an audio component.

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

A component instance, or object, is an audio unit or audio codec.

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

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

### Getting Information About a Component

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

Determines if an audio component instance implements a particular function.

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

Gets the class description, as an `AudioComponentDescription` structure, of an audio component.

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

Returns the generic name of an audio component.

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

Gets the version of an audio component in hexadecimal form as `0xMMMMmmDD` (major, minor, dot).

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

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

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

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

### Validating an Audio Component

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

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

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

### Constants

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

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

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

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

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



---

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)