Contents

Audio Components

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

Overview

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:

<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

Creating an Audio Component Dynamically

Getting Information About a Component

Validating an Audio Component

Constants

See Also

Audio Units