Audio Manager

How to work with the GS_Play Audio Manager — engine initialization, bus routing, event library loading, and Audio Event Graph instance control.

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.

Audio Manager component in the O3DE Inspector

 

Contents


What It Manages

ResponsibilityWhat It Does
Engine lifecycleInitializes and shuts down the MiniAudio audio engine.
Mixing busesCreates and routes named audio buses with effects chains.
Audio Event GraphsPools and manages graph instances — fire-and-forget or manual lifecycle control.
Score playbackManages Score Arrangement Track assets for dynamic music.
Master volumeControls 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

NeedMethod
Fire-and-forget graphPlayAudioGraph(assetPath)
Get a controllable instanceAcquireAudioGraph(assetPath)instanceId
Start / restart an instanceFireAudioGraph(instanceId)
Stop an instanceStopAudioGraph(instanceId)
Fade out and stopStopAudioGraphFade(instanceId, fadeTime)
Transition to Finish phaseFinishAudioGraph(instanceId)
Set a float variableSetAudioGraphVariable(instanceId, name, value)
Set a bool variableSetAudioGraphVariableBool(instanceId, name, value)
Enable loopingSetAudioGraphLooping(instanceId, true)
Track entity position (3D)SetAudioGraphEntity(instanceId, entityId)
Release instance to poolReleaseAudioGraph(instanceId)

Mixing & Score

NeedMethod
Set bus volumeSetMixerVolume(busName, volume)
Set master volumeSetMasterVolume(volume)
Play a score trackPlayScoreTrack(asset)
Stop the score trackStopScoreTrack()

Glossary

TermMeaning
Audio Event GraphA .audiograph node graph asset defining a sound event
Graph InstanceAn independent runtime copy of an Audio Event Graph, pooled and reused by the Manager
Mixing BusA named audio channel with an effects chain for routing and processing sounds
Score ArrangementA multi-layer music asset managed by the Audio Manager for dynamic playback

For full definitions, see the Glossary.


See Also


Get GS_Audio

GS_Audio — Explore this gem on the product page and add it to your project.