The Audio Manager is the singleton controller for the entire audio system. It initializes the MiniAudio engine, manages mixing buses, loads audio event libraries, and coordinates score track playback. It also manages the instance lifecycle for Audio Event Graphs — pooling, firing, and releasing graph instances.
Like all GS_Play managers, it extends the Manager base class and responds to the Game Manager lifecycle automatically.
For component properties and API details, see the Framework API reference.

Contents
What It Manages
| Responsibility | What It Does |
|---|---|
| Engine lifecycle | Initializes and shuts down the MiniAudio audio engine. |
| Mixing buses | Creates and routes named audio buses with effects chains. |
| Audio Event Graphs | Pools and manages graph instances — fire-and-forget or manual lifecycle control. |
| Score playback | Manages Score Arrangement Track assets for dynamic music. |
| Master volume | Controls global and per-bus volume. |
Audio Event Graph Instances
The Audio Manager is the runtime entry point for the Audio Event Graph system. Two patterns are available:
Fire-and-Forget
The simplest pattern — the Manager handles everything automatically:
PlayAudioGraph(assetPath) → plays the graph → auto-cleans up when finished
Manual Instance Control
For sounds that need to be modified after starting — looping ambience, sounds driven by game state variables:
AcquireAudioGraph(assetPath) → instanceId
FireAudioGraph(instanceId)
SetAudioGraphVariable(instanceId, "paramName", value) ← update at any time
SetAudioGraphEntity(instanceId, entityId) ← 3D tracking
StopAudioGraph(instanceId) or FinishAudioGraph(instanceId)
ReleaseAudioGraph(instanceId)
The manager pools idle instances internally — acquiring and releasing is cheap.
Quick Reference
Audio Event Graph
| Need | Method |
|---|---|
| Fire-and-forget graph | PlayAudioGraph(assetPath) |
| Get a controllable instance | AcquireAudioGraph(assetPath) → instanceId |
| Start / restart an instance | FireAudioGraph(instanceId) |
| Stop an instance | StopAudioGraph(instanceId) |
| Fade out and stop | StopAudioGraphFade(instanceId, fadeTime) |
| Transition to Finish phase | FinishAudioGraph(instanceId) |
| Set a float variable | SetAudioGraphVariable(instanceId, name, value) |
| Set a bool variable | SetAudioGraphVariableBool(instanceId, name, value) |
| Enable looping | SetAudioGraphLooping(instanceId, true) |
| Track entity position (3D) | SetAudioGraphEntity(instanceId, entityId) |
| Release instance to pool | ReleaseAudioGraph(instanceId) |
Mixing & Score
| Need | Method |
|---|---|
| Set bus volume | SetMixerVolume(busName, volume) |
| Set master volume | SetMasterVolume(volume) |
| Play a score track | PlayScoreTrack(asset) |
| Stop the score track | StopScoreTrack() |
Glossary
| Term | Meaning |
|---|---|
| Audio Event Graph | A .audiograph node graph asset defining a sound event |
| Graph Instance | An independent runtime copy of an Audio Event Graph, pooled and reused by the Manager |
| Mixing Bus | A named audio channel with an effects chain for routing and processing sounds |
| Score Arrangement | A multi-layer music asset managed by the Audio Manager for dynamic playback |
For full definitions, see the Glossary.
See Also
- The Basics: Audio Event Graph — Visual graph editor for sound events
- Framework API: Audio Manager — Full API reference
- The Basics: Mixing
- The Basics: GS_Managers
Get GS_Audio
GS_Audio — Explore this gem on the product page and add it to your project.