Source Of Truth#
This guide completes TODOS.phase-72.72.22.1.15 and is bound by
V2/ue/Content/V2/Audio/MusicSystemComposerGuide_V2_Contract.json.
The V2 launch music runtime remains MetaSounds plus AudioModulation. Optional Wwise and FMOD mappings are documented for partner studios, but the composer handoff must still preserve the native fallback path.
Primary source docs:
adaptive-music-state-machine.mdhorizontal-music-resequencing.mdvertical-music-layering.mdbeat-synchronized-transitions.mdtempo-beat-tracking.mdmusic-intensity-curves.mdmusic-stingers.mdcross-fade-transition-effects.mdmusic-memory-management.mdmusic-ducking.mdmusic-playlist.mdmusic-authoring-interface.mdaudio-middleware-backend.mdmusic-debug-overlay.md
Contract dependencies:
AdaptiveMusicStateMachine_V2_Contract.jsonHorizontalMusicResequencing_V2_Contract.jsonVerticalMusicLayering_V2_Contract.jsonBeatSynchronizedTransitions_V2_Contract.jsonTempoBeatTracking_V2_Contract.jsonMusicIntensityCurves_V2_Contract.jsonMusicStingers_V2_Contract.jsonCrossFadeTransitionEffects_V2_Contract.jsonMusicMemoryManagement_V2_Contract.jsonMusicDucking_V2_Contract.jsonMusicPlaylist_V2_Contract.jsonMusicAuthoringInterface_V2_Contract.jsonAudioMiddlewareBackend_V2_Contract.jsonMusicDebugOverlay_V2_Contract.json
System Map#
The composer-facing music graph starts with EV2AdaptiveMusicState and
substates such as Music.State.Tension.Suspense. Horizontal re-sequencing maps
each state to verse, chorus, and bridge sections, while vertical layering adds
or removes stems such as Music.Layer.Tension.Strings.Sunset from the current
state and context tags.
Beat synchronization supplies BPM, bars, phrases, and downbeat alignment for
section changes such as
BeatSync.Bar.Music.Section.Tension.VerseToMusic.Section.Tension.Chorus.
Intensity curves map normalized gameplay pressure into state, section, and stem
choices. Stingers, crossfade effects, ducking, playlists, and memory management
then constrain how the authored music behaves during gameplay.
Composer Deliverables#
Each delivered cue or stem must include:
- adaptive state and substate naming, using the
Music.State.*contract; - horizontal verse chorus bridge sections with loop points and tail policy;
- vertical stem and context-tag delivery, including required tags like
Context.Sunset; - beat grid BPM, beats per bar, bars per phrase, and downbeat timestamp;
- intensity curve mapping for low, mid, and high gameplay pressure;
- stinger and crossfade rules, including musical boundary and fallback cue;
- dialogue ducking behavior and memory budget classification;
- playlist metadata, composer credit, license tier, and avoid-repeat policy;
- optional Wwise FMOD event names only when an ADR approves middleware use.
Deliverables are rejected when they omit a native MetaSounds path, lack beat metadata, use state names outside the contract, or require external middleware banks for the default cook.
Authoring Workflow#
- Author the state and substate targets first in the music authoring interface.
Use
Tool.MusicAuthoringto inspect state rows, transition rows, layer assignment rows, and simulation output. - Add horizontal sections for verse, chorus, and bridge before tuning layer stems. Section ids must stay stable across revisions so beat-sync and playlist entries can keep references.
- Deliver vertical stems with context tags and normalized intensity ranges. Combat drums and sunset strings remain required reference checks.
- Run tempo beat tracking and beat-synchronized transition validation before final mix review. The beat grid is the source of truth for quantized transitions and debug overlay counters.
- Add stingers, ducking, playlist entries, and memory priorities only after the core state/section/layer graph validates.
Runtime Integration#
The runtime loads the default catalogs through UV2AudioConfigAsset and
registers them on UV2AudioSubsystem. The subsystem evaluates adaptive state,
horizontal section, vertical layers, beat-synchronized transitions, stingers,
ducking, playlist selection, and memory priorities using the same contracts
linked above.
Native MetaSounds plus AudioModulation remains the shipping path. Wwise FMOD
handoff data may mirror the adaptive music state machine through
AudioMiddlewareBackend_V2_Contract.json, but middleware profiles are disabled
by default, ADR-gated, licensing-gated, and cook-safe without external banks.
Debugging And Signoff#
Composer signoff must include:
Tool.MusicAuthoringsimulation evidence for the target state transition;Tool.MusicDebugOverlayevidence showing current state, active layers, upcoming transition, and beat counter;- a runtime snapshot confirming music playlist, ducking, memory, beat-sync, and middleware fallback registration;
- checked documentation links for every affected state, section, stem, stinger, playlist, and middleware event;
- validation logs for the focused checker and adjacent music gates.
The canonical debug frame uses Music.State.Tension,
Music.Layer.Tension.Strings.Sunset,
BeatSync.Bar.Music.Section.Tension.VerseToMusic.Section.Tension.Chorus, and
Editor.MusicDebugOverlay.Accepted.RuntimeFrame.
Validation Commands#
Run the guide checker and adjacent music gates:
python3 V2/ue/Tools/check-v2-music-system-composer-guide.py
python3 V2/ue/Tools/check-v2-music-authoring-interface.py
python3 V2/ue/Tools/check-v2-music-debug-overlay.py
python3 V2/ue/Tools/check-v2-audio-middleware-backend.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/MusicSystemComposerGuide_V2_Contract.json