How carbonengine/audio works
Carbon Audio is a Carbon-engine audio runtime that wraps Wwise, with Python and C++ entry points. Its main workflow configures and initializes the engine, loads event metadata and soundbanks, then manages playback and spatial behavior. The graph also preserves sound prioritization and the separate Wwise-authoring integration. Some subsystem links are documented capabilities rather than inspected call paths; those are represented at subsystem level where the tree supports a path.
Main entry points: AudManager.cpp Audio engine manager · audiomanager.py Python AudioManager · AudManager_Blue.cpp Blue API exposure · WaapiManager.cpp WAAPI manager
Components 22
Entry and lifecycle
- Python AudioManager
python/audio2/audiomanager.py - Audio engine manager
src/AudManager.cpp - Blue API exposure
src/AudManager_Blue.cpp - Engine settings
src/AudSettings.h - Soundbank management
src/AudManager.cpp
Playback runtime
- Wwise sound engine
- Bank and media IO
src/LowLevelIO/LowLevelIOHook.cpp - Audio path resolver
src/LowLevelIO/AudPathResolver.cpp - Audio emitters
src/AudEmitter.cpp - Audio listeners
src/AudListener.cpp - Music and UI players
src/AudMusicPlayer.cpp - Audio parameters
src/AudParameter.cpp
Spatial audio
- Spatial configuration
src/SpatialAudioSettings.cpp - Spatial geometry
src/AudGeometry.cpp - Obstruction and occlusion
src/AudObstructionOcclusion.cpp
Metadata and prioritization
- Event metadata
- Static data repository
src/AudStaticDataRepository.cpp - Sound prioritization
src/SoundPrioritization.cpp
Authoring integration
- Python WAAPI manager
python/audio2/waapimanager.py - WAAPI manager
src/WAAPI/WaapiManager.cpp
Other components
- Game client
- Wwise Authoring Tool
Connections 27
- Game client → Python AudioManager: configures
- Game client → Blue API exposure: calls
- Python AudioManager → Blue API exposure: wraps APIs
- Python AudioManager → Static data repository: initializes metadata
- Blue API exposure → Audio engine manager: dispatches
- Audio engine manager → Engine settings: uses settings
- Audio engine manager → Wwise sound engine: initializes
- Audio engine manager → Soundbank management: manages banks
- Soundbank management → Wwise sound engine: loads banks
- Wwise sound engine → Bank and media IO: requests files
- Bank and media IO → Audio path resolver: resolves paths
- Audio engine manager → Audio emitters: manages emitters
- Audio engine manager → Audio listeners: manages listeners
- Audio engine manager → Music and UI players: exposes playback
- Audio engine manager → Audio parameters: manages parameters
- Audio emitters → Wwise sound engine: posts events
- Audio listeners → Wwise sound engine: sets listener
- Audio engine manager → Spatial configuration: configures spatial audio
- Audio engine manager → Spatial geometry: controls geometry
- Audio engine manager → Obstruction and occlusion: updates occlusion
- Game client → Event metadata: provides metadata
- Event metadata → Static data repository: initializes
- Audio engine manager → Static data repository: queries event data
- Audio engine manager → Sound prioritization: applies prioritization
- Python AudioManager → WAAPI manager: wraps authoring APIs
- Python WAAPI manager → WAAPI manager: dispatches
- WAAPI manager → Wwise Authoring Tool: queries and edits