Audio Unit Validation with the auval Tool
Audio Unit Testing and Host Applications
Apple strongly recommends validating your audio units using the auval command-line tool during development. The auval tool (named as a contraction of "audio unit validation") comes with Mac OS X. It performs a comprehensive suite of tests on:
An audio unit’s plug-in API, as defined by its programmatic type
An audio unit’s basic functionality including such things as which audio data channel configurations are available, time required to instantiate the audio unit, and the ability of the audio unit to render audio
The auval tool tests only an audio unit proper. It does not test any of the following:
Audio unit views
Audio unit architecture, in terms of using the recommended model-view-controller design pattern for separation of concerns
Correct use of the Audio Unit Event API
Quality of DSP, quality of audio generation, or quality of audio data format conversion
The auval tool can validate every type of audio unit defined by Apple. When you run it, it outputs a test log and summarizes the results with a “pass” or "fail” indication.
For more information, refer to the auval built-in help system. To see auval help text, enter the following command at a prompt in the Terminal application:
auval -h |
When you build to the Audio Unit Specification, you’ve done the right thing. Such an audio unit should work with all hosts. But practically speaking, development isn’t complete until you test your audio units in commercial applications. The reasons include:
Evolution of the Core Audio frameworks and SDK
Variations across host application versions
Idiosyncrasies in the implementation of some host applications
As host applications that recognize audio units proliferate, the task of testing your audio unit in all potential hosts becomes more involved.
The situation is somewhat analogous to testing a website in various browsers: your code may perfectly fit the relevant specifications, but nonconformance in one or another browser requires you to compensate.
With this in mind, the following sections provide an overview of host-based audio unit testing.
AU Lab, the application you used in “Tutorial: Using an Audio Unit in a Host Application,” is the reference audio unit host. It is in active development by Apple’s Core Audio team. They keep it in sync with the auval tool, with the Core Audio frameworks and SDK, and with Mac OS X itself. This makes AU Lab the first place to test your audio units.
Testing your audio unit with AU Lab lets you test:
Behavior, in terms of being found by a host, displayed in a menu, and opened
View, both generic and custom
Audible performance
Interaction with other audio units when placed in an audio processing graph
I/O capabilities, such as sidechains and multiple outputs, as well as basic testing of monaural and stereophonic operation
In Mac OS X v10.4 “Tiger,” AU Lab lets you test the following types of audio units:
Converter units
Effect units
Generator units
Instrument units
AU Lab lets you control some of its hosting characteristics, which lets you test the behavior of your audio unit under varying conditions. For example, you can change the number of frames of audio data to process in each rendering cycle. You do this using Devices Preferences.
In AU Lab, choose Preferences from the AU Lab menu. Click Devices to show Devices Preferences:

Click the Frames pop-up menu. You can choose the number of frames for your audio unit to process in each rendering cycle:

Click the disclosure triangle for Expert Settings. You can vary the slider to choose the percentage of CPU time to devote to audio processing. This lets you test the behavior of your audio unit under varying load conditions:

As an audio unit developer, you'll want to stay up to date with the host applications your target market is using. Apple recommends that you test your audio units with, at least, Apple’s suite of professional host applications:
GarageBand
Logic Pro
Soundtrack Pro
Final Cut Pro
There are many third-party and open source applications that support audio units, among them Ableton Live, Amadeus, Audacity, Cubase, Digital Performer, DSP-Quattro, Peak, Rax, and Metro.
Last updated: 2007-10-31