Skip to content

Audio Graph

maculateConception edited this page Jun 25, 2021 · 7 revisions

Home  >  Developer reference  >  Audio Graph

Overview

The Audio Graph is one of the core components of Aural Player and is ultimately responsible for all audio output by the app. It serves as the infrastructure for playback, recording, and visualization, and also controls player volume, stereo pan, and all sound effects, including any Audio Units (AU) plug-ins configured by the user.

AVAudioEngine

The Audio Graph encapsulates an audio engine and a graph of nodes attached to that engine. Each node in the graph performs a distinct function, such as playback, mixing, or an effect such as equalization or reverb. The engine and nodes are provided by Apple's high-level AVAudioEngine framework.

The nodes in the graph are connected so as to form a signal processing chain where audio is processed by a node and then passed as input to the next node, which itself processes the audio, then passes it on to the next node, and so on, till the engine's output node sends the audio to the audio output hardware device. So, the audio that is output by the app is a function of the cumulative audio processing performed sequentially by each node in in the chain.

Audio Graph image

Each node exposes configurable properties, eg. volume, playback rate, or equalizer band gain, that determine how the node manipulates audio. For instance, when the user manipulates the volume slider in the player window, it modifies the volume property of the player node in the audio graph.

Clone this wiki locally