Source Of Truth#
This guide completes TODOS.phase-72.72.28.1.15 and is bound by
V2/ue/Content/V2/Audio/AudioMiddlewareSoundDesignerWorkflow_V2_Contract.json.
The V2 launch audio runtime remains MetaSounds plus AudioModulation. Wwise, FMOD, and custom middleware authoring are optional handoff paths for partner studios and advanced production builds. Every middleware deliverable must preserve the native fallback path and the maya-audio built-in system so the default cook remains functional without external middleware.
This document covers the MetaSounds plus AudioModulation launch runtime, Wwise FMOD custom provider handoff, gameplay event ids and provider event names, generated middleware projects, hot reload development sessions, per-platform soundbanks, dependency sidecars, content cook build pipeline, and runtime fallback QA signoff.
Topic tags: MetaSounds plus AudioModulation launch runtime,
native fallback path, maya-audio built-in system,
Wwise FMOD custom provider handoff,
gameplay event ids and provider event names, generated middleware projects,
hot reload development sessions, per-platform soundbanks,
dependency sidecars, content cook build pipeline,
runtime fallback QA signoff.
Primary source docs:
audio-middleware-backend.mdaudio-cooking.mdmusic-authoring-interface.mdmusic-system-composer-integration-guide.md
Contract dependencies:
AudioMiddlewareBackend_V2_Contract.jsonWwiseSDKIntegration_V2_Contract.jsonFMODStudioIntegration_V2_Contract.jsonAudioMiddlewareAbstractionLayer_V2_Contract.jsonAudioMiddlewareSpatialSourceManager_V2_Contract.jsonAudioMiddlewareListenerManager_V2_Contract.jsonAudioMiddlewareEnvironmentZoneManager_V2_Contract.jsonAudioMiddlewareOcclusionRaycastManager_V2_Contract.jsonAudioMiddlewareSoundbankStreamingManager_V2_Contract.jsonAudioMiddlewareProfilingIntegration_V2_Contract.jsonAudioMiddlewareGameplayEventTriggerManager_V2_Contract.jsonAudioMiddlewareProjectGenerationManager_V2_Contract.jsonAudioMiddlewareHotReloadManager_V2_Contract.jsonAudioMiddlewareFallbackManager_V2_Contract.jsonAudioMiddlewareBuildPipelineIntegration_V2_Contract.json
Middleware System Map#
Gameplay code talks to FV2AudioMiddlewareAbstractionLayer, not directly to a
vendor runtime. The launch route remains custom/native audio, while optional
provider rows mirror the same gameplay events into Wwise and FMOD:
Audio.Gameplay.Weapon.FireAudio.Gameplay.Player.FootstepWwise.Event.Weapon.FireFMOD.Event.Player.FootstepCustomAudio.Event.Weapon.Fire
The production path is:
- Generate middleware project structure from
AudioMiddlewareProjectGenerationManager_V2_Contract.json. - Author events, parameters, switches, states, and banks in Wwise, FMOD, or the custom provider project.
- Validate gameplay event routes through
AudioMiddlewareGameplayEventTriggerManager_V2_Contract.json. - Validate 3D source, listener, environment-zone, and occlusion metadata before mix review.
- Cook per-platform soundbanks through
AudioMiddlewareBuildPipelineIntegration_V2_Contract.json. - Keep
AudioMiddlewareFallbackManager_V2_Contract.jsonvalid so unavailable middleware routes tomaya-audio.built-in.
Sound Designer Deliverables#
Each middleware handoff must include these deliverables:
- stable gameplay event ids for weapon fire and player footstep coverage;
- provider event names for Wwise, FMOD, and custom middleware routes;
- bank ids
Audio.Wwise.Bank.CoreGameplay,Audio.FMOD.Bank.CoreGameplay, andAudio.CustomAudio.Bank.CoreGameplay; - generated project files for Wwise and FMOD event/bank structures;
- per-platform soundbanks for
Win64,PS5, andXSX; - dependency sidecars ending in
.v2audiobankdeps.json; - surface switch, weapon intensity RTPC, and custom parameter coverage;
- spatial source, camera listener, acoustic zone, reverb, occlusion, and obstruction metadata;
- profiling labels for CPU usage, voice count, and memory usage;
- native fallback confirmation for every optional middleware route.
Reference generated bank paths:
Content/Wwise/GeneratedSoundBanks/Win64/CoreGameplay.bnkContent/FMOD/Banks/PS5/CoreGameplay.bankContent/CustomAudio/Banks/XSX/CoreGameplay.bank
Reference cooked output:
Saved/Cooked/XSX/V2/Audio/Middleware/CustomAudio/CoreGameplay.bank
Authoring Workflow#
- Start from generated middleware projects. Use the project generation manager before hand-authoring banks so gameplay event names, bank ids, work units, and parameters match runtime contracts.
- Author event payloads against gameplay events. Weapon fire owns
Audio.Control.Weapon.FireIntensity; footsteps ownAudio.Control.Player.MovementSpeedand surface switch data. - Keep provider event names stable once gameplay code references them. Rename work units or folders only when the generated project contract and all bank specs change in the same review.
- Use hot reload only in development sessions. A changed
CoreGameplaysoundbank should resolveAudio.MiddlewareHotReload.Accepted.ReloadChangedSoundbankand reload without restarting the game. - Validate runtime routes through the abstraction layer before any provider SDK review. The same authored event must still play through the custom/native route when Wwise or FMOD are absent.
- Record profiling evidence after spatial/listener/environment routing works. CPU, voice, and memory counters should publish to the engine profiler before final mix signoff.
Content Cook And Build Pipeline#
Per-platform middleware bank cooking happens during content cook. The build pipeline integration accepts a platform cook only when content cook is running, generated middleware projects are available, native fallback is allowed, and the provider/platform/bank tuple exists.
Required cook behavior:
Audio.MiddlewareBuildPipeline.Accepted.CookPlatformSoundbank- deterministic cook commands for Wwise, FMOD, and custom providers;
- per-platform soundbanks for
Win64,PS5, andXSX; - dependency sidecars such as
Saved/Cooked/Win64/V2/Audio/Middleware/Wwise/CoreGameplay.v2audiobankdeps.json; - rejection of missing content cook through
Audio.MiddlewareBuildPipeline.Rejected.ContentCookNotRunning; - rejection of missing generated middleware projects through
Audio.MiddlewareBuildPipeline.Rejected.GeneratedProjectMissing.
The general native audio cook remains documented in
V2/docs/asset-pipeline/audio-cooking.md. Middleware bank cooking extends that
content-cook flow but does not replace the native MetaSounds plus
AudioModulation path.
Runtime Fallback And QA Signoff#
Middleware must be treated as optional at runtime. If Wwise, FMOD, or custom
middleware is unavailable, Audio.MiddlewareFallback.Accepted.MayaAudioBuiltIn
routes gameplay events to the maya-audio built-in system. QA signoff must verify
that unavailable middleware does not block weapon fire, footsteps, spatial
positioning, listener updates, environment sends, occlusion reporting, or core
gameplay banks.
Signoff evidence must include:
- a successful Wwise cook for
Win64; - a successful FMOD cook for
PS5; - a successful custom provider cook for
XSX; - a missing-content-cook rejection;
- a missing-generated-project rejection;
- a hot-reload development session for
CoreGameplay; - a fallback route to
maya-audio.built-in; - runtime snapshot fields for build pipeline registration, per-platform cook readiness, dependency sidecar readiness, and last cooked output path.
Validation Commands#
Run the guide checker and adjacent middleware gates:
python3 V2/ue/Tools/check-v2-audio-middleware-sound-designer-workflow.py
python3 V2/ue/Tools/check-v2-audio-middleware-build-pipeline-integration.py
python3 V2/ue/Tools/check-v2-audio-middleware-fallback-manager.py
python3 V2/ue/Tools/check-v2-audio-middleware-project-generation-manager.py
python3 V2/ue/Tools/check-v2-audio-middleware-gameplay-event-trigger-manager.py
python3 V2/ue/Tools/check-v2-audio-middleware-hot-reload-manager.py
python3 V2/ue/Tools/check-v2-audio-middleware-soundbank-streaming-manager.py
python3 V2/ue/Tools/check-v2-audio-module.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/ue/Tools/check-v2-buildgraph.py
python3 V2/tools/validate-v2-docs.py
python3 -m json.tool V2/ue/Content/V2/Audio/AudioMiddlewareSoundDesignerWorkflow_V2_Contract.json