Resources/info.html

<meta name = "viewport" content = "width = device-width">
 
<h4 align="left"iPhoneMixerEQGraphTest Sample</h4>
 
<p>This sample demonstrates the use of an AUGraph and related APIs as well as demonstrating how
to use the iPodEQ Audio Unit. All the relevant code is in the file AUGraphController.mm.
Touching the "Play Audio" button simply calls AUGraphStart starting the graph initialized by the
class, while "Stop Audio" will call AUGraphStop. Audio data from each file is provided to the
appropriate bus via the renderInput Render Procedure. Each of the two input busses may be enabled
or disabled and gain controls are provided for both inputs and the mixer output.<p>
 
<p>The iPodEQ can be enabled or disabled and a preset EQ curve may be chosen via a picker in
the iPod Equalizer view. The iPod EQ requires a sample rate of either 48kHz or 44.1kHz.
iPhoneMixerEQGraphTest uses 44.1kHz source and sets the hardware sample rate to 44.1kHz to
avoid any extraneous sample rate conversions.<p>
 
<hr align="center">
 
<p>Audio Unit Processing Graph Services provide interfaces for representing a set of
audio units, connections between their inputs and outputs, and callbacks used to provide
inputs. It also enables the embedding of sub (or child) processing graphs within parent
graphs to allow for a logical organization of parts of an overall signal chain.</p>
 
<p>An audio processing graph object (of type AUGraph) is a complete description of an
audio signal processing network. Audio Unit Processing Graph Services may manage the
instantiated audio units if the AUGraphOpen function is called.</p>
 
<p>An audio processing graph object may be introspected to get complete information
about all of the audio units in the graph. The various node objects (each of type AUNode)
in the graph, each representing an audio unit or a sub graph, may be added or removed,
and the interactions between them modified.</p>
 
 
<p>A graph object’s state can be manipulated in both the rendering thread and in other
threads. Consequently, any activities that affect the state of the graph are guarded with
locks and a messaging model between any calling thread and the thread upon which the
graph object’s output unit is called (the render thread).</p>
 
<p>A graph object will have a single head node-an output unit. The output unit is used to
both start and stop the rendering operations of a graph, and is the dispatch point for
the safe manipulation of the state of the graph while it is running.</p>
<br>
<br>