< Previous PageNext Page > Hide TOC

A Quick Tour of the Core Audio SDK

You can build an audio unit from scratch using the Core Audio frameworks directly. However, as described throughout this document, Apple strongly encourages you to begin with the freely downloadable Core Audio software development kit, or SDK. Apple builds all of the audio units that ship in Mac OS X using the SDK.

The SDK offers many advantages to audio unit developers. The SDK:

In this section:

Obtaining the Core Audio SDK
Navigating within the Core Audio SDK


Obtaining the Core Audio SDK

Install the most recent Core Audio SDK. It is part of the Xcode Tools installation on the Mac OS X DVD. You can also download it from Apple’s developer website at this location:

http://developer.apple.com/sdk/

The Core Audio team updates the SDK frequently so be sure that you’re using the most current version.

The installer package places the SDK in a folder named CoreAudio at the path:

/Developer/Examples/CoreAudio/ on your startup volume.

Navigating within the Core Audio SDK

Note: This section describes version 1.4.3 of the Core Audio SDK. The Core Audio team updates the SDK frequently. As with all Apple SDKs, use the most current version.

The Core Audio SDK contains materials for working with audio units, audio files, codecs, MIDI, and the HAL. The ReadMe.rtf file within the CoreAudio folder helps you get oriented. It includes a commented listing of the folders in the SDK, pointers to related resources from the Core Audio team, and release notes.

For audio unit development, the most important parts of the SDK are in the following folders:

This section describes each of these folders in turn.

The AudioUnits Folder

The AudioUnits folder contains the C++ class hierarchy that you use to build audio units. This is in the AudioUnits/AUPublic folder. The audio unit Xcode templates depend on this class hierarchy.

The AudioUnits/CarbonGenericView folder contains the source files for the Carbon generic view.

Host developers find the interfaces for Apple’s Cocoa generic view not in the Core Audio SDK but in Mac OS X’s CoreAudioKit framework.

In addition to the AUPublic and CarbonGenericView source folders, the AudioUnits folder contains several complete example Xcode projects for audio units. You can use these projects in a variety of ways:

The SDK includes the following example audio unit projects:

The PublicUtility Folder

This folder contains a miscellaneous collection of C++ and Objective-C source files used by the Core Audio SDK’s audio unit class hierarchy and by the sample projects in the SDK. You may want to examine these files to gain insight into how the class hierarchy works.

The Services Folder

This folder contains several Core Audio Xcode projects that build tools, audio units, and audio unit host applications. As with the projects in the AudioUnits folder, you can make use of these projects during audio unit development in a variety of ways:

The Services folder contains the following Xcode projects:

AudioFileTools

A project that builds a set of eight command-line tools for playing, recording, examining, and manipulating audio files.

AudioUnitHosting

A project that builds a Carbon-based audio unit host application. Useful in terms of sample code for host developers but deprecated as a host for testing your audio units. (For audio unit testing, use AU Lab.)

AUMixer3DTest

A project that builds an application that uses a 3D mixer audio unit.

AUViewTest

A project that builds a windowless application based on an audio processing graph. The graph includes an instrument unit, an effect unit, and an output unit. There’s a menu item to open a view for the effect unit. The AUViewTest application uses a music player object to play a repeating sequence through the instrument unit.

CocoaAUHost

A project that builds a Cocoa-based audio unit host application. This project is useful in terms of sample code for host developers but deprecated as a host for testing your audio units. (For audio unit testing, use AU Lab.)

MatrixMixerTest

A project that builds an example mixer unit with a custom Cocoa view.

OpenALExample

A project that builds an application based on the OpenAL API with Apple extensions. The application demonstrates control of listener position and orientation within a two-dimensional layout of audio sources.



< Previous PageNext Page > Hide TOC


© 2007 Apple Inc. All Rights Reserved. (Last updated: 2007-10-31)


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.