Score Arrangement

Multi-layer musical score system for dynamic music – tempo, time signatures, fade control, and layer selection.

The Score Arrangement system provides multi-layer dynamic music for GS_Play projects. A ScoreArrangementTrack asset defines a musical score with configurable tempo, time signature, fade behavior, and multiple layers that can be enabled or disabled at runtime. This allows game music to adapt to gameplay state – adding or removing instrumental layers, changing intensity, or crossfading between sections.

Score tracks are loaded and controlled through the Audio Manager request bus.

For usage guides and setup examples, see The Basics: GS_Audio.

Score Arrangement asset in the O3DE Asset Editor

 

Contents


Data Model

ScoreArrangementTrack

A multi-layer musical score asset. Each track defines the musical structure and contains one or more layers that play simultaneously.

FieldValue
TypeId{DBB48082-1834-4DFF-BAD2-6EA8D83F1AD0}
ExtendsAZ::Data::AssetData
ReflectionRequires GS_AssetReflectionIncludes.h — see Serialization Helpers
FieldTypeDescription
Track NameAZStd::stringIdentifier for this score track.
Time SignatureTimeSignaturesThe time signature for this score (e.g. 4/4, 3/4, 6/8).
BPMfloatTempo in beats per minute.
Fade In TimefloatDuration in seconds for the score to fade in when playback begins.
Fade Out TimefloatDuration in seconds for the score to fade out when playback stops.
LoopboolWhether the score loops back to the beginning when it reaches the end.
LayersAZStd::vector<ScoreLayer>The musical layers that compose this score.
Active LayersAZStd::vector<int>Indices of layers that are active (audible) at the start of playback.

ScoreLayer

A single musical layer within a score arrangement. Each layer represents one track of audio (e.g. drums, bass, melody) that can be independently enabled or disabled.

FieldValue
TypeId{C8B2669A-FAEA-4910-9218-6FE50D2E588E}
FieldTypeDescription
Layer NameAZStd::stringIdentifier for this layer within the score.
Audio AssetAZ::Data::Asset<AudioClipAsset>The audio clip for this layer.
VolumefloatBase volume level for this layer (0.0 to 1.0).
Fade TimefloatDuration in seconds for this layer to fade in or out when toggled.

TimeSignatures (Enum)

Supported musical time signatures for score arrangement tracks.

FieldValue
TypeId{6D6B5657-746C-4FCA-A0AC-671C0F064570}
ValueBeats per MeasureBeat UnitDescription
FourFour4Quarter note4/4 – Common time. The most widely used time signature.
FourTwo4Half note4/2 – Four half-note beats per measure.
TwelveEight12Eighth note12/8 – Compound quadruple meter. Four groups of three eighth notes.
TwoTwo2Half note2/2 – Cut time (alla breve). Two half-note beats per measure.
TwoFour2Quarter note2/4 – Two quarter-note beats per measure. March time.
SixEight6Eighth note6/8 – Compound duple meter. Two groups of three eighth notes.
ThreeFour3Quarter note3/4 – Waltz time. Three quarter-note beats per measure.
ThreeTwo3Half note3/2 – Three half-note beats per measure.
NineEight9Eighth note9/8 – Compound triple meter. Three groups of three eighth notes.

See Also

For conceptual overviews and usage guides:

For component references:


Get GS_Audio

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