MOTIVIC_DEVELOPMENT_AND_PHRASE_GRAMMAR.md

music/MOTIVIC_DEVELOPMENT_AND_PHRASE_GRAMMAR.md

MOTIVIC DEVELOPMENT AND PHRASE GRAMMAR — THE DOCTORATE, VOLUME 2

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
Canon served: the composition floor at docs/spine/DECISIONS_PENDING_JOSH.md — MUSIC ROUND 1
GRADED + THE COMPOSITION FLOOR, and its 2026-08-07 successor ROUND 2 GRADED (L5600-5613), which
turned both round-2 cues down; the theme rows of registries/T0_Theme_Registry [DRAFT v0.1].
If this document disagrees with canon, CANON WINS and this document is the defect.
Tier: RESEARCH SYNTHESIS, proposal-tier. It contains no canon and rules on nothing. Every
claim about published craft or evidence is cited to a URL or to a book, author and chapter; every
claim about our own stack is cited to a file and, where the file is long, to the function or the
field. Claims are labelled CRAFT CONSENSUS where the literature agrees without measuring, and
EVIDENCE where somebody measured something. The two are not interchangeable and this document
does not dress one as the other.
Volume 1 (docs/proposals/music/MUSIC_CRAFT_DOCTORATE.md and the six lanes under
craft_research/) taught the pipeline STRUCTURE — how many parts, in how many strata, entering
when, changing how often. Round 2 proved that lesson landed and proved it was not enough. This
volume is about the one thing volume 1 left alone: how a tune THINKS.

0. The defect this was written against, stated in our own numbers

Josh's verbatim floor, docs/spine/DECISIONS_PENDING_JOSH.md L5600-5613: the songs "sounded much

better, but the melodies are way too simple. There needs to be a lot more complexity added and to

put some intelligence into the melodies and how everything orchestrates."

The diagnosis is precise and it is not "add notes." Here is what round 2's melodic layer actually

was, read off the plans rather than remembered.

62, 66, 69, 78, 71, 69 (harness/music_gen/pass2_flores.py L87-88). Five distinct pitches, four

distinct pitch classes, an ambitus of sixteen semitones, interval spine +4 +3 +9 −7 −2 — one of

the five intervals is a step.

transforms in total — augmentation, carrier_swap, diminution, fragment, inversion, literal,

octave_up — of which literal alone accounts for eight layers. Derived by counting

pattern.kind == "statement" in build/audio/pass2/plans/*.json. The 194-second battle cue

carries nine statement layers using five transforms: literal ×4, octave_up ×2, diminution,

fragment, augmentation.

`literal, octave_up, octave_down, augmentation, diminution, fragment, inversion, carrier_swap,

reharmonisation, mode_shift (harness/music_gen/pass2_realise.py compile_pattern`, the

statement branch). Six of the ten leave the interval spine bit-identical and change only

register, speed, instrument or backing. Of the four that touch the pitches, fragment truncates,

mode_shift bends every note but the first by a fixed semitone, and inversion mirrors around

the first note. There is no sequence, no retrograde, no intervallic expansion, no rhythmic

displacement, no elaboration.

sections, layers, novelty_schedule, hook, ... and hook contains head_cell, head_bars,

plain_statement_cycle, parent_quotation and a list of returns, each a cycle number plus a

transform name. A section is a span of cycles with an active layer set. Nothing in the schema can

express a basic idea, a response, a continuation, a cadence, an antecedent, a consequent or an

expansion. The composer places CELLS on a GRID. It does not write PHRASES.

0.1 The finding, stated plainly: we composed a motif and never composed a melody

That last bullet is the whole finding and it deserves its own heading, because it is the correction

the composer most needs and it outranks everything in §1.

Volume 1's leitmotif research said: state the theme plainly once, then never neutrally again. That

instruction PRESUPPOSES there is a full theme to state. We only ever wrote the head cell. In

Caplin's taxonomy a two-bar unit is a BASIC IDEA — the smallest constituent in the system, the thing

a theme is BUILT FROM — and a theme is a sentence or a period of eight bars, sixteen compound

(William E. Caplin, *Classical Form*, OUP 1998). Our plain statement is therefore two bars long, one

quarter of the smallest complete tune the classical grammar recognises, and the next four minutes

are that same two bars wearing different clothes.

The census, measured off the plans and off the compiled note lists rather than remembered

(harness/music_gen/pass2_realise.py compile_layer, run over build/audio/pass2/plans/*.json):

cuelengthbarscyclesstatement layersdistinct transformsSPINE-CHANGING opsnotes in theme-carrying layersall composed notestheme share
REST240.0 s92238637225572.8%
CACI194.6 s120309539043412.1%
WATERFALL145.5 s4020442306554.6%

SPINE-CHANGING counts only operations that alter the interval spine or the phrase — fragment,

inversion, augmentation, diminution. It excludes literal, octave_up and octave_down (register

transfer), carrier_swap (re-orchestration) and reharmonisation (which in our implementation

compiles identically to literal and leaves the notes untouched). Three genuine development

operations across the 240-second exploration cue, three across the battle cue and two across the

sparse one; ninety melodic notes in a 120-bar battle cue, which is fifteen firings of the same six

notes at 0.75 melodic notes per bar.

Our stack already knows the sentence exists — the head-cell authoring tool carries a

continuation_fragment interval list on every one of its themes

(harness/music_gen/theme_compositions.py, seventeen occurrences) and author_head_cell.py checks

C05 (the response realises its declared operation), C06 (the continuation is fragmentation, not new

material) and C08 (the closure policy holds). That grammar governs a fifteen-second head-cell

artifact and was never carried into the cue composer. A four-minute cue is built by scattering the

output of a grammar-checked fifteen seconds across 240 seconds of grid with no grammar at all.

So "too simple" resolves into three defects at two levels, and the second level is the load-bearing

one:

perception evidence in §4.6). Do not lengthen the head cell.

antecedent, no consequent, no cadence, and no melodic phrase longer than two bars anywhere in any

cue. §3 supplies it and §3.6 gives the numbers. This is the first thing to build.

bit-identical. §1 replaces the list with an operation set that develops rather than redresses.

Note carefully that the operations were not ABSENT in round 2 — inversion, fragmentation and

augmentation are all present and correctly implemented, and the result still sounds simple. More

operations on a two-bar cell will not fix a missing tune. Build §3 first, then §1.

1. The development operations, defined precisely enough to code

What each operation PRESERVES (which is the motif's identity — an operation that does not preserve it

has produced new material rather than development), what it CHANGES, and the failure mode that makes

it read as noodling are tabulated once in §1.13 rather than repeated per entry. The subsections carry

the definition, the evidence or craft nuance, and the function signature. CODE-ABLE means expressible

as a function on a note list; MEASURE-ONLY means assertable from the authored score and checkable in

audio only indirectly.

The reference operation vocabulary is the one shared by the Wagner literature and the Schoenbergian

tradition, catalogued in volume 1 at craft_research/LEITMOTIF_TECHNIQUE.md §1.4 and §3.2 from

Grove, "Leitmotif"

and Lehman's Star Wars thematic catalogue

pp. 47-48. This section takes that vocabulary down to the level where a function signature falls out

of it.

1.1 Sequence

The immediate restatement of a cell at a different pitch level, repeated in the same direction. A

REAL sequence transposes by a fixed number of semitones and preserves interval quality exactly; a

TONAL (diatonic) sequence transposes by scale degree and lets interval quality change to stay in

key; a MODIFIED sequence alters one interval or one duration per leg deliberately

(Comprehensive Musicianship §7.2).

as both the minimum that establishes a sequence and the point past which it turns mechanical

(Music Theory Academy; the Iowa

State tutorial above). Treat four legs as needing a licence and five as a defect.

workhorse, by third is brighter, and the leg interval should be smaller than the cell's own largest

interval or the sequence reads as a key change instead.

selects real or tonal and modify is an optional per-leg interval delta. Our Cell dataclass

(harness/music_gen/compose_arm_b.py L385-455) stores intervals as offsets from the cell's own

first note, so a real sequence is a change of start_midi at realise() time and needs no new

field; a tonal sequence needs the scale, which Mode.pitch/nearest_degree (L303-323) supplies.

1.2 Inversion

Mirror the interval spine. REAL inversion negates each interval in semitones; TONAL inversion

negates it in scale degrees, so the result stays in the mode and interval qualities shift. The axis

is normally the cell's first note (the simplest choice and the one our code already makes), but it

can be any fixed pitch — inverting around the tonic and inverting around the cell's own median give

audibly different results, and the choice should be a declared parameter rather than an accident.

which smuggles a mode change in under a "shape" operation. If the cell's harmonic signature is

load-bearing (harmonic_signature_holds() in author_head_cell.py L559 is the test), invert

tonally rather than really.

note; the missing parameters are the axis and the tonal/real switch:

invert(cell, axis_midi=None, kind="real"|"tonal", scale=None) -> Cell.

1.3 Retrograde and retrograde-inversion, and the honest evidence

Retrograde plays the cell backwards; retrograde-inversion plays the mirror backwards.

(Dowling, "Recognition of melodic transformations: Inversion, retrograde, and retrograde

inversion", *Perception & Psychophysics* 12, 1972, 417-421;

PDF) found all three transforms

recognised above chance in the easier conditions, in an ascending order of DIFFICULTY of

inversion, then retrograde, then retrograde-inversion — and, critically, found no evidence that

listeners distinguish transforms preserving exact intervals from those preserving only contour.

Detecting musical palindromes is reported as hard even for trained musicians.

spending as a CONSTRUCTIVE device that generates fresh-sounding material with guaranteed family

membership, not as a moment the player is expected to notice. Never schedule a retrograde as a

landmark or as "the theme comes back"; schedule it as the source of a counter-line.

composition of two existing methods and needs one line.

1.4 Augmentation and diminution

The same intervals at scaled durations. Classical practice uses ratios of 2 and 1/2; 3/2 and 2/3

are available and rarer; 4 and 1/4 exist and are almost always a formal event rather than a

treatment.

landed flat. Doubling a cell's note values without changing anything underneath halves its apparent

harmonic rhythm while the accompaniment runs at the old rate, so the statement reads as the melody

getting slow rather than the music getting grand. CRAFT CONSENSUS: an augmentation is accompanied

by a slowing of harmonic rhythm and a thickening or octave-doubling of the carrier; a diminution is

accompanied by an increase in accompaniment activity, which is what a sentence's continuation

phrase does by definition (§3.1).

missing piece is the COUPLING — augment(cell, f, couple=("harmonic_rhythm", "carrier_weight"))

returning a cell plus a required edit to the layers under it. Round 2's augmentation transform

(pass2_realise.py) scales onset and duration and touches nothing else.

1.5 Fragmentation and liquidation

FRAGMENTATION uses a characteristic sub-cell in place of the whole. LIQUIDATION incrementally

removes the motif's characteristic features until a neutral residue remains. They are frequently

confused and they are opposites in intent: fragmentation KEEPS the characteristic piece, liquidation

DISCARDS characteristics one at a time

(Wikipedia, Fragmentation);

Schoenberg, *Fundamentals of Musical Composition*, the chapters on the sentence and on liquidation —

full text).

Schoenberg's own framing is that the melody at a cadence reduces characteristic features to

uncharacteristic ones, because characteristic features demand continuation and a cadence must not;

a recent scholarly reappraisal argues the term is richer than "removal" and carries its chemical

sense of a change of state

(Liquidation and Its Origins, *Journal of Music Theory* 63/1, 2019).

transform takes cell[:k] and repeats it (pass2_realise.py), where head, tail, interior and

largest-interval fragments are all available. Always taking the head makes every fragmentation

sound identical.

composer running out of ideas, because that is formally what it depicts.

correct docstring about the Caplin continuation. Liquidation needs writing:

liquidate(cell, steps, target="repeated_tone"|"stepwise") -> [Cell] returning a chain in which

each successive cell has one more interval collapsed toward the target, terminating on a neutral

residue. This is the single highest-value missing operation in the set, because it is what a

cadence is made of and our cues have no cadences.

1.6 Interpolation, extension and elision

These operate on the PHRASE rather than on the cell, and they are the reason §3 exists.

insertion, identifiable because the surrounding harmony is merely bridged rather than advanced,

often with a marked slowing of harmonic rhythm (Rothstein, *Phrase Rhythm in Tonal Music*,

Schirmer 1989, ch. 3;

excerpt).

the cadential material.

always carries a hypermetric reinterpretation notated 4=1

(Open Music Theory, Hypermeter;

Jarvis, Hypermeter).

recomposed back to a duple length without destroying its melodic, harmonic and motivic structure

(Open Music Theory, Internal Expansions).

That is a checkable property of an authored phrase plan, not a subjective read.

evaded cadence and this operation are normally spent together.

expand(phrase, kind="prefix"|"suffix"|"interpolation"|"elision", bars, at) -> Phrase, with the

invariant that normalise(expanded) == underlying_basic_phrase.

1.7 Ornamentation, and diminution in the Baroque sense

Distinct from §1.4's rhythmic diminution and far more important for our defect. The Renaissance and

Baroque practice of DIVISIONS or PASSAGGI subdivides a long note or a whole phrase into many short

ones, elaborating a fixed structural line rather than replacing it. The treatise line is Ganassi,

*La Fontegara* (1535), Ortiz, *Trattado de glosas* (1553) — simpler and more regular than Ganassi,

and largely concerned with embellishing cadential formulas — and Bassano, *Ricercate, passaggi et

cadentie* (1585)

(Ricercate, passaggi et cadentie;

American Recorder, "Diminutions", Winter 2023).

and it is the direct answer to "put some intelligence into the melodies." Our cues already have a

pokok — a slow structural line, POKOK = [0, 2, 3, 4, 3, 2, 0, -1] (pass2_flores.py L103) — that

the kotekan pattern elaborates by a deterministic interlocking rule (compile_pattern, the

kotekan branch), which is division practice arrived at from the gamelan side. What is missing is

division applied to the HEAD CELL and to the melody carrier, at graded levels, as a scheduled event.

and still carries the longest duration or the strongest accent in its span. A division that moves

the skeleton is a new tune.

divide(cell, level, scale, nct_palette, keep_skeleton=True) -> Cell, where level 0 is the

plain cell and levels 1-4 are progressively denser; the invariant is that the level-0 pitches

remain present at their original onsets.

1.8 Reharmonisation of a fixed tune

The same melody over different chords. Lehman separates BASIC from PROFOUND reharmonisation

precisely because the second alters the theme's whole character (Lehman, catalogue, pp. 47-48).

Basic keeps the tune's notes as chord tones under a substitute chord of the same function; profound

recasts them as dissonances, or moves the passage to a chromatically-third-related or modally

foreign region.

melody's meaning per note edited, namely zero — and it is void if the dissonance pattern does not

actually move. Our reharmonisation transform compiles identically to literal and relies on the

section's

harmony_variants index to do the work (pass2_realise.py, the statement branch and

harmony_grid), and the four declared variants are all diatonic faces of the same D-major

collection (pass2_flores.py L120-131). That is basic reharmonisation four times over and no

profound reharmonisation at all.

consonance class and require that a declared reharmonisation change it for at least a third of the

cell's notes. reharm_delta(cell, grid_a, grid_b) -> fraction_of_notes_changing_consonance_class.

1.9 Modal mutation

The same contour in a borrowed or opposite mode. Our current mode_shift bends every note but the

first by a fixed semitone (pass2_realise.py), which is not modal mutation — it is chromatic

smearing and it will read as out-of-tune rather than as darkened.

source mode, then realise those degrees in the target mode. Our stack can already do this —

scale_degree_contour() (author_head_cell.py L625) and Mode.pitch/nearest_degree

(compose_arm_b.py L309-323) are the two halves — and neither is wired into the cue composer.

antagonist material and travel with it, never with a region's own register

(T0_Theme_Registry :: REGION_FLORES_ISLAND.deny_register_list; volume 1

LEITMOTIF_TECHNIQUE.md §6.2). Modal mutation toward a darker mode is therefore GATED by whose

material is being mutated, and the gate is a canon check rather than a taste call.

1.10 Intervallic expansion and contraction

Scale the interval spine rather than the durations: multiply every interval by a factor, or add a

constant to every interval's magnitude while keeping its sign. Contour and rhythm survive; the tune

becomes more or less strenuous.

variant of an exploration theme that is not merely the same tune louder. It is absent from our

stack entirely.

and the sampler ranges are known (measured_range() in compose_arm_b.py L230), so an expansion

must clamp and must REPORT that it clamped rather than folding silently.

1.11 Rhythmic displacement and metric shift

DISPLACEMENT keeps the cell's pitches and durations and moves the whole thing by a fraction of a bar

so its accents fall off the notated strong beats. METRIC SHIFT re-bars the cell so its internal

groupings conflict with the prevailing metre. Krebs's taxonomy is the precise one: DISPLACEMENT

DISSONANCE (labelled D x+n) is non-aligned presentation of congruent layers; GROUPING DISSONANCE

(G x/y) is the association of incongruent layers, such as a melody grouped in threes over an

accompaniment grouped in twos (Krebs, *Fantasy Pieces: Metrical Dissonance in the Music of Robert

Schumann*, OUP 1999, ch. 2, "Metrical Consonance and Dissonance: Definitions and Taxonomy";

Oxford Academic).

costs nothing structurally and is guaranteed to survive the loop. Our layer patterns already carry

rotate_per_cycle for ostinato and pokok (compile_pattern), which is displacement applied to the

PITCH sequence; displacement of the ONSET grid is not implemented for statements at all.

displacement is audible only against a layer that stayed put — displacing everything at once is

not dissonance, it is a different downbeat.

1.12 Register transfer

Move the cell, or one note of it, by an octave or more. Distinct from octave transposition of the

whole because the useful form is PARTIAL — transferring the cell's final note up an octave changes a

settling gesture into an opening one without touching a single interval class.

the post-skip reversal baseline (§4.3) and the sampler's mapped range (measured_range()).

1.13 The operation table

operationpreserveschangesfailure modestatus in our stackclass
sequence (real / tonal / modified)contour; intervals exactly or by degreepitch level, harmonic implicationladder with no arrival; four-plus legsABSENTCODE-ABLE
inversion (real / tonal, chosen axis)rhythm, interval magnitudescontour direction, mode colourreal inversion smuggling a mode changeCell.invert, real, first-note axis onlyCODE-ABLE
retrograde / retrograde-inversioninterval and duration multisetorderscheduled as a recognisable returnCell.retrograde; RI is one lineCODE-ABLE
augmentation / diminutioninterval spine, contourweight, formal rateuncoupled accompaniment; over-spentpresent, uncoupledCODE-ABLE
fragmentationa named sub-cell verbatimlength, event ratealways fragmenting the headhead-onlyCODE-ABLE
liquidationrhythm, registerintervals, progressivelyused outside a cadenceABSENTCODE-ABLE
interpolation / extension / elisionthe underlying basic phrasephrase length, hypermetreextension with no attempted closureABSENT (no phrase object)CODE-ABLE on plan
division / passaggistructural notes on structural beatssurface density ×2 to ×8skeleton obscuredpresent for pokok onlyCODE-ABLE
reharmonisation (basic / profound)pitches, rhythmconsonance class per noteall variants diatonicbasic onlyCODE-ABLE as check
modal mutationcontour, degree identityinterval quality, coloursemitone smear instead of degree mapwrong implementationCODE-ABLE
intervallic expansion / contractioncontour direction, rhythmambitus, effortrange overflow, silent foldingABSENTCODE-ABLE
rhythmic displacement / metric shiftpitch spine, durationsaccent placementdisplacing every layer at onceABSENT for statementsCODE-ABLE
register transfer (partial)pitch classes, rhythmcontour, effortbreaks post-skip reversal without reasonwhole-cell onlyCODE-ABLE
carrier migrationeverythingtimbremistaken for developmentpresentMEASURE-ONLY
contrapuntal combinationboth motifsthe relation between subjectsspent more than once or twice a gameABSENTMEASURE-ONLY

2. Developing variation, which is the organising idea

Schoenberg coined the term for the procedure by which "variation of the features of a basic unit

produces all the thematic formulations" in homophonic-melodic music, providing "fluency, contrasts,

variety, logic and unity"

(Wikipedia, Developing variation, quoting

Schoenberg's *Style and Idea* and *Fundamentals of Musical Composition*). Walter Frisch's

*Brahms and the Principle of Developing Variation* (California Studies in 19th-Century Music 2,

University of California Press, 1984;

publisher record)

clarified, refined and enlarged the concept into an analytical tool that works on whole movements

rather than only on themes, and traced its evolution across eighteen Brahms works. The reception

history — including the objections to Réti's and Ratz's versions of thematic analysis — is surveyed

in Nicole Grimes, "The Schoenberg/Brahms Critical Tradition Reconsidered", *Music Analysis* 31 (2012)

(PDF).

The distinction that matters operationally is developing variation against Liszt's THEMATIC

TRANSFORMATION. Thematic transformation reprises one theme in a succession of characters, each a

disguise of the whole, achieved by permutation, augmentation, diminution and fragmentation

(Wikipedia, Thematic transformation).

Developing variation is not a set of disguises of one object; it is a CHAIN in which each

formulation is derived from the one before it by a small named change, so the material at bar 200 is

recognisably descended from bar 1 without any single step being large.

That difference is the whole design instruction for pass 3, and it is expressible as a data

structure. Round 2 built a STAR: one head cell at the centre, every statement a transform applied to

the original. Developing variation is a CHAIN: statement *n* is a named operation applied to

statement *n−1*. A star produces exactly what Josh heard — the same tune, again, with a different

coat. A chain produces material that has travelled.

derived_from pointing at another statement (not always the plant) and an operation naming one

entry from §1.13. The cue is a developing variation if the mean chain depth over its statements

exceeds one and the maximum depth is at least three or four. Round 2's mean chain depth is 1.0 by

construction on all three cues, because every returns[] entry names a transform of the head.

listener. Wagner's and Williams's practice, as catalogued in volume 1, is plant plainly, then

never neutrally again — but the plant RECURS in near-plain form at the arrival points. The

correct shape is a chain with periodic resets, not a chain that walks away and never comes back.

chain_depth(plan) -> {statement_id: depth} as the check; a battery predicate requiring mean

depth above 1.5 and max depth at least 3 for a full-length cue.

3. Phrase grammar

This is what replaces a section map that has no phrases in it.

3.1 The sentence

Caplin's sentence is an eight-bar theme in three formal functions: PRESENTATION (bars 1-4) =

basic idea plus its repetition; CONTINUATION (bars 5-6 in the classic case) = fragmentation,

harmonic acceleration, sequence and often liquidation; CADENTIAL (bars 7-8) = the closing

progression. Presentation articulates "beginning", continuation articulates "being in the middle",

cadential articulates "ending"; a continuation may be based entirely on an expanded cadential

progression, which Caplin labels "continuation ⇒ cadential" to mark the retrospective reinterpretation

(William E. Caplin, *Classical Form*, OUP 1998, and *Analyzing Classical Form*, OUP 2013;

publisher record;

Aziz review, MTO 20.1).

The repetition inside the presentation is itself a choice with names: EXACT repetition,

STATEMENT-RESPONSE repetition (the basic idea restated over a changed harmony, typically tonic then

dominant), and SEQUENTIAL repetition (restated at another pitch level). Our head-cell tool already

knows this — check C05, "the response realises its declared operation" — and the cue composer does

not.

and 1 + 1 + 1 + 1 for a compressed cell-length sentence inside a two-bar cycle.

natural size for a game cue built on a four-bar cycle: presentation over cycles 1-2, continuation

over cycle 3, cadence over cycle 4.

continuation is REQUIRED to be built from fragments of the basic idea (our existing C06 rule).

3.2 The period

Two phrases and two cadences: ANTECEDENT (basic idea + contrasting idea, ending in a weak cadence,

canonically a half cadence or an imperfect authentic cadence) and CONSEQUENT (the basic idea

returns, ending in a strong cadence, canonically a perfect authentic cadence). A PARALLEL period

begins both phrases with the same basic idea; a CONTRASTING period does not. Eight bars at the

standard scale, sixteen compound.

The cadence STRENGTH LADDER is the load-bearing part for us and it is the thing our cues have none

of, in either direction: half cadence weaker than imperfect authentic, weaker than perfect

authentic; and the deceptive and evaded cadences sit outside the ladder as denials of it.

3.3 The hybrids and the compounds

Caplin's four hybrid types recombine the halves: antecedent + continuation, antecedent + cadential,

compound basic idea + continuation, compound basic idea + cadential (Aziz review, above; and

Hepokoski's summary,

The Classification of Theme Types).

COMPOUND themes double the standard eight-bar types.

For a looping game cue the hybrid "antecedent + continuation" is the most useful single type in the

catalogue, because it opens with a symmetrical, memorable, easily-recognised pair and then

accelerates into fragmentation — which is exactly the shape a loop wants, since the acceleration

lands the listener back at the top with energy rather than at a closed full stop. The doctrine

already forbids full closure at a loop point (theme_compositions.py L106 and L190 both record

withheld cadences), and the hybrid is the formal name for what that produces.

3.4 Phrase expansion

The devices, with the identification test from §1.6:

material.

repeated to postpone the arrival. Open Music Theory's Beethoven Op. 2 No. 3 example adds five

measures to reach the expected perfect authentic cadence at bar 13 instead of bar 8.

bridges a standing harmony rather than advancing it, often with a slowing of harmonic rhythm.

cadence, the cadence is evaded, the music retries it (Janet Schmalfeldt, "Cadential processes: The

evaded cadence and the 'one more time' technique", *Journal of Musicological Research* 12/1-2,

1992, 1-52; publisher record).

The Mozart K. 309 iii example evades the expected cadence at bar 16, repeats bars 13-15 varied,

and resolves at bar 19.

The one-more-time technique deserves a specific note for a game score. It is the cheapest genuine

DRAMA available to a cue, it costs no new material, and it produces exactly the "small event, big

consequence" hierarchy that our own corpus derivation says separates loved tracks from filler

(volume 1 §2, and build/audio/exemplars/PATTERN_FINDINGS_V3.md §10). An evaded cadence is a

structural event with a magnitude a listener feels and a segmenter barely registers.

3.5 The phrase plan, as a schema

The concrete deliverable of this section. Alongside sections, layers, novelty_schedule and

hook, a pass-3 plan carries phrases, and each phrase record carries: an id; a theme type from

{sentence, period, hybrid_ant_cont, hybrid_ant_cad, hybrid_cbi_cont, hybrid_cbi_cad}; a scale

(standard or compound); a start cycle and a length in bars; the constituent functions with their bar

spans; a cadence type from {HC, IAC, PAC, deceptive, evaded, none_withheld} with its bar; an optional

expansion record naming kind, bars added and location; and the derived_from/operation chain link

of §2 for the basic idea it uses.

length with no gap; a continuation contains only fragments of its own presentation's basic idea

(C06 lifted from the head-cell tool to the cue); a period's antecedent cadence is strictly weaker

than its consequent's; an expansion normalises back to a duple underlying length; no cue ends a

loop on a PAC unless the theme row licenses closure; at least one evaded cadence per full-length

cue.

3.6 The numbers, separated into reported and proposed

The composer will implement whatever this document specifies, so the numbers are given explicitly

and each is labelled REPORTED (a figure from a cited source or a re-derivation of our own corpus) or

PROPOSED (this document's recommendation, with the reasoning that produced it). A proposed number is

a defensible starting value to be revised by measurement, never a finding.

the sentence and the period, with the compound types enlarging the standard eight-bar theme by a

factor of two (Caplin, *Classical Form*, OUP 1998; *Analyzing Classical Form*, OUP 2013;

Aziz review, MTO 20.1). Our head

cell is two bars. It is a basic idea. It is not a theme and never has been.

minimum that establishes a sequence and the point past which it turns mechanical

(Comprehensive Musicianship §7.2;

Music Theory Academy). CRAFT

CONSENSUS, not evidence.

IN THE LOW HUNDREDS — cue counts per Star Wars film run 43 to 184 (Lehman, catalogue, pp. 63-64;

volume 1 LEITMOTIF_TECHNIQUE.md §3.3). Scale STATEMENTS with runtime, never motif count.

(build/audio/exemplars/PATTERN_FINDINGS_V3.md §10, N = 30 against 927 siblings). Treatment

changes every 5.79 bars under roughly three landmarks per track at 0.88 strong events per minute

(volume 1 §2 and §5 principle 4).

theme-carrying layers; 3, 3 and 2 spine-changing operations; the longest melodic phrase anywhere

is two bars.

compound, built as a sentence, a period or a Caplin hybrid, of which the existing head cell is the

basic idea. Reasoning: this is not a preference but the definition — a two-bar unit is a basic

idea by Caplin's own taxonomy, so a cue containing only two-bar units contains no theme. The floor

is the smallest complete object the grammar recognises.

exists, a bare two-bar cell is a FRAGMENT, and fragmentation is a continuation device with a place

in the form (§3.1). Permitting bare cells everywhere is what collapsed round 2 into a motto loop.

contrasting idea which may be derived from the theme by inversion or retrograde and used as a

counter-line. Reasoning: the period's antecedent is basic idea PLUS contrasting idea by

definition, so one idea cannot fill a period; and the ostinato-plus-melody practice volume 1

documents in Mitsuda (§4.3) is two ideas by construction. Round 2 has one.

SPINE-CHANGING. Reasoning, from the envelope of two independent laws we already hold: Josh's

three-to-five-cycle novelty floor over 23 to 30 cycles requires five to ten structural events, and

the corpus's treatment change every 5.79 bars over 92 to 120 bars implies sixteen to twenty

treatment changes. Ten is the lower envelope of the two; six spine-changing is the corpus's

landmark-to-tide ratio applied to it. Round 2 delivered three, three and two.

NOTES PER SOUNDING BAR. Reasoning: round 2's theme-carrying lines average 0.75 notes per bar and

hold 2.1 to 4.6 percent of composed notes, which is a cue that is 97 percent accompaniment. An

eight-bar sentence at division level 1 carries twenty to thirty notes over eight bars, so two per

bar is a floor rather than a target. No source gives a percentage; this number is derived from our

own measurement and is the most revisable figure in the list.

ONE. Reasoning: §2's distinction between a star and a chain, with the reset carrying volume 1's

requirement that the plant recur near-plain at the arrival. Round 2's mean chain depth is exactly

1.0 on all three cues by construction.

Reasoning: the evaded cadence is the cheapest structural event that a listener feels and a

segmenter barely registers (§3.4), which is precisely the small-event hierarchy our corpus rewards;

the single near-plain arrival is volume 1's plant-then-never-neutrally rule with its one licensed

exception.

4. What makes a melody complex rather than busy

Josh's word is "intelligence", not "notes", and the distinction is the crux of the whole volume.

4.1 Decorated against developed

A DECORATED line has more notes over the same skeleton and the same formal function. A DEVELOPED

line has changed what the material DOES. Both may have identical note counts. The operational

difference: after a decoration, the phrase is in the same place in its own argument; after a

development, it is somewhere new. This is why §2's chain-depth measure is the right instrument and

note density is the wrong one — a cue can double its note count with divisions and still have chain

depth 1.0, and it will still sound simple, because it is.

The correct use of decoration is therefore as the SURFACE of a developed structure, never as a

substitute for one. A four-minute cue needs both: development supplies the argument, division

supplies the sophistication of the surface, and the failure that produces "busy" is division with no

development underneath it.

4.2 The structural line beneath the surface

Schenker's fundamental line (Urlinie) is a stepwise descent in the upper voice spanning a third, a

fifth or an octave — 3-2-1, 5-4-3-2-1 — supported by a bass arpeggiation, and everything on the

surface is an elaboration of it

(Wikipedia, Fundamental structure;

Schenkerian analysis). Stripped of its

metaphysics, the usable claim is modest and true: a melody that a listener follows has a small

number of GOAL PITCHES arriving at structurally strong points, and the notes between them are

traffic. A melody without goal pitches wanders regardless of how many notes it has.

land on, and the surface is written to arrive on them. Our pokok already is such a line for the

accompaniment (pass2_flores.py L103) and no equivalent exists for the melody.

Schenkerian claim that it is universal is contested and this document does not assert it.

declared structural pitches carry the longest duration or the strongest metric position within

their span.

4.3 Steps, leaps and the post-skip reversal

EVIDENCE. Von Hippel and Huron ("Why Do Skips Precede Reversals? The Effect of Tessitura on Melodic

Structure", *Music Perception* 18/1, 2000, 59-85;

UC Press)

found that across many cultures a large interval tends to be followed by a change of direction, and

argued that this arises from REGRESSION TO THE MEAN within a melody's tessitura rather than from a

listener expectation: skips reach toward the edges of the range and from an edge the only available

move is back. Their conclusion is that gap-fill, registral direction and registral return are side

effects of tessitura constraints.

The reading for a composer is that post-skip reversal is a statistical BASELINE, not a rule to

obey and not a rule to break for effect. Writing a melody that never reverses after a leap will

sound wrong because it implies a range the carrier does not have; writing one that always reverses

is the default and carries no information. Our own head cell does the normal thing — the +9 leap to

78 is followed by −7 then −2 — and that is correct and should stay.

Our corpus adds a caution against over-reading any of this: gap-fill after leap scores AUC 0.516

and stepwise interval fraction 0.474 in separating tracks Josh named from their own album siblings

(build/audio/exemplars/PATTERN_FINDINGS_V3.md §10). Both are at chance. Step-leap balance is

craft hygiene, not a differentiator.

4.4 The non-chord-tone layer, worked on our own cell

This is the concrete demonstration that a plain triadic tune becomes a sophisticated one by

elaboration alone, over an unchanged skeleton. The vocabulary, with the approach-and-departure rule

that defines each

(Open Music Theory, Embellishing tones;

Fundamentals, Function, and Form ch. 15):

whose dissonance is prepared.

before returning.

it produces a characteristic shape rather than a generic decoration.

Applied to our cell: 62, 66, 69, 78, 71, 69 over a D chord is a triad outline plus a leap and a

step-down. The same six pitches held as the skeleton, with a passing 64 between 62 and 66, a lower

neighbour 68 before 69, an accented appoggiatura 79 falling to 78, a suspension of 71 across the

bar into the Bm, and an anticipation of 69 before the next downbeat, is a fourteen-note line with

the identical structural pitches on the identical beats. Nothing about the motif's identity moved.

Every check our stack runs on the head cell — contour class, one licensed deviant, harmonic

signature, ambitus — still passes on the skeleton. That is what "intelligence in the melody" buys at

the surface, and it is entirely mechanical to generate.

field, because which embellishments are idiomatic is a cultural fact and not a universal one; the

organology lane owns that roster (craft_research/ORGANOLOGY_SLICE_CULTURES.md).

departure match its declared type, and the count of NCTs per structural note is capped by the

division level. Level 1 permits one per structural note, level 2 up to three, level 3 up to seven.

4.5 Hidden repetition and motivic parallelism

The idea that a motive stated on the surface also appears, augmented across a whole phrase or

section, in the structural pitches beneath it. Charles Burkhart, "Schenker's Motivic Parallelisms",

*Journal of Music Theory* 22 (1978), 145-75, distinguishes three types by the length of the copy

relative to the pattern; the technique is surveyed with worked Beethoven examples in Jack Boss,

"Schenkerian-Schoenbergian Analysis and Hidden Repetition in the Opening Movement of Beethoven's

Piano Sonata Op. 10 No. 1", *MTO* 5.1 (1999)

(MTO).

This is the deepest available answer to "intelligence", and it is also the cheapest for a

programmatic composer, because it is one line of arithmetic: derive the phrase's structural pitches

FROM the motif's own interval spine rather than choosing them freely. Our cue would then have a

head cell whose intervals are +4 +3 +9 −7 −2 and a phrase-level goal-line built on the same

intervals stretched over sixteen bars. A listener never names it and the coherence is audible

anyway. CRAFT CONSENSUS on the effect; no evidence is claimed that listeners detect it consciously,

and the Baker and Müllensiefen leitmotif-perception result in volume 1 §1.5 suggests they would not.

declaration.

4.6 What the evidence actually says about complexity and liking

Three findings, and they constrain how far this document is entitled to push.

complexity is supported in shape — a review of 57 studies categorised 50 of them (87.7%) as

compatible with a segmented inverted-U model (Chmiel and Schubert, "Back to the inverted-U for

music preference: A review of the literature", *Psychology of Music*, 2017;

SAGE) — while clear Wundt effects

were found in only a minority of them, and several strands find greater preference for

prototypical or subjectively simpler music. The honest statement: more complexity is not

monotonically better, and the peak is not at the complex end.

"Predictability and Uncertainty in the Pleasure of Music: A Reward for Learning?", *Journal of

Neuroscience* 39/47 (2019), 9397 (J Neurosci),

quantified uncertainty and surprise over 80,000 chords with IDyOM and found pleasure varying

non-linearly with their INTERACTION: passages were liked when uncertainty was low and surprise

high, or the reverse. Translated into composition instructions: establish a clear, low-entropy

context and then violate it, or run a high-entropy context and resolve it plainly. Doing neither —

a moderately unpredictable tune in a moderately unpredictable context — is the dead zone, and it

is where an algorithm lands by default.

model accounted for about 90 percent of the variance in listeners' perceived-complexity ratings of

melodies, using tonal, intervallic and rhythmic components

(Expectancy-based model of melodic complexity, ICMPC 2000;

commentary in *Empirical Musicology Review*,

Albrecht 2016). The model is

monophonic-only, which matches how we would use it — on an authored melodic line, before render.

Together these say something quite specific: the target is not "more complex melodies". The target

is a LOW-ENTROPY, CLEARLY-ESTABLISHED context inside which specific, placed, structurally-meaningful

violations occur. That is a description of phrase grammar with development, and it is why §3 and §2

are the answer rather than §1 alone.

5. The honest counterweight, and the earned-against-empty rule

Many of the most-loved game melodies are simple, and our own corpus says so more forcefully than any

outside source could. Kondo composed under a four-channel constraint and the received account of his

practice is that short, repetitive, meticulously-shaped melodies were the design goal rather than a

compromise, written so that short segments could repeat endlessly without becoming tiresome

(secondary and community sources, labelled as such:

Film Music Theory on Kondo;

volume 1 LEITMOTIF_TECHNIQUE.md §4.2 carries the primary GDC-2007 material).

And our measured corpus is blunter still. In build/audio/exemplars/PATTERN_FINDINGS_V3.md §10,

across thirty tracks Josh named against 927 of their own album siblings, every axis the folk theory

of hummability is built from sits between AUC 0.46 and 0.59: stepwise interval fraction 0.474,

gap-fill after leap 0.516, interval 3-gram repetition 0.488, contour turns per note 0.459, melodic

salience 0.462, time to hook 0.487, hook range 0.589, melodic span 0.600. Not one has moved

meaningfully across three derivations at N = 11, 28 and 30. What DOES separate a loved track from

its own album is size and return: section count AUC 0.715 (median 16 against 9), length 0.700,

mean section self-similarity 0.685 (0.901 against 0.854), drops 0.676, bars 0.675.

Read that honestly and it says the loved tracks are not melodically more complex than the filler

beside them. They are LONGER, they have MORE SECTIONS, and they RETURN TO THEMSELVES MORE. Which is

to say: their simple material is developed and recontextualised across a much larger structure.

The rule, in three lines

argument — an eight- or sixteen-bar sentence or period with a real cadence, recurring at least four

times, at least half of those returns carrying a named spine-changing operation from §1.13, mean

derivation-chain depth above 1.5, and at least one return reharmonised or mode-mutated so that

which of its notes are consonant has changed.

re-orchestrated with nothing above it: no phrase, no cadence, no antecedent that ever tried to

close, chain depth 1.0, and every return a register, carrier or tempo change. That is round 2

exactly, and the numbers are in §0.1: three spine-changing operations in 240 seconds, ninety

melodic notes in a 120-bar battle cue, 2.1 percent of the composed notes carrying the theme.

and adding notes to it is not the fix; the corpus is full of loved tracks whose melodic-craft axes

sit at chance. Round 2 failed because a basic idea was RESTATED twenty-one times and never once

grew into a theme. Pass 3 keeps the cell exactly as simple as it is, builds one real tune out of

it, and makes every later statement the next link in a chain.

6. THE DEVELOPMENT SCHEDULE

The schedule is TWO-LEVEL, because round 2 had only the lower level and that is exactly why it

failed. Level A is what happens to the PHRASE across the cue. Level B is what happens to the CELL

inside a phrase. Level B is an invariant engine instantiated by every span of level A; it is not a

separate schedule and it never runs on its own.

Cycle numbers assume a 4/4 four-bar cycle and a cue of three to four minutes, which is 23 to 30

cycles as measured on round 2. A two-bar-cycle sparse cue halves every span, collapses spans 3 and 4

into one, and keeps the level-B engine unchanged.

6.1 Level A — the phrase schedule across the cue

presentation across bars 1-8 (the head cell as basic idea in bars 1-2, extended to four, then its

statement-response repetition), continuation across bars 9-12, cadential across bars 13-16 with

the cadence withheld or a half cadence per the theme row's closure policy. Division level 0. This

is the only span in which the theme is neutral, and it is the span round 2 never had — its

equivalent was two bars long.

closing weak, consequent with a new continuation heading for a strong cadence — and that cadence

EVADED at its expected bar and retried, Schmalfeldt's one-more-time. The evasion is what makes this

span four and a half cycles instead of four, and the irregularity is the point: the form breathes

rather than tiling. Division level 1. Chain depth 2.

on the theme MUTATED by degree map into a borrowed mode, on a different carrier, over a profound

reharmonisation that changes the consonance class of at least a third of its notes. The contrasting

idea enters here as a counter-line derived from the theme's retrograde — family membership

guaranteed, recognition not claimed (§1.3). Division level 2. Chain depth 3, derived from span 2's

continuation rather than from the plant.

together for the only time in the cue. The theme displaced by one or two beats against a rhythm

layer that holds the original grid — Krebs's D-type dissonance, audible only because something

stayed put. Intervallic expansion by a factor of 1.5 on the last statement of the span, with any

range clamping reported rather than folded silently. Division level 2. Chain depth 4.

three parts. The theme's PRESENTATION ONLY, in augmentation ×2, with the harmonic rhythm halved

and the carrier octave-doubled — the coupling §1.4 requires and round 2 omitted. No continuation

and no cadence: the phrase is deliberately incomplete, which is what makes span 6 an arrival.

Division level 0 on the melody, so the surface simplifies exactly where the weight increases.

Chain depth resets to 1, derived from the plant — the periodic reset of §2.

near-plain in the widest registration of the cue, over the home harmony, with the removed parts

re-entering one at a time on phrase boundaries rather than bar lines, and with its structural

pitches now derived from the cell's own interval spine (§4.5's hidden repetition). Then liquidation

over two to four steps into the loop join, cadence withheld, ending on the pokok's

step-under-tonic so the loop wants to continue. Division level 1 falling to 0.

6.2 Level B — the cell engine inside every phrase

Every span above instantiates this four-part engine at its own scale. It is Caplin's sentence with

our operations named at each function, and it is the thing that makes a phrase out of a cell.

sequential (transposed by one or two scale degrees), RECORDED as a field — and never the same

choice in two consecutive spans.

largest-interval, recorded — sequenced for two or three legs, with the accompaniment's harmonic

rhythm doubled and the division level raised by one. New material is refused here; this is C06

lifted from the head-cell tool to the cue.

progression, at the cadence type the span declared. The division level returns to 0, because a

cadence that is still ornamented has not closed.

6.3 The density and budget rules that govern both levels

is simplest at the two points of greatest weight (spans 1 and 5) and densest in the middle. Inside

a span the engine adds one level at the continuation and returns to 0 at the cadence.

bar theme, no post-plant statement under four bars, two distinct melodic ideas, at least ten named

operations of which six are spine-changing, theme-carrying layers sounding in at least half the

bars at two or more notes per sounding bar, one evaded cadence, exactly one near-plain arrival.

intervallic expansion, augmentation and liquidation used at most twice; retrograde used freely as

material and never as an announced return; contrapuntal combination once, in span 4, and never

twice (at game scale it is rarer still — volume 1 §6.1).

register-or-carrier-or-tempo-only, which is the rule round 2 would have failed on every transition.

lengths are deliberately unequal — 4, 4.5, 4, 4, 3, 4 — because equal spans are the audible

signature of a grid.

7. Pipeline hooks, consolidated

BUILD ORDER: the Phrase object first, then liquidation and division, then the rest. Everything

below is downstream of there being a phrase to develop, and a composer that gains nine new cell

operations without gaining a phrase will produce a more elaborately decorated motto loop.

THE PHRASE OBJECT, which is new and has no counterpart in the pass-2 schema:

where functions[] tiles the phrase with (name, start_bar, end_bar) records drawn from

{presentation, continuation, cadential, antecedent, consequent, contrasting_idea}.

of §6.2, with the continuation required to be built from fragments of the basic idea.

a duple underlying length.

New operations on the Cell object in harness/music_gen/compose_arm_b.py, which already has

invert, retrograde, augment, diminish, fragment and rhythm:

New plan records, extending the pass-2 schema in harness/music_gen/pass2_plan.py and the emitters:

§2, replacing hook.returns[]'s flat transform names.

record, structural pitches.

New battery predicates, alongside the thirty-seven the pass-2 validator already runs:

melodic statement after the plant shorter than four bars — CODE-ABLE, and it is the predicate

round 2 would have failed first.

two notes per sounding bar; at least two distinct melodic ideas per full cue — CODE-ABLE off the

compiled note lists, which is how §0.1's table was produced.

CODE-ABLE.

basic idea — CODE-ABLE, and it is C06 lifted from author_head_cell.py to the cue.

cadence per full cue; no PAC at a loop join unless licensed — CODE-ABLE.

CODE-ABLE.

of the cell's notes — CODE-ABLE.

grid — CODE-ABLE.

consecutive register-or-tempo-only stages — CODE-ABLE.

authored monophonic melody line before render, and report rather than gate, because the model is

descriptive and our corpus says these axes do not separate loved from filler — MEASURE-ONLY.

hook-presence instrument (volume 1 §6, item two), reports the INTERVAL of a return — the one

audio-side measure that can see a transposed statement as a return rather than as new material.

Everything else in §1 is asserted from the score with the render as evidence only — MEASURE-ONLY.

8. The ten operations, ranked by how much they change pass 3

1. THE PHRASE OBJECT AND THE COMPLETE THEME (sentence, period, hybrid, with function spans and a

declared cadence) — CODE-ABLE. This is the missing LEVEL, not a missing operation. Nothing else

in this document can be scheduled without it and it is the one thing that, built alone, would

change how round 3 sounds.

2. LIQUIDATION INTO A CADENCE — CODE-ABLE. Our cues have no cadences at all; this is what a cadence

is made of, and it is what turns the phrase object from a schema into a sound.

3. DIVISION / PASSAGGI AT GRADED LEVELS — CODE-ABLE. The surface sophistication, at no cost to

identity, and the direct answer to "too simple" that does not touch the motif.

4. THE DERIVATION CHAIN (derived_from + operation, with a depth check) — CODE-ABLE. Turns a star

into developing variation, which is the organising idea of the volume.

5. SEQUENCE, real and tonal, two-to-three legs, with a required goal — CODE-ABLE. The continuation

engine, absent today.

6. THE EVADED CADENCE AND ONE-MORE-TIME — CODE-ABLE. The cheapest genuine drama available, and it

produces the small-event hierarchy our corpus rewards.

7. MODAL MUTATION BY DEGREE MAP — CODE-ABLE. Replaces a semitone smear with a real operation, and

carries the care gate.

8. RHYTHMIC DISPLACEMENT AGAINST A HELD GRID — CODE-ABLE. Free structural energy for a cyclic

composer, with an audibility check.

9. INTERVALLIC EXPANSION WITH RANGE CLAMPING REPORTED — CODE-ABLE. The grown form of a theme without

new material.

10. AUGMENTATION COUPLED TO HARMONIC RHYTHM AND CARRIER WEIGHT — CODE-ABLE as a coupled edit; the

ceremonial gesture, which today changes only the melody and therefore lands flat.

Marked MEASURE-ONLY and deliberately below the line: contrapuntal combination (asserted from the

score, unmeasurable in audio, and a game-scale event rather than a cue-scale one); carrier migration

(present already, and frequently mistaken for development); retrograde as a recognisable return

(the perception evidence says it is not one).

9. Honest limits

that the ear is the thing it keeps failing. Josh is the first ear and remains so.

from 1972 with short-term recognition of novel tunes, not with themes learned over a

seventy-nine-node game; the leitmotif-perception result in volume 1 §1.5 suggests exposure changes

the picture substantially, and neither result tells us whether a listener enjoys a development

they cannot name.

descending fundamental line underlies all tonal music is contested and is not asserted here; the

claim that followable melodies have goal pitches at strong points is the part that is doing work.

our scoring frame, which is a reference composition, and it does NOT license imposing sentence

and period structure on material that belongs to a tradition with its own phrase grammar. Where a

region's own practice supplies a form — the gong-chime colotomic cycle already does in the Flores

cues — that form governs and this section's categories are the frame around it, not a replacement

for it. The organology lane owns that boundary.

systematically prefers things that can be written as functions, and the thing Josh is actually

asking for — intelligence — is not one of them. What is offered is the scaffolding that makes

intelligence possible to schedule, not a proof that scheduling produces it.

10. Derivation note

Everything in §§1-4 derives from the published sources cited inline. Everything in §0, §5's second

half, §6 and §7 derives from reading our own stack at HEAD: harness/music_gen/pass2_flores.py

(the head cell L87-88, the mode L79-81, the pokok L103, the harmony and pokok variants L120-140),

harness/music_gen/pass2_realise.py (compile_pattern, and its statement branch in particular),

harness/music_gen/compose_arm_b.py (the Cell, Mode, Part and Score primitives),

harness/music_gen/author_head_cell.py (the C01-C18 battery, harmonic_signature_holds,

scale_degree_contour), harness/music_gen/theme_compositions.py (the continuation_fragment

fields), build/audio/pass2/plans/*.json, build/audio/pass2/cards/*.json and

build/audio/pass2/PROTOTYPE_VERDICT.md. Corpus figures are quoted from

build/audio/exemplars/PATTERN_FINDINGS_V3.md §10 with its stated denominators (30 corpus rows,

927 album siblings, 1180 cards). The canon this document serves and never overrides is the

composition floor at docs/spine/DECISIONS_PENDING_JOSH.md, including the ROUND 2 GRADED entry at

its tail, and the theme rows of registries/T0_Theme_Registry [DRAFT v0.1]. Where this document

names an outstanding operation or measurement it is a FINDING for the pass-3 build lane, not a

change to canon and not a change to any harness file — this pass wrote exactly one file.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root