The Agar-AU library provides a portable interface to audio hardware
and manipulation of digital audio streams.
It aims to accomodate the constraints of real-time audio playback,
as well as the high-quality requirements of offline rendering.
The typical usage involves first opening an output audio stream (an
AU_DevOut(3) object), using
AU_OpenOut(3), with a specified sample rate and number of output channels (subject to
the limitations of the output device, where applicable).
Output devices may also have any number of associated
In a multithreaded application, in order that the
AU library correctly process and mix audio generated from concurrent threads,
virtual channels are further divided into
thread-specific channels which are automatically created (and may also have their own volume
levels and effects chains).