Audio Unit Programming Guide
PDF
Introduction
Audio Unit Development Fundamentals
The Audio Unit Development Cycle
What Is An Audio Unit?
Audio Unit Programmatic Structure and Life Cycle
Audio Unit File Structure
Some Basic Terminology
Audio Units as Plug-Ins
The Nature of Plug-Ins
Tutorial: Using an Audio Unit in a Host Application
The Role of the Core Audio SDK
Component Manager Requirements for Audio Units
Audio Unit Installation and Registration
Audio Unit Identification
Plug-in API Requirements for Audio Units
The Audio Unit Specification
Audio Units as Instances of the Model-View-Controller Design Pattern
Audio Units in Action
Opening and Closing Audio Units
Adding Copy Protection
Multiple Instantiation
Audio Processing Graphs and the Pull Model
Processing: The Heart of the Matter
Processing
Resetting
Adjustments While Rendering
Supporting Parameter Automation
Audio Unit Validation and Testing
Audio Unit Validation with the auval Tool
Audio Unit Testing and Host Applications
Testing with AU Lab
What You Can Test with AU Lab
Varying the Host Application’s Characteristics
Custom Testing of Audio Units
The Audio Unit
Audio Unit Architecture
Audio Unit Scopes
Audio Unit Elements
Audio Unit Connections
Audio Processing Graph Connections
Render Callback Connections
Audio Unit Channels
Creating an Audio Unit by Subclassing
Control Code: Parameters, Factory Presets, and Properties
Defining and Using Parameters
Factory Presets and Parameter Persistence
Defining and Using Properties
Commonly Used Properties
Defining Custom Properties
Synthesis, Processing, and Data Format Conversion Code
Signal Processing
Music Synthesis
Music Effects
Data Format Conversion
Audio Unit Life Cycle
Overview
Categories of Programmatic Events
Bringing an Audio Unit to Life
Property Configuration
Audio Unit Initialization and Uninitialization
Kernel Instantiation in n-to-n Effect Units
Audio Processing Graph Interactions
Audio Unit Processing
Closing
The Audio Unit View
Types of Views
Separation of Concerns
The Generic View
Custom Views
View Instantiation and Initialization
Parameter and Property Events
The Audio Unit Event API
Parameter Gestures
Basic Parameter Adjustments
Parameter Adjustments with Notification
Tutorial: Demonstrating Parameter Gestures and Audio Unit Events
A Quick Tour of the Core Audio SDK
Obtaining the Core Audio SDK
Navigating within the Core Audio SDK
The AudioUnits Folder
The PublicUtility Folder
The Services Folder
Tutorial: Building a Simple Effect Unit with a Generic View
Overview
Install the Core Audio Development Kit
Specify the Function of Your Audio Unit
Design the Parameter Interface
Design the Factory Presets
Collect Configuration Information for the Audio Unit Bundle
Set Your Company Name in Xcode
Create and Configure the Project
Test the Unmodified Audio Unit
Implement the Parameter Interface
Name the Parameters and Set Values
Edit the Constructor Method
Define the Parameters
Provide Strings for the Waveform Pop-up Menu
Implement the Factory Presets Interface
Name the Factory Presets and Give Them Values
Add Method Declarations for Factory Presets
Set the Default Factory Preset
Implement the GetPresets Method
Define the Factory Presets
Implement Signal Processing
DSP Design for the Tremolo Effect
Define Member Variables in the Kernel Class Declaration
Write the TremoloUnitKernel Constructor Method
Override the Process Method
Override the Reset Method
Implement the Tail Time Property
Validate your Completed Audio Unit
Test your Completed Audio Unit
Appendix: Audio Unit Class Hierarchy
Core Audio SDK Audio Unit Class Hierarchy
Starting Points for Common Audio Units
Revision History