GAME_SCORING_AND_ADAPTIVE_PRACTICE.md

music/GAME_SCORING_AND_ADAPTIVE_PRACTICE.md

Game Scoring and Adaptive Practice

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
Canon served: _source/01_Tier_1_Foundation/T1_Audio_Spec [DRAFT v0.1].md §3.7 (adaptive
delivery) and §10.10, which records in writing that no dedicated audio comparator research has
ever been run and names the first of its four unanswered questions as "how shipped AAA titles
structure an adaptive music system's authoring surface." This document answers that question and
only that question; the other three (SFX library scale, VO routing against script churn, automatic
mix and loudness validation) stay boarded.
If this document disagrees with canon, CANON WINS and this document is the defect.

TIER: RESEARCH SYNTHESIS — PROPOSAL-TIER. This document is HOW, never WHAT. It sets no canon, names

no region content, and changes no spine or registry row. Every substantive claim carries a source

(URL, or book plus author plus chapter); where sources disagree the disagreement is stated; where a

statement is craft consensus rather than evidence it is labelled CRAFT CONSENSUS. Every principle

carries a PIPELINE HOOK line marked CODE-ABLE or MEASURE-ONLY, naming the field and the operation.

WHAT THIS LANE ANSWERS. The four craft volumes that precede this one are all about the NOTES —

COUNTERPOINT_AND_VOICE_LEADING.md (how voices avoid destroying each other),

COUNTER_MELODY_AND_DIALOGUE.md (how voices talk to each other),

MOTIVIC_DEVELOPMENT_AND_PHRASE_GRAMMAR.md (how a cell becomes a melody),

LEITMOTIF_TECHNIQUE.md (how a melody becomes an identity). Every one of them assumes a piece of

music that plays from beginning to end. This document is about what happens when the player

interrupts it. It is the volume on FORM UNDER INTERACTION: how a cue is built so that a runtime

system can enter it, leave it, escalate it, layer it, interrupt it and loop it without the music

sounding broken, and how that constraint reaches back into the composition itself. Where it touches

a topic docs/proposals/MUSIC_COMPOSITION_DOCTRINE.md §6 already opened — vertical layering,

horizontal re-sequencing, the state model, the grid contract — it says so and supplies the practice

evidence, the measurable form, and the deviation, rather than restating the doctrine.

0. The measured diagnosis, read off our own tree

Stated in our own numbers first, because a research document that cannot say what is wrong is a

reading list.

Our composition layer has no adaptive fields at all. The pass-plan schema — the artifact that is

actually compiled and rendered, at build/audio/pass7/plans/*.json via

harness/music_gen/pass2_realise.py — carries exactly these top-level keys: schema_version,

pass, cue_id, public_name, theme_id, theme_family, cue_purpose_class, chapter_id,

region_page, cue_rows, brief, derivation, care, target_duration_s, tempo_bpm,

beats_per_bar, key, cycle, harmony, harmony_variants, pokok, pokok_variants,

sections, layers, novelty_schedule, hook, theme, phrases, statements,

melodic_schedule, silence_windows, leitmotif_references, instrumentation_plan,

declared_expectations, repairs, harmonic_plan. There is no state, no transition, no entry or

exit cue, no adaptive role, no motif-carrier declaration, no stinger. A repository-wide search for

adaptive_role, motif_carrier_stem, state_machine, transition_class, entry_cue and

exit_cue across harness/, registries/ and build/audio/ returns nothing. Every cue we have

authored to date is a linear through-composed piece that happens to loop.

The addressing layer does carry an adaptive vocabulary, and it is unconsumed.

build/audio/music_cue_table.csv holds 222 rows with adaptive_class (loop 90, adaptive 76,

oneshot 56), layer_role (bed 84, stinger 56, tension 33, combat 33, motif 10, bed_chapter_scope 6),

layer_mode (swap 132, base 84, ambience_stack 6), track_type (zone_bed 90, stinger 56,

tension_layer 33, combat_layer 33, motif_statement 10) and trigger_event (zone_enter 84,

threat_state_rise 33, boss_phase_enter 33, and six smaller classes). So the plan of record already

says that 33 combat layers, 33 tension layers and 56 stingers exist. None of them has been composed,

none has been scored, and the ledger records the whole table as having no in-engine consumer

(docs/PIPELINE_LEDGER.md §7 row F1).

T0_Theme_Registry has the columns and not the values. 38 rows, 45 columns. closure_policy,

motif_class and tier are populated 38/38; carrier_voice 30/38; plant_node 13/38;

diegetic_surface 4/38. But per_stem_role, tempo_bpm and bar_length are populated 0/38 —

the three fields any runtime scheduler needs before it can quantise anything.

The one seam object we own is the self-loop, not the state pair.

harness/music_gen/loop_seams.py composes a written turnaround so a cue wraps onto its own head

under five declared rules (S1 no second deviant, S2 no new pitch class, S3 the final chord prepares

the opening chord, S4 the harmonic signature survives, S5 measured against a no-turnaround control).

That is genuinely good craft and it is the wrong axis: it solves cue-to-itself and says nothing about

cue-to-cue. music_seams in harness/gates_config.json runs loop_seams.py --self-test, so the

gate proves the module works and never touches a transition.

The energy floors are whole-track statistics on a class vocabulary with a hole in it. From

build/audio/exemplars/instruments/DYNAMIC_ARC_VALIDATION.md §8: EXPLORATION 0.274 (n=8), BATTLE

0.502 (n=5), MELANCHOLIC 0.222 (n=4), CREDITS_TRIUMPH 0.293 (n=4), TITLE_CHARACTER 0.293 (n=3), BOSS

0.350 (n=2), TENSION 0.213 (n=2). SANCTUARY has no row, and harness/music_gen/mix_policy.py

CLASS_MAP maps SANCTUARY onto MELANCHOLIC's corpus. Our current flagship cue,

build/audio/pass7/plans/PASS7_FLORES_FALLS.json, is cue_purpose_class SANCTUARY at

target_duration_s 180.0 — so the borrowed floor sits directly on the critical path.

That is the diagnosis. The rest of this document is what the practice actually does about each of

those, and what of it we should take.

1. SOURCES

Read in full unless marked. Where a source was blocked or unavailable, that is stated on its line and

nothing in this document rests on it alone.

1.1 Craft manuals and textbooks

2014 (ISBN 978-0321961587). Publisher sample containing the full table of contents, the front

matter and the complete text of Chapter 1 read at

https://ptgmedia.pearsoncmg.com/images/9780321961587/samplepages/9780321961587.pdf . Chapters

cited by title and page range from that TOC: ch. 2 Breaking Down the Language of Interactive Music

(35), ch. 3 Spotting the Game (53), ch. 7 Composing and Editing Music Loops (125), ch. 8 Horizontal

Resequencing (143), ch. 9 Vertical Remixing (155), ch. 10 Writing Transitions and Stingers (165),

ch. 14 Real-Time Tempo Variation and Synchronization (211), ch. 15 Advanced Dynamic Music

Manipulation Techniques (219), ch. 16 Aleatoric Performance Techniques for Video Games (229),

ch. 17 Algorithmic and Generative Music Systems (237), ch. 18 Using Middleware to Create Advanced

Compositions (247), ch. 20 Composing Music with a Digital Audio Workstation (269). Book page:

https://www.oreilly.com/library/view/writing-interactive-music/9780133563528/

fourteen chapters. Publisher page: https://mitpress.mit.edu/9780262534499/a-composers-guide-to-game-music/ .

Book not held; chapter-level content sourced from Phillips's own author posts, which cite her page

numbers directly — p. 195 (Vertical Layering part 1) and p. 200 plus chapters 11-12 on interactive

versus procedural systems (Vertical Layering part 2, comment reply). **An earlier revision also

claimed repetition fatigue is treated in chapters 4, 9, 10 and 12; no fetched post says that, and

the claim is withdrawn — see §2.2.**

CRC Press/Routledge, 2016 (ISBN 978-1138021419).

https://www.routledge.com/Composing-Music-for-Games-The-Art-Technology-and-Business-of-Video-Game/Thomas/p/book/9781138021419 .

**UNVERIFIED ON RE-CHECK (2026-08-08): both routledge.com and taylorfrancis.com now return HTTP 403,

so the part/chapter structure below could not be re-confirmed against any publisher page. It is

reported as previously read, not as verified. Only the §2.4 ordering argument depends on it, and

that argument is marked structural there.** Structure as read: PRINCIPLES (ch. 1 Timeless Principles of Music

Scoring, ch. 2 Distinguishing Principles of Video Game Scoring, ch. 3 Applied Principles in Music

Design), TECHNIQUES (ch. 4 Basic, ch. 5 Advanced Music Scoring Techniques for Games), PROCESSES

(ch. 6 Composition, ch. 7 Production, ch. 8 Implementation), BUSINESS, EVOLUTION. The publisher's

sample PDF at routledge.com returned HTTP 403 and was not read.

Engine*, Focal Press/Routledge, 2015.

https://www.routledge.com/Game-Audio-Implementation-A-Practical-Guide-Using-the-Unreal-Engine/Stevens-Raybould/p/book/9781138777248 .

Named as the engine-side companion text; contents not read, and nothing below rests on it.

978-1-107-11687-0), foreword by James Hannigan. Book not held. The CUP front matter at

https://assets.cambridge.org/97811071/16870/frontmatter/9781107116870_frontmatter.pdf carries the

full contents: Introduction: Beyond the Candelabrum [1]; part i analysing video game music — 1 The

Video Game as a Source [13], 2 Methods of Analysis [33]; part ii critical perspectives — 3

Texturing and the Aesthetics of Immersion [57], 4 Music and Virtual Game Worlds [85], 5

Communication for Play [116], 6 Hollywood Film Music and Game Music [143], **7 Musical Play and

Video Games [178]**; Epilogue: Fun, Play and Music [201]; Appendix: How to Hear a Video Game [208].

Michael Austin's review at https://www.gamejournal.it/tim-summers-understanding-video-game-music/

(G|A|M|E 6/2017) confirms the chapter 7 subject independently: "Summers underlines in Chapter 7 the

importance of interaction in the analysis and overall understanding of video game music," with

*Ocarina of Time*'s played ocarina as the example. **CORRECTION LANDED 2026-08-08: an earlier

revision of this document attributed Hollywood/classical thematic practice to chapter 7 and

credited the book with a finding that leitmotif identification is easier with a reprise than with a

variation. The chapter number was wrong — Hollywood film music is chapter 6 — and the

reprise-versus-variation finding is in neither cited source and could not be verified anywhere. It

has been removed from §7 and nothing in this document now rests on it.**

1.2 Peer-reviewed and academic

25.3, September 2019. Full text read at

https://www.mtosmt.org/issues/mto.19.25.3/mto.19.25.3.medina.gray.html (PDF:

https://www.mtosmt.org/issues/mto.19.25.3/mto.19.25.3.medina.gray.pdf ). The single most useful

paper for this lane: it makes seam quality measurable on five named parameters.

PhD dissertation, Yale University, 2014.

https://www.academia.edu/7594328/Modular_Structure_and_Function_in_Early_21st_Century_Video_Game_Music

(referenced as the longer form of the same method; abstract only).

1.3 Practitioner talks and postmortems

read in full at https://www.docswell.com/s/geekdrums/KRXX3J-GDC2017-magi (mirror:

https://slideshare.net/geekdrums/gdc2017-epic-and-interactive-music-in-final-fantasy-xv ). Vault

entry: https://www.gdcvault.com/play/1023971/Epic-AND-Interactive-Music-in

Gamasutra/Game Developer, 29 May 2003. Read in full at

https://www.gamedeveloper.com/audio/design-with-music-in-mind-a-guide-to-adaptive-audio-for-game-designers

https://awintory.medium.com/from-journey-to-erica-214355002896

Developer / author blog. Read in full at

https://winifredphillips.wpcomstaging.com/2017/08/15/video-game-music-systems-at-gdc-2017-tools-and-tips-for-composers/

. Summarises five GDC 2017 sessions: Steve Green on *ABZU*, Leonard J. Paul on *Vessel*, Sho

Iwamoto on *Final Fantasy XV*, Becky Allen on *Plants vs. Zombies: Heroes*, Paul Weir on *No Man's

Sky*.

Spyder to Sackboy: GDC 2021)". Read in full at

https://winifredphillips.wpcomstaging.com/2021/08/15/horizontal-resquencing-and-song-structure-for-game-music-composers-from-spyder-to-sackboy-gdc-2021/

Read in full at

https://winifredphillips.wpcomstaging.com/2020/07/14/game-composers-and-the-importance-of-themes-repetition-in-game-music-pt-2/

Developer. Read in full at

https://www.gamedeveloper.com/audio/music-game-plan-tactics-for-the-video-game-composer-part-four-

https://winifredphillips.wpcomstaging.com/2014/03/06/a-composers-guide-to-game-music-vertical-layering-part-1/

and https://winifredphillips.wpcomstaging.com/2014/03/12/a-composers-guide-to-game-music-vertical-layering-part-2/

https://www.gdcvault.com/play/1024068/-DOOM-Behind-the , video at

https://www.youtube.com/watch?v=U4FNBMZsqrY . Announcement coverage read at

https://80.lv/articles/gdc-behind-the-music-of-doom-with-mick-gordon ; the talk itself was not

viewed and no technique claim below is attributed to it.

Collaboration and Geese!", GDC 2011. https://gdcvault.com/play/1014617/From-MYTH-to-HALO-Marty —

**entry confirmed (speaker, year, title) but the session abstract and video are behind Vault

membership; nothing in this document may be attributed to it.** The only O'Donnell material

actually read is the GDC 2005 *Halo 2* audio-production session coverage at

https://www.gamedeveloper.com/audio/gdc-2005-report-audio-production-for-i-halo-2-i- , and §7 has

been narrowed to what that coverage supports.

https://bearmccreary.com/god-of-war/ and the PlayStation Blog theme breakdown at

https://blog.playstation.com/archive/2018/05/08/god-of-wars-composer-reveals-the-secrets-behind-five-themes-from-the-games-epic-soundtrack/

full at https://jasonyu.me/breaking-the-loop-botw/ (Game Developer mirror:

https://www.gamedeveloper.com/audio/breaking-the-loop-a-look-at-the-cinematic-music-of-breath-of-the-wild )

1.4 Middleware documentation and implementation tutorials

https://www.audiokinetic.com/library/2025.1.3_9037/?id=building_interactive_music_hierarchies_tips_best_practices

HTTP 403, not fetched.

(https://www.audiokinetic.com/en/courses/wwise201/?id=setting_tempo_and_cues ), "Positioning Entry

and Exit Cues"

(https://www.audiokinetic.com/en/courses/wwise201/?id=lesson_1_re_sequencing_creating_variation_using_horizontal_approach_positioning_entry_and_exit_cues/ ),

"Adjusting the Default Transition Rule"

(https://www.audiokinetic.com/en/courses/wwise201/?id=lesson_6_implementing_transitions_part_i_adjusting_default_transition_rule/ ),

"Configuring a Music Switch Container"

(https://www.audiokinetic.com/en/courses/wwise201/?id=configuring_music_switch_container ),

"Configuring the Transition Segment"

(https://www.audiokinetic.com/en/courses/wwise201/?id=using_transition_segments_configuring_transition_segment/ )

all HTTP 403, not fetched. Audiokinetic's own community Q&A threads

(https://www.audiokinetic.com/qa/9281/sync-to-last-exit-position-and-have-transition-segments and

https://www.audiokinetic.com/qa/10882/music-exit-source-next-grid-should-include-exit-cue-falls-grid )

were surfaced by search but likewise not fetched. **Consequence, stated plainly: every Wwise

behaviour described in §3 below is taken from practitioner documentation that reproduces it, not

from Audiokinetic's own pages. It is second-hand and marked as such at the point of use.**

Music For Video Games Part 3". Read in full at

http://www.gamesounddesign.com/in-depth-creation-of-dynamic-music-in-a-video-game.html ,

http://gamesounddesign.com/in-depth-creation-of-dynamic-music-in-a-video-game-page-four.html and

http://gamesounddesign.com/making-interactive-music-for-games-part-three.html

https://geraldclarkaudio.medium.com/space-shooter-adaptive-music-with-wwise-and-unity-5d7e95d0af56

(working-with-instruments, authoring-events, glossary) returned empty bodies; the site is

JS-rendered.** FMOD behaviour in §3.3 is therefore taken from third-party tutorial material:

Stephen Swift, "FMOD, an Audio Engine for Video Games, Adapted for Theater"

(https://www.usitt-sound.org/wp-content/uploads/2020/09/FMOD_Adapted_for_Theater.pdf ), the SAE

course notes at https://limulo.github.io/game-sound-sae2017/fmod.html , and the "Adaptive Music in

FMOD Studio" tutorial series ( https://www.youtube.com/watch?v=7PpSYcigCUQ tracks and tempo

markers; https://www.youtube.com/watch?v=DgzgAXe-6fI transition markers and logic).

https://splice.com/blog/adaptive-music-video-games/ — read in full; used only for dated system

history (iMUSE 1991, Banjo-Kazooie 1998), not for craft rules.

US patent filed 1994. https://en.wikipedia.org/wiki/IMUSE . The Splice history above dates its

debut to *Monkey Island 2* (1991) and names the team as Land, McConnell and Clint Bajakian; the

patent is Land and McConnell.

1.5 Sources deliberately not used

Several search results for "how long should a game music loop be" and "combat music best practices"

were content-marketing blog posts on AI-music and stock-music sites. They agree with each other and

cite nobody. No number in this document comes from them. Where this document gives a duration it

is either from a named practitioner source, from a measured corpus row, or it is labelled CRAFT

CONSENSUS and given as a band rather than a value.

2. What the craft manuals actually teach

2.1 Sweet's language, which is the vocabulary the industry argues in

Sweet's Chapter 1 builds the comparison the whole field starts from (*Writing Interactive Music*,

Table 1.1, p. 16): film is passive watching, a console game is active interaction; film averages two

hours against ten-plus for a console game; film is played once, a game many times; film is linear

with one beginning, middle and end, a game nonlinear with multiple outcomes; film carries about one

hour of music, a console game two to three hours. Table 1.2 (p. 17) extends it: a casual game of 2-3

hours carries 15+ minutes of music, a console game of 10+ hours carries 2-3 hours, an MMORPG of 50+

hours carries 15+ hours.

Those tables matter to us directly. Josh's expanded bar is twelve to twenty tracks per chapter at two

to seven minutes each across seventy-nine nodes (T1_Audio_Spec §2.1) — 950 to 1600 tracks, and at

the midpoint of the duration band that is roughly 71 to 120 hours of music. **That is between five

and eight times the entire music budget Sweet records for an MMORPG.** The masterpiece program

already answers this with a leitmotif economy rather than a library (motif × palette × purpose class,

each authored once and combined), and this document's contribution is the second half of the same

answer: an adaptive architecture is the other multiplier, because a cue that can be re-sequenced and

re-layered produces many musical experiences from one composed artifact. The arithmetic is not a

footnote; it is the argument for taking this lane seriously.

The repetition problem is the founding constraint and it is named as such. Sweet reproduces the

attribution to George "The Fat Man" Sanger — repetition is the problem — and states the mechanism

plainly: the play experience is typically far longer than the music can support (p. 18). Everything

in the interactive toolbox exists to buy mileage against that arithmetic.

Sweet's taxonomy of the composer's toolbox (ch. 2, pp. 44-50) is the cleanest available list of what

a runtime system can actually do to music, and it is broader than the vertical/horizontal pair we

have been working with:

Chapter 3's scoring-technique ladder is the one we should map ourselves against: noninteractive game

score, horizontal resequencing, vertical remixing, MIDI scores, advanced interactive scores (pp.

62-65). We are on the first rung.

The music-function list (ch. 1, "Exploring Music Function within Games", pp. 26-27) is the

functional grammar this document uses for cue classes in §4. Sweet's list includes communicating an

event to the player — where he defines a musical stinger as a short musical phrase of **3 to 12

seconds** acting as a musical exclamation point — emotionally connecting a player to a game through

an iconic theme, and enhancing narrative and dramatic story arcs.

The hook vocabulary. Sweet: the game engine makes requests to the music engine to change state

or fire a stinger, and those requests are called hooks because the game is hooking into the music

engine (p. 28). His list of triggers a composer should expect: changing the emotional state (explore

to combat), moving to a different location, number of enemies attacking, player health remaining,

time of day or weather, proximity of an enemy, solving a puzzle or finding treasure, killing a boss

or finishing a stage (p. 28). **Every one of those exists as a real game-state source in our own

design, and none of them is wired to music.**

Serendipitous sync is Sweet's name for a score with no synchronisation at all — music that begins

on area entry and then runs statically, ending when it ends, like turning on the radio during a film

(p. 28). He names the original *Bioshock* (2007) as a shipped example. This is worth naming precisely

because serendipitous sync is exactly what our current pipeline produces, and Sweet's framing

lets us say so without pretending it is a failure state: it is the first rung of a real ladder and a

shipped AAA title stood on it.

The conceptualisation process (ch. 1, pp. 29-32) is a seven-step ordering that our own program

should be able to answer for every chapter: gather and assess materials; prioritise primary music

objectives; create an asset list; define interactive elements in the score; create a supporting audio

style guide; create an audio design document; revise. Step 4 — define the parameters in the game that

control the elements of the score — is the step we skip. Step 5's style-guide criteria (genre, tempo,

instrumentation, size of ensemble) are already carried far more richly by our per-culture register

cards in MUSIC_COMPOSITION_DOCTRINE §4, and Sweet's own note that a globe-hopping game like

*Uncharted 2* may need a different style guide per part of the game is a direct precedent for the

per-node register card.

2.2 Phillips on layering, and on the cost of it

Phillips's operative definition is that vertical layering works on the principle of simultaneous,

stacked musical components ("Music Game Plan", part four). Her worked example is a six-layer

interactive track for *LittleBigPlanet 2: Toy Story*, and the craft warning is the useful part: all

six layers have to be able to play at once, which made the composition genuinely difficult. The

payoff she names is combinatorial — the layers are designed to be played in many different

combinations, which is what gives the implementation team choices.

Two consequences follow, and both are constraints on the WRITING rather than on the mix.

split afterwards. The doctrine already states this as its standing warning against lazy vertical

work (MUSIC_COMPOSITION_DOCTRINE §6.1: compose the piece, then cut it; never assemble layers and

call the sum a piece), and Phillips's Toy Story case is the practitioner evidence for it.

low-keyed atmosphere and deliver high energy — the same material serving both ends of the intensity

range. **That is precisely the problem our per-class energy floor is trying to police from the

outside**, and Phillips's answer is that it is solved in the writing, by choosing material that

reads correctly at both densities.

Sweet's Chapter 9 is the complementary technical treatment and gives the sub-topics a vertical

system must decide: deciding how many layers to use (p. 158); additive versus individually controlled

layers (p. 159); fade times (p. 160); layer anatomy (p. 161); non-synchronisation of layers (p. 162).

That last one is the interesting one and it is not in our doctrine: layers need not be the same

length or start together. A layer that is deliberately out of phase with the base is a standard

variation generator.

Repetition fatigue is Phillips's named through-line, and the one remedy her posts state directly

is procedural variation: a system that "avoid[s] repetition fatigue by virtue of music that randomly

or unpredictably varies its content," which she distinguishes from interactive systems that "are

designed to always react in direct accord with the state of gameplay, without any random or

unpredictable variables" (Vertical Layering part 2, comment reply, pointing at chapters 11-12 of *A

Composer's Guide*).

THE LANDMARK RULE — CRAFT CONSENSUS, attribution withdrawn 2026-08-08. An earlier revision of

this document quoted "Phillips's sharpest single rule" as: any repeating music must be carefully

constructed to avoid landmarks that would alert listeners to the looping nature of the work, and

credited repetition fatigue to chapters 4, 9, 10 and 12 of *A Composer's Guide*. Neither survives a

source check. All four Phillips items in §1.3 were fetched and read on 2026-08-08 — Music Game Plan

part four, Vertical Layering parts 1 and 2, and Repetition in Game Music part 2 — and **none of them

contains the word "landmark" or that rule in any form**, and none of them names chapters 4, 9, 10 or

12. What the posts do carry is page 195 (Vertical Layering part 1: "the concepts that you'll find in

my book, beginning on page 195") and page 200 with chapters 11-12 (part 2). The book is not held, so

the rule cannot be attributed to it either.

The underlying craft point stands on its own and is retained at CRAFT CONSENSUS with no citation: **a

"landmark" is a memorable, positionally unmistakable event** — a solo entry, a cymbal crash, a

distinctive fill — and its function inside a loop is to start a clock in the listener's head, which

is what converts repetition into perceived repetition. It is corroborated indirectly by the *Breath

of the Wild* evidence in §4.1 (silence long enough that the listener stops anticipating music is

precisely the removal of positional landmarks) and it remains a writable, checkable property that is

not in our rubric. R10 is therefore a CRAFT-CONSENSUS rule, not a sourced one, and is marked as

such at the point of use.

2.3 Phillips on song structure as the resequencing unit

Her GDC 2021 material ("From Spyder to Sackboy") supplies the cleanest available answer to the

question "what are the segments?": use song-form sections. Introduction plays once at the beginning;

verse-chorus combine as the main looping section; a bridge is a shorter loop triggered at specific

gameplay moments; an interlude is inserted after particular events; an outro plays at level

completion. Her stated reason is the one that matters: song structure provides well-defined segments

that are inherently dissimilar, so jumping from one segment to the next feels dramatic rather than

arbitrary. Her *Sackboy* sequencing is purposeful rather than shuffled — intro, main loop, bridge at

a dramatic moment, interlude, main loop return, outro — and she frames the progression as a reward:

as the player advances, the music advances to reveal new content.

That reward framing is directly transplantable to a 79-node game with a 12-tier mastery ladder,

and it is a better fit for our structure than the intensity-ramp framing that dominates the shooter

literature.

2.4 Thomas, and the principle that scoring principles come first

Thomas's *Composing Music for Games* is organised PRINCIPLES → TECHNIQUES → PROCESSES → BUSINESS →

EVOLUTION, and the ordering is the argument: chapter 1 is Timeless Principles of Music Scoring

(everything true of scoring any medium), chapter 2 Distinguishing Principles of Video Game Scoring,

chapter 3 Applied Principles in Music Design, and only then chapter 4 Basic and chapter 5 Advanced

Music Scoring Techniques for Games. The publisher's own framing is that the book blends aesthetic,

technique, technology and business.

The book itself was not read (the Routledge sample returned 403), so this document takes exactly one

thing from it and marks it as structural rather than detailed: **the ordering is a corrective we

need.** Our audio corpus is technique-rich and principle-thin in exactly this dimension — we have a

measurement rig, a rubric, a doctrine and a licence law, and we have no written statement of what

adaptive music is FOR in this game beyond "the composition must survive interactivity"

(T1_Audio_Spec §3.7). Whitmore's article in §5.1 below supplies that missing statement from a

source we did read.

3. The technique vocabulary, pinned against middleware ground truth

Our doctrine's §6.1 vocabulary is correct as far as it goes. This section pins it to the object model

the two dominant middlewares actually implement, because that object model is the de-facto industry

authoring surface — the thing T1_Audio_Spec §10.10 asked about — and because our own MusicDirector,

if we build one, will be judged against it.

3.1 The segment is the unit, and it has six landmarks, not two

Practitioner documentation of the Wwise music hierarchy (gamesounddesign.com, "Making Interactive

Music For Video Games Part 3" and "Dynamic Music Creation Using Wwise"; second-hand per §1.4)

describes a music segment carrying:

upbeat — which can be played over the tail of the outgoing segment;

which is played over the head of the incoming segment;

entry cue are located.

The authoring instruction that follows is concrete, and it is stated verbatim in one of the tutorial

sources — "Dynamic Music Creation Using Wwise" part 1, which is where it comes from and the only

fetched source that carries it (an earlier revision said "repeated in every tutorial source read",

which the check does not support): "Before rendering each segment in my DAW, I generally insert a few

bars of silence between them to capture the reverb tails and other unfinished notes, avoiding any

abrupt cuts. These extra bars are used as 'post-exit regions'; a segment's post-exit is played back

over the following segment, and this helps blend the segments nicely."

This is the single most transferable piece of the whole lane and we already half-have it. Our

doctrine §6.4 requires exactly this ("Deliver tails as real audio past the exit cue; never bake a

fade into a loop file") and T1_Audio_Spec §8.5 carries it as format contract. What we do not have

is the field: no plan, no theme row and no renderer knows where a cue's entry and exit cues sit, so

the tail cannot be delivered separately because there is nothing to deliver it relative to.

Phillips's and the tutorials' shared framing for the composer is: think in blocks — intro, loopable

body, variations, hits, tails — with each module usable alone and combinable with others.

3.2 The transition rule is a pair-indexed object

A transition in Wwise, as described in the practitioner documentation, is not a fade; it is a rule

addressed by (source, destination) with these parts:

grid, next cue, next custom cue, or the segment's exit cue;

as the playing segment, the last position played, or a specified playlist item;

settings;

its own pre-entry and post-exit behaviour;

alone.

Two asymmetries in that model are load-bearing and are easy to get wrong. First, **the source sync

point may be a grid position but the destination sync point must be a cue** (Audiokinetic community

Q&A, surfaced via search summary, not fetched — treat as second-hand). That is what makes entry-cue

placement a compositional decision rather than a bookkeeping one: the entry cue is the note the

incoming music is felt to start on, and everything upstream of it is pickup. Second, the rules are

resolved by specificity: a matrix of pair-specific rules sits over a default rule, and the most

specific match wins.

Whitmore, writing in 2003, already ranked the three strategies by what they cost and buy

("Design With Music In Mind"): cue-to-cue transitions on musical boundaries are simple but musically

limited; layering gives continuity but handles rapid cue changes badly; a transition matrix enables

custom transitions between any pair, allowing dramatic yet natural motion, and he names it as ideal

for orchestral scores. **Our Tier-H lane is orchestral and horizontal-first by ruling

(MUSIC_COMPOSITION_DOCTRINE §6.2), which puts us squarely in the case Whitmore says needs the

matrix** — and §6.6 records that the engine has no native transition-matrix object, so we own it.

3.3 FMOD's model, which is timeline-shaped rather than segment-shaped

FMOD Studio expresses the same problems on a different geometry, and the differences are instructive

(third-party tutorial sourcing per §1.4):

jumps to a destination marker.

anywhere inside the region and the condition holds, the jump fires — with quantisation

constraining the jump to the musical pulse. This is the crucial one: it is how a system reacts

promptly to a game event while still moving on a bar line.

and the destination — FMOD's transition segment, with room for additional content, automation and

crossfades.

our design does not have an equivalent for, and it is the correct answer to "hold the music here

until the scripted thing finishes" — a boss phase that ends on a player action, a cutscene whose

length is not knowable, a ceremony that waits for the player to step forward.

The taxonomy difference is worth stating once: **Wwise composes a piece out of segments; FMOD carves

a piece out of a timeline.** They express the same five operations (wait for a boundary, jump, bridge,

hold, layer). Any MusicDirector we write should implement all five, because a design that omits "hold"

will discover it needs it during the first scripted boss phase.

3.4 Stingers, which are the cheapest interactive win and the easiest to write badly

Definitions converge across sources. Sweet: a short musical phrase of 3-12 seconds acting as a

musical exclamation point, used to communicate an event (ch. 1 p. 27, ch. 10 pp. 172-173, where he

splits them into synchronised and non-synchronised). The Wwise practitioner documentation adds the

implementation facts: stingers sync to the playing music via cues, they inherit segment-level

benefits such as instrument variation, they can be assigned hierarchically and overridden per

context, and a ducking bus can pull the bed down under the stinger for a breakdown effect.

The craft constraint that our doctrine states and the middleware cannot enforce for us: **a stinger

must be harmonically and rhythmically compatible with every bed it can land on**

(MUSIC_COMPOSITION_DOCTRINE §6.1, and §6.5's head-motif stinger rule restricting them to the

region's tonic and relative with beat-quantised firing). Sweet's synchronised/non-synchronised split

is the honest fallback: a stinger that cannot be made compatible with every bed is written

non-synchronised and pitched neutrally, or it is not a stinger.

Our cue table already declares 56 of them. **Not one has been composed, and no compatibility check

exists.**

3.5 Variation containers, which are how a loop stops being a loop

The playlist container is the mechanism behind the "random playlists, track variation, and

alternative start points" and "time variation" that Sweet lists in ch. 18 (pp. 255-256). The

practitioner-documented behaviour: segments are grouped into playlists with sequence, random,

shuffle and step behaviours, weights, and loop counts, so a state maps to a POOL of segments rather

than to one file, and the same state can sound different on its third visit.

This is the correct structural answer to the repetition problem for zone beds, and it is cheap

relative to composing more music, because a variation is a re-orchestration or a re-ordering of

material that already exists.

Two further mechanisms from Sweet ch. 18 are worth keeping in view even though they cost more:

alternative start points (the same cue entered at a different section on re-entry) and time variation

(the same material at a different tempo or with different rests).

4. Cue structure per class

This is the section the brief asked for, and it is the one where the literature is thinnest and

craft consensus does most of the work — so the register is explicit throughout. The class names below

are ours, from harness/music_gen/mix_policy.py CLASS_MAP and the exemplar sheet vocabulary:

EXPLORATION, BATTLE, BOSS, SANCTUARY, TENSION, MELANCHOLIC, TITLE_CHARACTER, plus CREDITS_TRIUMPH in

the corpus sheet.

For each class: what the class is FOR (Sweet's function grammar), the FORM that serves it, the

DENSITY and length posture, the ENTRY and EXIT behaviour, the MOTIF policy, and the failure mode.

4.1 EXPLORATION

Function. Establish place and support unscripted, self-paced activity of unbounded duration.

Sweet's variable-length-of-experience problem lands hardest here: the composer cannot know whether

the player will spend ninety seconds or ninety minutes in a zone.

Form. Non-teleological. The material must be able to stop being interesting-in-a-forward-direction

without sounding unfinished, because it will be interrupted at an arbitrary point and re-entered

later. Song-form with a strong chorus is the wrong shape here; the doctrine's cyclic and

ostinato-based registers are the right one. **This is the one class where our Balinese-derived cyclic

grammar (pokok, colotomic strokes, kotekan) is not a cultural accommodation but the structurally

correct choice**, and that is a point in favour of the register-first approach rather than a

concession.

Density. The most important practice finding in this whole document, and it cuts directly against

a global energy floor. Two of the most admired open-world exploration scores of the modern era are

built on SILENCE as a structural element, not as an absence:

separated by silences long enough that the listener stops perceiving rhythm and therefore stops

anticipating more music — which is precisely why it does not fatigue the way a looped track does.

He is careful that this is not ambient: each musical cell is a little melody. He also documents

fragmentation as a compositional device rather than a budget one — the Temple of Time theme slowed

and fragmented to the point of near-unrecognisability — and gives measured contrasts. His

traditional-loop range runs 0:26 to 1:37, and the endpoints are **Super Mario Bros. 3 at 0:26,

Twilight Princess at 0:36 and Skyward Sword at 1:37** — a cross-franchise range, not a Zelda-only

one as an earlier revision stated. Within BotW itself he contrasts Prince Sidon's theme at "a 32

second long loop" against Mipha's, "a track, which has a distinct beginning and ending, with no

repeated section."

what make each cue land when it finally arrives. (This one is CRAFT CONSENSUS in secondary sources

rather than a composer statement; treat it as weaker evidence than the BotW analysis.)

The doctrine already names silence as a first-class state (§6.3) and cites the *Breath of the Wild*

horse-riding cue's absent percussion. What is missing is the arithmetic: if silence is a state,

somebody must declare how long it lasts and how often it returns, and no field anywhere in our stack

carries a silence duty cycle.

Length. CRAFT CONSENSUS, band not value: exploration material wants either a long arc (so the

loop point is far away) or extreme fragmentation (so there is no loop to notice). The middle — a

two-minute loop with a landmark in it — is the fatigue-maximising choice, because it is long enough

to be memorised and short enough to repeat many times inside one dwell. The landmark constraint

(§2.2, CRAFT CONSENSUS) is what binds here, not a duration number.

Entry and exit. Entry on zone boundary, quantised or not depending on whether anything is

already playing. Exit is usually pre-empted by escalation to TENSION or BATTLE, so the exploration

cue's job at exit is to have somewhere musically graceful to be interrupted — which is an argument

for frequent exit cues (every phrase, not every cycle).

Motif policy. Region and family cells (our Tier C), quoting the parent head cell where the region

carries a Tier-A payoff (MUSIC_COMPOSITION_DOCTRINE §1.4). Not the place for the full sixteen-bar

statement.

Failure mode. Sedation on one side and the wallpaper loop on the other. Our energy floor guards

one of the two.

4.2 BATTLE

Function. Signal state, sustain arousal, and mark resolution.

Form. Short, high-onset-density material with a fast phrase quantum. The doctrine's 4-bar quantum

for combat (§6.4) is correct and the reason is reaction time: the player must feel the music respond

within a musically short window or the response reads as coincidence.

Density. Our measured BATTLE floor of 0.502 is nearly double EXPLORATION's 0.274 and it is the

only class-level number in our corpus with enough rows (n=5) to be worth much. That relationship —

battle roughly twice exploration in the p10 energy sense — is the useful finding, not the absolute.

Entry. The practice consensus is immediate or next-beat entry for combat start; a bar-quantised

combat entry at a slow tempo is too late and reads as the music noticing the fight after the player

did. The counter-consideration from Wintory's *Assassin's Creed Syndicate* work is that entry should

be gated by THREAT ANALYSIS rather than by mere enemy presence: the system was built so combat music

does not trigger against weak enemies. That is a design rule with a real cost — a threat model — and

it is the difference between a score that comments on the fight and a score that shouts at every rat.

Exit. The hardest problem in the class, and the one every source treats as a real failure risk.

The doctrine's answer (§6.3) is hysteresis: rise fast, fall slow, escalate on the next bar, de-escalate

only after a 6-10 second clear timer and then only at a 4- or 8-bar phrase boundary, with a declared

maximum de-escalation latency per region. That rule is sound and it is not implemented anywhere.

Wintory's *Banner Saga* framing adds the complementary idea: asynchronous implementation lets a

musical segment complete before transitioning, which maintains flow — the music finishes its

sentence rather than being cut off mid-word.

Motif policy. Fragmentation is the combat-layer form of the transformation catalogue

(MUSIC_COMPOSITION_DOCTRINE §1.6). The melody must still be present: God of War's escalation works

by INSTRUMENTAL MIGRATION. In McCreary's own PlayStation Blog theme breakdown the antagonist's

theme is introduced on an unmistakable solo colour — "his theme is played by a scratchy Hardanger

fiddle, above a backdrop of chugging nyckelharpa and hammered dulcimers" — which is what makes any

later re-scoring of the same line legible as escalation rather than as a different piece.

Two source corrections landed 2026-08-08. First, that article names the character "the Stranger",

not Baldur, and it does not describe the fiddle-to-strings-to-brass migration; the migration is our

doctrine's reading (MUSIC_COMPOSITION_DOCTRINE §6.5) and should be cited as ours, not as

McCreary's words. Second, Kratos's reduction is THREE notes, not six — McCreary writes that

"Kratos' Theme is layered, but not complex. In fact, it is arguably at its most effective in the span

of only three notes." The six-note figure was an error inherited from MUSIC_COMPOSITION_DOCTRINE

§6.5, which still carries it and should be corrected at the source. The craft point is unchanged and

if anything sharpened: the action shorthand is shorter than the theme by a large factor, which is why

it survives fragmentation. **Additive layering used for melody produces the failure mode where the

quiet states have no tune at all.**

Failure mode. Flicker (state oscillation on a straggling enemy), late entry, and the eternal

combat loop that outlives the fight.

4.3 BOSS

Function. Multi-phase dramatic form under a scripted structure — the one place in a game where

the music can be nearly as through-composed as film score, because the phase graph is authored.

Form. The doctrine already rules film-scoring treatment for multi-phase bosses: intro cue, phase-1

cue, transition or chase cue, final-arena cue that states the hero theme (§6.2). The FFXV deck

supplies the shipped-title shape for the same problem. Iwamoto's slide 27 gives the structure and the

rule together, and the rule is stated per transition, not per section — a precision an earlier

revision of this document lost:

So the leaving of the main loop waits for the music, and the leaving of the pre-end waits for the

game. The pre-end is the section that makes that affordable: it is one of three elements the deck

names as required for epic interactive music, alongside tempo-and-time-signature-change support and

custom sync points — because, as slide 26 puts it, "Every beat/bar/grid couldn't work" for a

complex score, while a per-song custom sync point "enables musical transition" at the cost that you

"may have to wait 16 bars (about 14sec)". (An earlier revision described the pre-end as carrying

"dense sync points"; the deck says custom sync points, and the whole point of slide 26 is that

maximum density — every beat and bar — is the option that does not work. The corrected reading is

that the pre-end is where sync opportunities are placed close enough together to bound the wait, not

that sync points are dense in general.) **That is the cleanest available answer to the "the engine

will fade the one cadence the game has been saving" problem** our doctrine flags in §3.7, and it is

better than our current answer

(scripted non-interruptible payoff), because it does not require the game to stop being interactive.

Density. Our BOSS floor of 0.350 rests on n=2 and should not be treated as a number.

Entry and exit. Scripted. This is the class where FMOD's sustain point earns its keep — hold at a

declared point until the phase-change callback releases it.

Motif policy. The most expensive operations belong here: combination (two themes in

simultaneous counterpoint at climax), closure change, and the payoff cadence. Budget per

MUSIC_COMPOSITION_DOCTRINE §1.6-§1.7.

Failure mode. A phase transition that lands mid-phrase; a final statement that the player's win

cuts off.

4.4 SANCTUARY

Function. Safety, welcome, rest, and — uniquely — REWARD. This is the class where the player is

not being asked to do anything, which makes it the class where the music can be listened to.

Form. This is the one class where full song form and a real cadence are not only permitted but

expected. It is where the hummable A-section lives, where the theme is stated plainly, and where

Phillips's song-structure resequencing (intro / body / bridge / interlude / outro) applies most

directly. The thirty-year bar is won or lost here more than anywhere else — the SNES-era and

Zelda-lineage exemplars in T1_Audio_Spec §2.1 that "live outside their games" are overwhelmingly

town, village, sanctuary and overworld-rest themes, not battle music.

Density. Peaceful and still uplifting, per the relayed Josh ruling recorded in

DYNAMIC_ARC_VALIDATION.md §8 — the serene-waterfall distinction, and the ARPG framing that every

track needs energy scaled by theme. The instrument correctly refused a single global floor of 0.34

and published per-class floors instead. **But SANCTUARY has no floor of its own; it borrows

MELANCHOLIC's 0.222**, which is the floor of the class whose defining property is stasis. See §11.3.

Entry and exit. Slow and unquantised is acceptable here; the player is not in a hurry and neither

is the music. This is the natural home for a written cadential exit (MUSIC_COMPOSITION_DOCTRINE

§6.4).

Motif policy. Full statements permitted for Tier A. Diegetic placement belongs here too — a

sanctuary is where an in-world player, singer or instrument can plausibly be the source of the music,

which is Sweet's diegetic/source-music category (ch. 1 pp. 23-24) and the surface our doctrine's

plant-node rule wants (T1_Audio_Spec §10.3).

Failure mode. Sedation, and the ambient wash that has no tune in it.

4.5 TENSION

Function. Anticipation without commitment — the state between exploration and combat, and the

state of stealth, dread, and unresolved threat.

Form. Suspension. Harmonically unresolved, rhythmically implied rather than stated, texturally

active at low amplitude. Our measured TENSION median flow_p10 of 0.218 and floor of 0.213 (n=2)

are the lowest in the corpus outside MELANCHOLIC, and that is correct rather than a defect: the class

is DEFINED by withholding energy.

The named craft observation worth carrying, from the horror-audio literature and consistent with

the class's function: the return to quiet after intensity is often more unsettling than the intensity

itself, because the player remains aroused while the threat indicator has gone away. That makes

TENSION the natural DESTINATION state after a combat de-escalation, rather than a direct fall back to

EXPLORATION — a three-state ladder (explore → tension → battle) with asymmetric transitions, not a

two-state toggle.

Entry and exit. Fast in, slow out. This class absorbs the hysteresis.

Motif policy. Fragmentation and disguised derivation. This is where our reveal-gate firewall does

its work: the antagonist pattern before Ch 38 may only appear here, fragmented, in a different local

carrier each time, never as the phrase and never as a swell (LEITMOTIF_ARCHITECTURE §3.4).

Failure mode. Reading as sedation to an instrument that measures energy without measuring

motion. Our own headline valley axis is ENGAGEMENT rather than energy level precisely because of

this, and DYNAMIC_ARC_VALIDATION.md §8 says so.

4.6 MELANCHOLIC

Function. Grief, loss, aftermath, memory. Usually attached to a scene rather than to a system

state.

Form. Through-composed more often than looped. Yu's BotW observation is the model: Mipha's theme

is through-composed with a distinct beginning and ending and no repeated section, while Prince

Sidon's theme is a 32-second loop — and the difference tracks function, not budget.

Density. Our floor is 0.222 (n=4), and the corpus row that anchors the low end — *An Unwavering

Heart* at flow_p10 0.106 — is squarely in genre. DYNAMIC_ARC_VALIDATION.md §8 uses it as the

proof that the low-energy tail is not an artifact of ambient outliers.

Motif policy. Augmentation (weight, memory, ceremony, death) and reharmonisation. Per the

transformation catalogue.

Failure mode. Applying the hummability checklist to a class whose members are frequently not

one-hearing hummable tunes. The doctrine already guards this with motif_class (§1.3).

4.7 TITLE_CHARACTER and CREDITS_TRIUMPH

Function. These are the two classes that are essentially LINEAR music inside an interactive

product, and they should be treated as such rather than forced through the adaptive apparatus.

TITLE_CHARACTER is the game's calling card and the class most likely to be heard outside the game —

the concert-performable bar (T1_Audio_Spec §2.5) lands here first. Our floor is 0.293 (n=3), and

the corpus's low outlier is the *Deus Ex* main title at 0.137, which is in genre and is a reminder

that a title theme is permitted to be quiet and still be the calling card.

CREDITS_TRIUMPH (floor 0.293, n=4) is the payoff class: the one place where the withheld authentic

cadence on the tonic may finally land, and where motif combination as reveal is cheapest because

nothing is interruptible any more.

Both classes want a real ending. Neither should carry a loop seam at all, and loop_seams.py's

turnaround rules should not be applied to them.

4.8 The class table, consolidated

classformloop postureentry syncexit syncmotif policydominant failure
EXPLORATIONcyclic, non-teleological, or fragmented-with-silencelong arc or no arc; never a memorable-landmark medium loopzone boundary, unquantised OKfrequent exit cues (per phrase)Tier-C cell, parent quotationsedation / wallpaper
BATTLEshort, dense, 4-bar quantumtight loop plus variation poolimmediate or next beat, threat-gatedhysteresis, phrase boundary, declared max latencyfragmentation; carrier migration, never muteflicker / late entry / outliving the fight
BOSSauthored phase graph; Main Loop → Pre-end → Endno free loop; phase-scopedscriptedscripted, sustain-point heldcombination, closure change, payoffcadence cut off by the win
SANCTUARYsong form; real cadence permittedintro / body / bridge / interlude / outroslow, unquantisedwritten cadential exitfull Tier-A statement; diegetic surfacesedation / wash with no tune
TENSIONsuspension; motion without energyloop or bedfast inslow out; destination of de-escalationdisguised derivation, reveal-gatedmisread as sedation
MELANCHOLICthrough-composed more often than loopedoften no loopscene-scriptedscene-scriptedaugmentation, reharmonisationwrong bar applied (hummability)
TITLE_CHARACTERlinear concert formnonen/an/afull statementforced through adaptive apparatus
CREDITS_TRIUMPHlinear; the payoffnonen/an/acombination, authentic cadencespent too early

5. What a state machine has to be, before it is code

5.1 Whitmore's principles, which are the missing PRINCIPLES chapter

From "Design With Music In Mind" (2003), and stated as principles rather than techniques:

pacing; it is one of the instruments that SETS pacing.

it does not demand it the way visuals do.

admission that no join was written.

His Music Design Document is the deliverable he asks GAME DESIGNERS to give composers, and it is

the artifact our program does not have: which sections need music; the desired style and mood range;

when music should be ambient versus intense; appropriate use of character themes; which gameplay

aspects benefit from musical accents; the technical integration approach. In our structure, most of

that already lives distributed across the region page, the register card and the theme registry —

which is an argument for a derived view rather than a new document.

His technology taxonomy is dated (waves in 1-4 measure segments versus MIDI with custom banks versus

a hybrid) but the underlying trade is not: **granularity buys responsiveness and costs musical

coherence**, and every system since has been an attempt to buy back the coherence.

5.2 The state set, the parameter, and why they are two things

Doctrine §6.3 already rules the split: a discrete STATE decides which music, a continuous INTENSITY

parameter decides how much of it, and collapsing them fails because a single float cannot express

"boss phase 2" and a single enum cannot express a swell. The shipped-title evidence supports both

halves independently, though the FFXV half needs stating precisely. The deck describes chocobo riding

as "Speed based mode transition" — a continuous game value selecting between DISCRETE modes, where

each mode then sets "layer volumes" and "volume, pitch, LPF" (slides 14-16). So the continuous

parameter is quantised into states before it reaches the mix; it is not a continuous crossfade across

layers. An earlier revision of this document described it as FFXV driving layers directly on a

continuous parameter, which overstates the deck. The genuinely continuous-parameter case in the

evidence is Becky Allen's *Plants vs. Zombies: Heroes*, which transposed the running MIDI score off

the score differential — "If you're up by five points all the MIDI music went up a whole step, and if

you're up by ten points all the MIDI music went up two whole steps" (Phillips, GDC 2017 write-up).

The doctrine's state/parameter split still holds; the correction is that a shipped title may

legitimately implement the "parameter" half by bucketing it into states.

Two additions from the practice that our state model does not carry:

when slowing down and about 1.5 beats when accelerating. The system does not have one transition

time; it has one per direction, chosen dramatically.

combat music triggering against weak enemies. Our trigger_event vocabulary already has

threat_state_rise on 33 cue rows, which is the right name; it needs a threat FUNCTION behind it.

5.3 What "the music must be aware of the game" actually costs

Sweet's hook list (§2.1) is a list of game systems that must expose state to audio. In our project

those systems exist and are canon: integrity bands, companion loyalty, mastery tier, rarity grade

awards, boss phase, threat, zone, node, era, weather-and-time where the region page declares it. The

cue table's trigger_event census shows the design already reaching for them —

adaptive_exploration_reward 14, rarity_grade_award 14, creature_first_sighting 14, node_entry

14, beat_enter 10. The gap is not design. It is that no consumer exists, and a trigger name

with no consumer is a promise, not a system.

6. Transition craft, made measurable

This is the highest-value import in the document, because it converts the one part of the adaptive

contract our doctrine explicitly left to human judgement into something an instrument can score.

MUSIC_COMPOSITION_DOCTRINE §6.9's transition acceptance rubric currently reads: every ordered state

pair is a test row, fired at three offsets, judged on captured playback by a fresh-context critic for

audible discontinuity, pitch clash, late melodic entry, and motif-carrier occupancy. That is a sound

rubric with one problem — it does not scale, because the number of ordered pairs grows quadratically

in states and every row costs a human listen.

Medina-Gray's method makes four of those five judgements computable from symbolic material.

6.1 The five parameters

From "Analyzing Modular Smoothness in Video Game Music" (MTO 25.3, 2019). Smoothness is the quality

of two convergent modules fitting well together; disjunction is its opposite; both are legitimate

products of modularity and neither is universally preferable. Seams are analysed on five aspects,

separately, and deliberately NOT reduced to a single score:

streams; simultaneously, smooth when the onsets support a single unified meter. Shared pulse

streams read smooth; complete metric discontinuity reads disjunct; a partial conflict involving one

kind of dissonance (grouping OR displacement) is mildly smooth; both together is mildly disjunct.

Alignment within about 50 milliseconds counts as agreement.

after it and nothing new enters; mildly smooth on partial overlap. Simultaneously, very smooth when

one module's instruments are a subset of the other's. Disjunction strength scales with instrument

relatedness: different brass is a mild disjunction, unrelated families a strong one.

the macroharmony of about five seconds before: all new pitch classes already present is very

smooth; at least half is mildly smooth; fewer than half is mildly disjunct; none is strongly

disjunct. Simultaneously, examine the intervals created between the overlapping modules: complete

pitch-class overlap is very smooth, consonances only (P4, P5, major/minor 3rds and 6ths) moderately

smooth, soft dissonances (interval class 2 — major 2nd, minor 7th) mildly disjunct, hard

dissonances (interval classes 1 and 6 — minor 2nd, major 7th, tritone) strongly disjunct.

or mismatched dynamics is disjunct.

hard cuts into silence are disjunct. This aspect applies chiefly to horizontal switching.

6.2 The probabilistic treatment, which is the part that scales

When a module can enter at any point of a looping module, there is not one seam but many. The method

enumerates the possible timing points, analyses each aspect at a representative resolution (for

example every sixteenth note), and reports the DISTRIBUTION — the worked example in the paper reads

as 13% of possible seams strongly pitch-smooth, 57% mildly smooth, 30% disjunct.

That is exactly the shape our transition rubric needs. Instead of three sampled offsets judged by

ear, every legal firing point is enumerated and the result is a distribution per aspect per ordered

pair. A pair passes when its distribution clears a declared band on each aspect — and the aspects

stay separate, which is the same discipline MASTERPIECE_PROGRAM §11.4 and NOSTALGIA_RUBRIC §1

already impose on us (no single scalar anywhere).

6.3 The corollary that keeps this from becoming a smoothness cult

Medina-Gray is explicit that disjunction is a legitimate and often intended product: a designed break

in continuity is how a player is told the environment has changed. **Combat entry is supposed to be

disjunct.** So the rubric is not "maximise smoothness" but "declare the intended smoothness per

aspect per pair, and measure whether the material delivers it." A combat entry declaring strong

metric smoothness (the pulse continues, so the player is not disoriented) and deliberate timbral

disjunction (new instruments announce the threat) is a specifiable, checkable design.

This also supplies a principled home for a question our doctrine currently answers by rule of thumb —

when does a pair need a transition segment? Answer: when no legal firing point achieves the declared

band, the pair needs written material rather than a rule.

7. How the melody survives all of this

Our leitmotif architecture is already strong (docs/proposals/music/LEITMOTIF_ARCHITECTURE.md,

MUSIC_COMPOSITION_DOCTRINE §1.4-§1.11, and LEITMOTIF_TECHNIQUE.md). This section adds only what

the adaptive practice contributes that the leitmotif literature does not.

The carrier, not the presence, is what escalation changes. God of War's instrumental migration is

the reference case and our doctrine already carries it (§6.5). The adaptive consequence is the

per-state mute test: exactly one stem or stem group holds the head cell at every declared state,

named on the state-machine row, and migration moves the role without vacating it.

The reprise has to happen somewhere the system cannot reach it. CRAFT CONSENSUS. Under

interaction the player mostly meets VARIATIONS — fragmentation, reduced instrumentation, a carrier

migration — because that is what an adaptive system produces. A theme whose only appearances are

variations has no baseline against which the listener can hear them AS variations, so the plain

statement has to live in a class nothing is trying to interrupt. In our structure that is SANCTUARY

and TITLE_CHARACTER. Register note: an earlier revision credited this to a stated finding in

Summers's *Understanding Video Game Music* ch. 7 that leitmotif identification is easier with a

reprise than with a variation. That attribution was wrong twice over — ch. 7 is "Musical Play and

Video Games", the film-music chapter is ch. 6, and no such finding could be verified in the book's

front matter or in the published review. The inference is retained because the doctrine already

depends on it (MUSIC_COMPOSITION_DOCTRINE §1.7's Prologue-to-Ch-77 distance test presumes a plain

statement exists to measure from), but it is CRAFT CONSENSUS and carries no citation.

**Wintory's single-arc model is the alternative to a motif roster and it is worth naming as a road

not taken.** He describes *Journey* as "100% bespoke and custom, with no pervasive 'systems' (like in

traditional games where there is 'combat' music versus 'exploration' music etc)" and the resulting

score as "a constant interplay of various systems" — a piece whose organisation is continuous and

narrative rather than a per-state library. Our design is committed to the roster model (12 cardinal,

7 families, Tier-C tags), which is correct for a 79-node globe-spanning game where *Journey*'s model

would not scale. But the single-arc idea survives in a reduced form that we already hold: the

Prologue statement and the Ch-77 statement are the same tune and the player must feel the distance

(MUSIC_COMPOSITION_DOCTRINE §1.7). **Two descriptors were removed here on 2026-08-08 — that

*Journey* was conceived as a "symphonic poem", and that a solo cello is the player's voice. Neither

is in the cited article, whose only solo-instrument mention for *Journey* is a bass flute and whose

only cello reference belongs to *Assassin's Creed Syndicate*.**

Wintory's critiques are the useful part of that source and they are aimed at exactly the design

we are building: overly reactive systems create distraction and rushed pacing; ambient beds during

player-choice moments waste the dramatic opportunity; a static open-world score that ignores

narrative progression diminishes emotional investment. His *Syndicate* answer to the third — music

stratified into three narrative-progression banks so the score evolves as the player advances — is

directly applicable to a game with 77 chapters and an integrity system, and it is cheap: it is a

selection rule over material that exists, not new material.

The Halo lesson is the oldest and simplest, and it is narrower than it is usually told. What the

sourced record actually shows is the chunking: at the GDC 2005 *Halo 2* audio session, "O'Donnell

loaded an example piece in a wave editor, to show how the piece was chopped into loops, with each

loop a few measures long," which the engine then reassembles at runtime. That is the structural

point worth carrying — the composed artifact is authored as reassemblable pieces from the start,

not cut into pieces after the fact, which is the same discipline MUSIC_COMPOSITION_DOCTRINE §6.1

imposes on vertical layers and §3.1 above imposes on segments. **Two further claims were removed on

2026-08-08 — that O'Donnell worked with the level designers so music and space were designed

together, and that the system swelled for a firefight and dropped to silence on tension. Both are

widely repeated and neither appears in the two O'Donnell sources this document actually reached; the

GDC Vault entry for "From MYTH to HALO" (GDC 2011) exposes no abstract without membership. If the

collaboration point is wanted as evidence for the design-music-with-the-space argument, it needs a

source we have read.**

8. The delivery contract, as the practice states it

Consolidated from the tutorial sources, Sweet ch. 20 (pp. 269-280) and Whitmore. Where our own

contract already says the same thing, that is noted rather than repeated.

mix, so baked reverb on stems fights the game's own space. Our mix_policy.py already carries

per-class space settings (EXPLORATION rt60 1.35 s, SANCTUARY rt60 2.30 s and so on), which is the

same decision made one layer earlier — worth reconciling deliberately rather than by accident.

captured as real audio; that audio becomes the post-exit region. Never bake a fade into a loop

file. Already ours (MUSIC_COMPOSITION_DOCTRINE §6.4, T1_Audio_Spec §8.5).

offset, loop bars. Our theme registry has tempo_bpm and bar_length columns, both populated

0/38.

combinable.

Transitions between Cues", p. 278). The composer hears the joins in the DAW; the implementer should

not be the first person to hear them.

theme_id to /Game/Audio/Cues/<cat>/A_<theme_id> (T1_Audio_Spec §8.5).

16-bit.

9. The pitfalls ledger

Named failure modes, each with its source and each stated so that a check could be written against

it.

seamless transitions beat crossfades for immersion.

clock. CRAFT CONSENSUS — see §2.2 for the withdrawn attribution.

states have no tune. Doctrine §6.5, from the God of War case.

piece cut into complete musical thoughts. Doctrine §6.1; Phillips's six-simultaneous-layers case is

the positive evidence.

broken. Doctrine §6.3.

seconds, which no per-rule check catches. Doctrine §6.3 — and the reason it insists the maximum is

DECLARED.

*Syndicate*.

answer is a scripted non-interruptible payoff; FFXV's pre-end section is the better one.

never constrained to the beds it can fire over. Doctrine §6.5; Sweet ch. 10.

everything. Sweet, p. 28, naming *Bioshock* — a real shipped choice, but a choice, and it should be

declared rather than defaulted into.

10. ACTIONABLE RULES, mapped to our stack

Every rule names the file it touches and its tier. CODE-ABLE means a schema field plus a predicate

can enforce it before a render exists. MEASURE-ONLY means it needs audio and is therefore weaker.

10.1 Schema rules — the pass-plan gains an adaptive block

(harness/music_gen/pass2_plan.py, consumed by pass2_realise.py): entry_cue_beat,

exit_cue_beat, pre_entry_beats, post_exit_beats, phrase_quantum_bars, custom_cues[].

Without these there is nothing for a transition rule to sync to and no way to deliver a tail

separately. PIPELINE HOOK: plan schema plus a validator that refuses a cue whose exit cue is not on

its declared quantum. CODE-ABLE.

(which already carries role, stratum, register_slot, melodic_role) with adaptive_role in

{base, intensity_layer, colour, motif_carrier, interlock_group_member} and add a per-state

motif_carrier_stem. The doctrine's per-state mute test (§1.11) cannot run without it. PIPELINE

HOOK: plan schema plus the mute-test predicate, run per state rather than per cue. CODE-ABLE.

intensity band, the motif carrier and the silence policy; a transition row carries source state,

destination state, source sync (immediate / next beat / next bar / next phrase / exit cue),

destination sync (entry cue / custom cue / same position / last position), transition class

(direct / bridged / stinger-covered), the direction-specific duration, and intended_smoothness

per Medina-Gray aspect. PIPELINE HOOK: plan schema plus the §10.3 instrument. CODE-ABLE.

nothing implements it. A new build/audio/grid_contracts/<sub_region>.json carrying tempo family,

tonal centre and mode, tuning table reference, phrase quantum, maximum de-escalation latency in

seconds, and the cadential-exit policy. Every plan in that sub-region validates against it. A

repository search confirms tempo_family, phrase_quantum and de_escalation appear nowhere in

harness/, build/audio/ or registries/ today. PIPELINE HOOK: new artifact plus a validator in

pass2_plan.py. CODE-ABLE.

bar_length are 0/38 and per_stem_role is 0/38. No runtime can quantise anything without them.

PIPELINE HOOK: registry pass with one fidelity re-baseline in the same commit, per the standing

rule. CODE-ABLE.

10.2 Class rules — the cue-class energy floors become cue-class SHAPE contracts

0.222 through mix_policy.py CLASS_MAP, and our flagship cue is SANCTUARY-classed. Until corpus

rows exist, the borrow must be declared on the artifact rather than silently inherited, and the

acquisition sheet should prioritise sanctuary and town themes — which is also where the thirty-year

bar is most often won. PIPELINE HOOK: build/audio/exemplars/CORPUS.json acquisition priority plus

an explicit floor_borrowed_from field on the scorecard. MEASURE-ONLY (the floor), CODE-ABLE (the

declaration).

render can still ship an explore_calm state that sits under it for minutes. Once R3 exists, run

instr_dynamic_arc.measure() on each state's rendered layer subset. PIPELINE HOOK:

harness/music_gen/instr_dynamic_arc.py. MEASURE-ONLY.

only the rendered curve, so a declared silence_windows entry (PASS7_FLORES_FALLS carries one) and

the deliberate exploration-silence practice both read as sedation once a window exceeds the 12 s

threshold. Pass the plan; exclude declared silence; report excluded spans separately so the

exclusion cannot hide a real flatline. PIPELINE HOOK:

harness/music_gen/instr_dynamic_arc.py. CODE-ABLE.

EXPLORATION cues declare silence_duty_cycle and max_continuous_music_s, and the class contract

says whether the class is a fragmented-with-silence class or a continuous one. The BotW evidence is

that the silence must be long enough that the listener stops anticipating music. PIPELINE HOOK:

plan schema plus a per-class predicate. CODE-ABLE.

repeating cue declares its landmarks

(solo entries, crash accents, distinctive fills) and a predicate refuses more than a declared count

inside a loop of a given length, or requires that any landmark be varied across the variation pool.

PIPELINE HOOK: a predicate on sections plus novelty_schedule, which already exists. CODE-ABLE.

loop_seams.py should refuse to author a turnaround for a class whose correct form is a real

ending. PIPELINE HOOK: harness/music_gen/loop_seams.py class guard. CODE-ABLE.

10.3 Transition rules — the new instrument

symbolic material: per ordered state pair, enumerate every legal firing point at sixteenth-note

resolution, score meter, pitch, timbre and volume per §6.1, and report the distribution per aspect.

Abruptness comes from the declared transition class. Compare against the pair's

intended_smoothness rather than against a maximise-smoothness target. PIPELINE HOOK: new

instrument in harness/music_gen/, plus a gate entry beside music_seams. CODE-ABLE — and this is

the single highest-value item in the document, because it converts doctrine §6.9's

quadratic human listen into a computation.

achieves the declared band, the pair gets a transition segment; otherwise it gets a rule. That

replaces doctrine §6.4's "transition segments for every modulating pair" with a test.

PIPELINE HOOK: the R12 instrument's verdict feeding a transition_class assignment. CODE-ABLE.

End per the FFXV shape: the pre-end carries custom sync points placed close enough together to

bound the wait, so the phase can be ended musically whenever the game says so. The priority rule

attaches to the TRANSITION, not the section — main-loop-to-pre-end resolves music-first,

pre-end-to-end resolves synchronisation-first (§4.3). PIPELINE HOOK: sections gains

sync_points[] with a declared maximum inter-point wait, and each transition row gains a

resolution_priority in {music_first, sync_first};

BOSS-class plans validate that a pre-end exists. CODE-ABLE.

escalation and de-escalation between the same two states are different rows. FFXV's roughly 4 bars

down against 1.5 beats up is the precedent. PIPELINE HOOK: transitions[] schema. CODE-ABLE.

hold_until_release as a legal state property so scripted moments do not need a guessed duration.

PIPELINE HOOK: state schema plus MusicDirector behaviour. CODE-ABLE at the schema layer.

10.4 Stinger rules

declare stingers and none exists. A stinger declares its length (3-12 s per Sweet), its pitch

content, and the set of bed states it may fire over; a predicate checks its pitch classes against

every one of those beds' macroharmonies using the R12 pitch measure, and refuses on a hard

dissonance. PIPELINE HOOK: new plan kind plus a predicate. CODE-ABLE.

five notes fired on event, quantised to the beat. This makes the stinger lane a leitmotif-delivery

lane rather than a sound-effect lane, which is the cheapest recognition budget in the game.

PIPELINE HOOK: hook.head_cell feeding the stinger generator. CODE-ABLE.

10.5 Variation and repetition rules

segments with selection behaviour (sequence / random-no-immediate-repeat / step / weighted) and

per-item weights. This is the cheapest possible answer to the repetition problem, because a

variation is a re-orchestration of existing material. PIPELINE HOOK: state schema plus the

MusicDirector selection rule. CODE-ABLE.

different declared section. Sweet ch. 18. PIPELINE HOOK: state schema field reentry_section.

CODE-ABLE.

share length or start point. Our layer object already carries entry_cycle, exit_cycle and

rest_spans, so the mechanism exists; what is missing is deliberate use of coprime layer lengths

so the composite does not repeat for a long time. PIPELINE HOOK: a layer_period_cycles field plus

a predicate rewarding coprime periods. CODE-ABLE.

10.6 Process rules

horizontal resequencing, vertical remixing, MIDI, advanced — becomes a declared field on each cue,

so a report cannot imply adaptivity a cue does not have. Today every cue would read

noninteractive, and that honesty is worth more than the aspiration. PIPELINE HOOK: plan field

interactivity_rung, surfaced on the scorecard beside the honest-tier register that

T1_Audio_Spec §8.2 already mandates. CODE-ABLE.

p. 278. In our terms: the R12 instrument runs at plan time on symbolic material, before a render is

commissioned. PIPELINE HOOK: ordering in the pass pipeline. CODE-ABLE.

for a game whose cultural registers include in-world performance — a village ceremony is source

music and must be placed, occluded and attenuated in world space, not mixed as underscore.

T0_Theme_Registry.diegetic_surface exists and is populated 4/38; the cue table has no diegetic

flag at all. PIPELINE HOOK: music_cue_table.csv gains diegesis in {underscore, source,

transdiegetic}; the SFX and mix lanes read it. CODE-ABLE.

design owes a threat model — enemy count weighted by tier relative to player capability — before

combat music can be gated rather than switched. PIPELINE HOOK: a named consumer for the existing

trigger; the combat comparator rubric at harness/qa/comparator_rubrics/aggro_threat.json is the

nearest existing artifact and should be checked for reuse before a second threat model is invented.

CODE-ABLE.

11. WHAT WE ADOPT

Ranked by value against the Josh-gate slice, with the strongest first. Items 1 through 5 are the

answer to "what changes on Monday".

1. The modular-smoothness instrument (R12, R13). Medina-Gray's five aspects, enumerated

probabilistically over every legal firing point, compared against a DECLARED intended smoothness

per aspect per ordered pair. It replaces a quadratic human-listen rubric with a computation, it

keeps the aspects separate exactly as our existing measurement discipline demands, and it refuses

the smoothness cult by treating deliberate disjunction as a legal target. Nothing else in this

document buys as much.

2. The adaptive block on the pass plan (R1, R2, R3). Entry and exit cues, pre-entry and

post-exit, states, transitions and per-state motif carriers. Without these the doctrine's entire §6

is unimplementable and the 222-row cue table's adaptive_class, layer_role and layer_mode

columns stay decorative. This is the enabling change for almost everything else.

3. **Per-state energy evaluation and a plan-aware sedation detector (R7, R8), plus SANCTUARY's own

floor (R6).** Our floors are the most rigorous instrument in the lane and they are currently

measuring the wrong object — a whole linear render, on a class vocabulary with a hole where our

flagship cue sits, with composed silence counted as sedation. Fixing the object is cheaper than

deriving new numbers.

4. The cue-class shape contracts of §4.8. Form, loop posture, entry and exit sync, motif policy

and named failure mode per class, as a table the plan validates against. This is the piece the

brief asked for and it is the piece that makes "cue purpose class" mean something beyond a mixing

preset and an energy floor.

5. The pre-end section for boss phases (R14). The FFXV shape — leave the main loop music-first,

leave the pre-end sync-first — is a better answer to our interrupted-cadence problem than the

scripted non-interruptible lock we currently rule, because it keeps the game interactive while

still landing the cadence.

6. The variation pool (R19, R20, R21). The cheapest available answer to Sanger's repetition

problem, and the one most compatible with our arithmetic: the leitmotif economy already produces

material that can be re-orchestrated, and a pool turns re-orchestration into runtime variety.

7. The stinger lane as a composed artifact class (R17, R18). 56 rows already declared, head-motif

stingers already ruled, and the compatibility battery is a direct reuse of the R12 pitch measure.

High recognition value per unit of composition.

8. The grid contract per sub-region (R4) and the three empty scheduler columns (R5). Unglamorous

and blocking: two cues in the same sub-region can currently be authored at incompatible tempi and

nothing catches it, which makes horizontal stitching impossible by construction.

9. The honesty fields (R22, R6's declaration half, R24). An interactivity_rung that currently

reads noninteractive on every cue, a declared floor borrow, and a diegesis flag. Each costs

almost nothing and each prevents a claim we cannot support.

10. The hold primitive (R16) and direction-asymmetric durations (R15). Small schema items that

prevent two specific classes of later rework.

What we explicitly do NOT adopt.

across the globe. Our roster model stands. The one element we keep is the Prologue-to-Ch-77 single

tune, which we already have.

transposition). It buys real-time harmonic manipulation at the cost of a sampled-instrument runtime

and a mix we cannot control, and our identity is carried by register, tuning and ornament that a

general MIDI-style runtime would flatten. Revisit only if a specific mechanic demands it.

transition matrix exceeds roughly eight states with per-pair rules, re-evaluate on evidence. This

document does not move that line; it does note that the object model in §3 is what we would be

re-implementing, and that R1-R3 deliberately mirror it so the decision stays reversible.

12. GAP NOTES — where our named stack already deviates from the practice

For the audit phase. Each item names the file, the practice it deviates from, and what the deviation

costs. Nothing here is ruled; it is evidence handed forward.

12.1 The composition layer has no adaptive contract at all

Files: harness/music_gen/pass2_plan.py, harness/music_gen/pass2_realise.py,

build/audio/pass*/plans/*.json.

Practice: every source in §3 treats entry cue, exit cue, pre-entry, post-exit and a transition

rule as the minimum unit of an interactive cue.

Deviation: the plan schema has none of them, and a repository search for adaptive_role,

motif_carrier_stem, state_machine, transition_class, entry_cue and exit_cue across

harness/, registries/ and build/audio/ returns zero hits.

Cost: MUSIC_COMPOSITION_DOCTRINE §6 in its entirety — the state model, the grid contract, the

per-state mute test, the per-cue deliverable and the transition acceptance rubric — is currently

unimplementable, and every cue we author is Sweet's serendipitous-sync rung while the doctrine

describes rung four.

12.2 The seam object we own is the wrong seam

Files: harness/music_gen/loop_seams.py, gate music_seams in harness/gates_config.json.

Practice: the loop seam and the transition seam are different problems; middleware treats the

self-loop as a special case of the transition, not the other way round.

Deviation: loop_seams.py composes a cue-to-itself turnaround under five good rules; nothing

composes or checks a cue-to-cue join, and the gate runs --self-test only.

Cost: doctrine §6.9's transition acceptance rubric has no artifact to run on, and §6.4's

"transition segments for every modulating pair" has no pair concept to enumerate.

12.3 SANCTUARY has no floor of its own, and our flagship cue is SANCTUARY

Files: harness/music_gen/mix_policy.py (CLASS_MAP maps SANCTUARY to MELANCHOLIC),

build/audio/exemplars/instruments/DYNAMIC_ARC_VALIDATION.md §8,

build/audio/pass7/plans/PASS7_FLORES_FALLS.json.

Practice: the safe-haven class and the lament class have opposite energy postures. Safe-haven is

where the hummable statement and the real cadence live and where the thirty-year exemplars

concentrate; lament is the class whose defining property is stasis.

Deviation: SANCTUARY inherits MELANCHOLIC's 0.222 — the second-lowest floor in the corpus — and

the borrow is declared in a source comment rather than on the artifact.

Cost: either the sanctuary cue is permitted to sedate, or the lament is over-driven; and the

cue currently carrying the lane, PASS7_FLORES_FALLS at 180 s, is the one affected.

12.4 The sedation detector cannot tell composed silence from a flatline

Files: harness/music_gen/instr_dynamic_arc.py (sed = sedation_spans(t, v, floor)),

build/audio/pass7/plans/PASS7_FLORES_FALLS.json (carries a silence_windows entry).

Practice: the *Breath of the Wild* evidence is that long silences are the mechanism by which

exploration music avoids fatigue, and our own doctrine §6.3 makes silence a first-class state.

Deviation: the detector receives only the rendered energy curve. Any declared silence longer than

the 12-second span threshold reads as sedation, and there is no field anywhere declaring a silence

duty cycle for a class that the practice says should be built on silence.

Cost: the instrument will penalise exactly the design the exemplar lineage validates, and the

composer will be pushed toward continuous music in the class where continuity is the defect.

12.5 The energy floor measures a linear track in a system that will play states

Files: harness/music_gen/instr_dynamic_arc.py, harness/music_gen/pass3_score.py.

Practice: intensity is a per-state property; Phillips's dual-brief problem is that the same

material must read correctly at both ends of the range.

Deviation: the floor is computed over a whole render.

Cost: once layering exists, a cue can pass its floor as a mixdown while shipping an

explore_calm subset that sits far below it — and that subset is what most players will hear most of

the time.

12.6 The grid contract is ruled and absent

Files: MUSIC_COMPOSITION_DOCTRINE §6.4; nothing in harness/ or build/audio/.

Practice: everything in a stitchable region shares a tempo family, a tonal centre, a phrase

quantum and a declared maximum de-escalation latency.

Deviation: verified absence — tempo_family, phrase_quantum and de_escalation return no hits

anywhere in harness/, build/audio/ or registries/. Tempo, metre and key live per CUE in the

plan.

Cost: two cues authored for the same sub-region can be mutually unstitchable and nothing catches

it until an implementer tries to cross-fade them.

12.7 The theme registry's scheduler columns are empty

Files: registries/T0_Theme_Registry [DRAFT v0.1]/T0_Theme_Registry.csv.

Deviation: tempo_bpm 0/38, bar_length 0/38, per_stem_role 0/38, against closure_policy

38/38, motif_class 38/38, tier 38/38 and carrier_voice 30/38.

Cost: the identity and care columns are in good shape and the three columns a runtime actually

needs are empty, so no theme row can currently be scheduled, quantised or stem-delivered.

12.8 Fifty-six stingers are declared and none exists

Files: build/audio/music_cue_table.csv (track_type stinger 56, layer_role stinger 56),

harness/emit_music_cues.py.

Practice: stingers are the cheapest interactive win, and their one hard constraint is harmonic

and rhythmic compatibility with every bed they can land on (Sweet ch. 10; doctrine §6.5).

Deviation: no stinger has been composed, no length rule is pinned, no compatibility check exists,

and the head-motif stinger the doctrine rules has no generator.

Cost: a quarter of the declared cue inventory is unrealised, and it is the quarter with the best

recognition-per-second ratio.

12.9 The cue table's adaptive vocabulary has no consumer

Files: build/audio/music_cue_table.csv (222 rows: adaptive_class loop 90 / adaptive 76 /

oneshot 56; layer_mode swap 132 / base 84 / ambience_stack 6; trigger_event zone_enter 84 /

threat_state_rise 33 / boss_phase_enter 33 and six smaller classes), docs/PIPELINE_LEDGER.md §7 row

F1 (no in-engine consumer).

Deviation: the design has already named 76 adaptive cues, 33 threat-driven rises and 33 boss

phase entries; nothing reads any of it.

Cost: this is the anti-orphan rule's exact failure shape — a rich, well-formed artifact with no

consumer — and it means the adaptive DESIGN is further along than the adaptive BUILD, which is the

opposite of what a status read of the plans would suggest.

12.10 Hysteresis, latency and threat exist as prose only

Files: MUSIC_COMPOSITION_DOCTRINE §6.3; harness/qa/comparator_rubrics/aggro_threat.json is the

only artifact in the tree carrying "hysteresis" in a combat sense, and it belongs to the combat lane

rather than to audio.

Deviation: the rise-fast-fall-slow rule, the 6-10 second clear timer, the phrase-boundary

de-escalation and the declared maximum latency are ruled and unrepresented in data. Combat entry has

no threat function behind threat_state_rise.

Cost: the two named failure modes of the BATTLE class — flicker and the unbounded de-escalation —

have no check that could catch them, and the *Syndicate* lesson (do not shout at every rat) cannot be

applied.

12.11 The diegetic/extra-diegetic split is unrepresented at the cue layer

Files: registries/T0_Theme_Registry [DRAFT v0.1]/T0_Theme_Registry.csv (diegetic_surface

populated 4/38), build/audio/music_cue_table.csv (no diegesis column).

Practice: Sweet ch. 1 pp. 21-24 makes this the first taxonomic split in the field, and it changes

implementation completely — source music is placed, occluded and attenuated in world space.

Deviation: the theme registry has a column at 4/38 and the cue table has none.

Cost: for a game whose cultural authenticity is carried partly by in-world performance —

ceremonies, work songs, festival music, a player-plantable motif — the surface that would make those

diegetic is not addressable, and doctrine gate 5's plant-node/diegetic-surface debt

(T1_Audio_Spec §10.3) stays open at the cue layer as well as the theme layer.

12.12 Cue length is a global band, not a class property

Files: build/audio/pass*/plans/*.json (target_duration_s), T1_Audio_Spec §2.1 (two to seven

minutes, twelve to twenty tracks per chapter).

Practice: length follows function and expected dwell time. A boss phase is as long as the phase;

an exploration bed is either much longer than the band or fragmented far below it; a stinger is 3-12

seconds; a title theme is a concert length.

Deviation: one global band, one target_duration_s per plan, and no dwell-time input anywhere in

the schema.

Cost: the band is a reasonable default and a poor contract — it will over-length stingers, under-

length boss material, and give exploration exactly the fatigue-maximising middle length that the

landmark constraint (§2.2) warns against.

12.13 The honest-tier register has no interactivity axis

Files: T1_Audio_Spec §8.2 (the honest tier register: GENERATED SCORE — ITERATION,

AUTHORED_HEAD_CELL, AUTHORED_SCORE_ORCHESTRAL_RUNG_ONE, EXTRACTED-NOT-AUTHORED).

Practice: Sweet's ch. 3 ladder is the standard axis for how interactive a score actually is.

Deviation: our tier register measures compositional and realisation provenance beautifully and

says nothing about interactivity, so a cue can be reported at the highest authored tier while being

noninteractive by construction.

Cost: a reader of an audio report cannot currently tell whether the lane's output would function

in a game at all, which is the exact class of claim the honest-tier discipline exists to prevent.

13. Derivation note

Sources were read at the URLs listed in §1 on 2026-08-08. Three primary sources were blocked and are

marked as such at the point of use: Audiokinetic's own documentation and course pages (HTTP 403),

FMOD's official documentation (JS-rendered, empty bodies returned), and the Routledge sample PDF for

Thomas (HTTP 403). Wwise and FMOD behaviour in §3 is therefore second-hand from practitioner

documentation that reproduces it, and any later pass with access to the vendor docs should re-verify

§3.1 through §3.5 before those definitions are treated as pinned. The Sweet material in §2.1 and §4 is

first-hand: the publisher sample carries the complete table of contents and the full text of Chapter

1, and all page references to that chapter are exact. Everything attributed to Phillips's book is

via her own posts citing her chapter and page numbers, not the book itself. All numbers attributed to

our own tree — the plan schema keys, the 222 cue-table rows and their column censuses, the 38 theme

rows and their population counts, the per-class energy floors, and the verified absences of

tempo_family, phrase_quantum, de_escalation and the six adaptive field names — were computed

from the working tree at the time of writing, not quoted from another document.

13.1 Citation audit, 2026-08-08

An independent fresh-context citation check re-fetched and re-read seventeen of the §1 sources,

including the Sweet publisher sample (text-extracted locally after the PDF returned binary to the

fetcher) and the Cambridge front matter. **The Medina-Gray paper, the Sweet book, the Whitmore

article, the Iwamoto deck, the Yu analysis, the Splice history, the Swift FMOD paper, both

gamesounddesign tutorials and all four Phillips posts exist, are correctly identified, and say what

they are cited for**, with the specific exceptions below. Sweet in particular checks out to the page:

the chapter/page table in §1.1, Table 1.1 at p. 16, Table 1.2 at p. 17, the 3-12 second stinger and

the exclamation-point wording at p. 27, the Sanger repetition attribution at p. 18, the hook

definition and the eight-item trigger list at p. 28, serendipitous sync naming the original

*Bioshock* (2007) at p. 28, the seven-step conceptualisation at pp. 29-32 with the *Uncharted 2*

per-region style-guide note, the ch. 9 sub-topic pages 158/159/160/161/162, the ch. 18 pages 255-256

and the ch. 20 pages 273/278/279 are all exact. Medina-Gray likewise verified to the number,

including the 50 ms alignment tolerance, the interval-class groupings and the 13% / 57% / 30%

worked example.

Eight defects were found and repaired in place. Each repair is marked at the point of use:

cited source. Removed; the surviving inference is relabelled CRAFT CONSENSUS.

four fetched Phillips posts. Attribution withdrawn; rule retained at CRAFT CONSENSUS.

MUSIC_COMPOSITION_DOCTRINE §6.5 and should be corrected there.** The Baldur/Stranger naming and

the fiddle-to-strings-to-brass migration are our doctrine's reading, not McCreary's words.

are in neither reachable source. Narrowed to the sourced chunking claim.

cited article. Replaced with what it says. Everything else attributed to Wintory — the *Syndicate*

threat analysis, the three narrative banks, the *Banner Saga* segment-completes-before-switching

design, and all three critiques — verified verbatim.

section, and says custom sync points rather than dense ones. Re-stated from the slide text.

not a continuous parameter driving layers. Corrected, and the genuine continuous-parameter case

(PvZ Heroes transposition) promoted in its place.

Twilight Princess, Skyward Sword), not "traditional Zelda loops".

Two further honesty downgrades: the Thomas part/chapter structure could not be re-confirmed (both

publisher domains now 403) and is marked UNVERIFIED; the DAW-silence rendering instruction is carried

by one tutorial source, not by all of them. No ACTIONABLE RULE was withdrawn. R12 and R13, the

highest-value items in the document, rest entirely on Medina-Gray and verified exactly; R15, R16,

R17, R19-R25 rest on source text confirmed word-for-word in this audit. R10 survives as CRAFT

CONSENSUS and R14's schema hook was re-specified to match what the FFXV deck actually says.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root