PASS5_VERDICT.md

music/pass5/PASS5_VERDICT.md

Round 3 — passes 5 and 6, the verdict

Honest tier: STRUCTURE and MEASURED MIX. Nobody has heard these tracks — not Josh, not the

director, not the lane that made them. Every claim below is either a property of the written score

or a number measured off the published file by the same rulers round 2, pass 3 and pass 4 were

measured with. There is no listening verdict here and none should be read into it.

Josh's order for this round was direct: run the lane and show what the research bought. Two passes

ran. Pass 5 repaired the composition defect pass 4 named and folded in every enhancement that had

landed without a render behind it. Pass 6 changed no note at all and chose each cue's room and level

by measurement.

0. The headline

round 2pass 3pass 4ROUND 3 (published)
score-side targets, same code7 of 5755 of 5757 of 5757 of 57
addition rows24 of 2424 of 24, with the waiver row now armed
cues passing dynamic_arc0 of 32 of 32 of 33 of 3
longest measured hold13.4 s corpus-wide0.0 / 29.7 / 34.9 s26.0 / 26.8 / 34.9 s
intra-region distinctness3 of 3 pairs FLAGGEDcleancleanclean, and run BEFORE the render
cross-track set distinctness0.01.01.01.0
loudnessnever measurednever measurednever measured2 of 3 inside the corpus target
spacenonenonenonea declared room, chosen by measurement

ALL THREE CUES NOW PASS THE ARC INSTRUMENT ON THE FILE THAT PUBLISHES. That instrument exists

because of one sentence of Josh's — "the songs dont build and hold with proper peaks" — and it is

the only bar in this program that came from him rather than from a corpus. Round 2 failed it on

every cue with zero measured holds. Round 3 passes it on every cue, with 7 of 7, 6 of 7 and 7 of 7

of the instruments that can decide.

1. What pass 4 said was wrong, and what was actually wrong

Pass 4's verdict named its own residual defect: the sanctuary cue failed dynamic_arc with ZERO

measured holds, and its arrival — written as the widest registration in the cue — measured THINNER

than the approach before it. Its named repair was to hold the ornament out of the rotating pair

through the arrival and move the entries landing at cycle 11 to cycle 13.

THE MECHANISM WAS BIGGER THAN THAT AND IT WAS FOUND BY COUNTING PARTS PER CYCLE off the compiled

plan rather than by reading a flow curve. On the sanctuary cue's declared plateau — cycles 9 to 16,

every one at energy 0.76 — the compiled part count ran

cycle910111213141516
parts911151115141213
notes455211181961119087

The plateau's own first two cycles were the thinnest thing in it. The family rotation rested the

ENTIRE tuned-metal family there — vibraphone, hand chimes and glockenspiel, about forty-six notes a

cycle — and handed the seam to a "plucked" family of a harp and a marimba worth sixteen.

pass4_grammar.family_rest_spans states the premise in its own docstring: *"one rests exactly where

the other plays, so the sounding part count is unchanged across the seam and only the timbre

moves."* THE PREMISE WAS NEVER TRUE OF THESE CUES. Every family swap was a dynamic change wearing a

treatment change's name — the exact failure that same docstring warns against two sentences later.

So the instrument was not mis-reading a composition. It was reading a hole, correctly: a build that

peaks inside its own plateau and falls afterwards is one BUILD and one RELEASE with no HOLD between

them.

2. Pass 5 — the four repairs

(a) THE ROTATION IS WEIGHT-NEUTRAL BY CONSTRUCTION. The interlocking pair no longer rests into a

hole; it is MIRRORED. The same polos and sangsih lines, note for note, are handed to a tuned-WOOD

player on exactly the cycles the tuned-metal player rests, and taken back. One layer out, one layer

in, the same notes, a different timbre — which is what "the instrument family rotates" was always

supposed to mean, and which is real gamelan practice rather than an engineering convenience. The

mirror is built from the source layer's own cycles at the moment they are removed, so it cannot

drift from what it mirrors. Everything else left the rotating set: the pokok, the colotomic clock,

the drums, the figuration, the colour parts and — pass 4's own named repair, now a consequence of

the rule rather than a special case — the ORNAMENT.

The property is checked directly rather than by a summary statistic: at every swap cycle, the part

count with the mirrors minus the part count without them must equal the number of mirrors playing

there. It does, on all three cues, and the control that removes the mirrors turns the same

measurement red.

(b) THE HOLD SPINE MOVED TO WHERE THE ARRIVAL IS. Pass 4 froze the sanctuary cue's plateau from

cycle 11, which is two cycles BEFORE the arrival — a "settled" stretch that still contained the

arrival's own entry. 25 s rounds to four cycles on that cue's clock, putting the spine at cycles

13-16: the arrival and the hold after it, 26.7 s against the instrument's 22.287 s floor.

(c) THE ENTRY AT CYCLE 11 MOVED INTO THE ARRIVAL, and it cost no part. The sanctuary cue is at

the top of its class part band (SANCTUARY 8-18, itself already a widened deviation recorded against

Josh's energy floor), so every part added had to be exchanged for one. The second idea's approach

repetition moved to the emptiest arrival cycle — chosen by measuring the compiled plan, not by hand

— and the folk-harp arpeggio was exchanged for the mirror, one for one, because its pass-4 job was

to be the counterweight that turned out to be three times too light.

(d) THE RING GOT ITS OWN HANDS. See section 4.

3. Pass 6 — the master, chosen by measurement

Pass 5's render exposed two things no composition change can fix.

THE ROOM COST THE EXPLORATION CUE ITS ARC. Dry, the road cue passes with four holds and a longest of

29.72 s. In the room that was picked by taste it passed with ONE at 20.06 s — under the floor — and

lost an instrument. A reverb tail fills the gaps between phrases and the composed silences that cue

is built around.

NOTHING REACHED THE CORPUS LOUDNESS. Gained to target and pulled back to the true-peak ceiling, the

three cues landed 3.46, 5.53 and 8.97 LU BELOW the median of the reference tracks for their class.

So pass 6 SWEEPS the room — five wet fractions per cue, the full floor battery run on each candidate

master — and keeps the wettest one that costs the cue nothing against its own dry render. And it

adds a limiter with a soft knee, a slow release and a cap set by measurement (9 dB; see section 7),

under a rule that is not negotiable: **if limiting costs a measured hold or takes dynamic_arc from pass to fail, the cue

publishes QUIETER and the deviation goes on its card.** Loudness never buys the arc.

ROAD (EXPLORATION)FALLS (SANCTUARY)ROUNDS (BATTLE)
dry: arc / holds / longestPASS / 4 / 29.72 sFAIL / 0 / 0.00 sPASS / 2 / 34.92 s
published: arc / holds / longestPASS / 2 / 26.75 sPASS / 1 / 26.00 sPASS / 4 / 34.92 s
instruments passing6 of 77 of 77 of 7
room, wet chosen / declared0.035 / 0.160.26 / 0.260.11 / 0.11
structural yield, published0.2381 (*our generator*)0.6667 (*between*)0.5000 (*between*)
integrated loudness-13.16 LUFS (target -12.18)-14.89 (target -13.95)-11.93 (target -9.84)
loudness targetMET, -0.98 LUMET, -0.94 LUMISSED by 2.09 LU
loudness range8.57 LU (band 2.41-21.02) ✓11.90 (band 6.22-8.70) ✗10.27 (band 1.49-9.89) ✗
true peak-1.0 dBTP ✓-1.0 ✓-1.0 ✓
limiter, cap / mean / duty9.0 / 0.027 dB / 5.4%9.0 / 0.013 / 2.3%9.0 / 0.350 / 33.4%

THE SANCTUARY CUE'S HOLD ARRIVES WITH THE ROOM AND THAT IS STATED RATHER THAN ROUNDED OFF. Dry, it

still reads zero holds; in its declared room it reads one of 26.0 s. The composition repair moved

its structural yield 0.5556 → 0.6562 dry and its boundary count 21 → 22, and the room is what turned

the plateau into something the segmenter can see. The published file is the artifact and the

published file passes; the dry file is the comparison and the dry file does not. Both numbers are

above.

THE EXPLORATION CUE PUBLISHES DRIER THAN ANY OTHER AND ITS ROOM IS ALMOST OFF. No wet fraction in

the sweep matched its dry render on the ordered axes, so it fell back to the best available — and it

still loses two holds and 0.05 of structural yield against dry. The cue is built around 8.275 s of

composed silence and a reverb tail is the one thing that cannot coexist with that.

4. The enhancements that had landed and never been rendered

**THE VOICE AND BODY-PERCUSSION PALETTE IS NOW REACHABLE — that was a one-function bug and it is

fixed.** instrumentation_cards.measured_range read only the ROOT sfz, and both CC0 sets landed

this week are module-assembled: body.sfz is four #include lines and a <control> block with no

key opcode anywhere in it, and the percussion keymap addresses its keys through #define macros.

Because compile_layer calls that reader for every non-bed layer, a plan naming any of the nine new

ids could not compile AT ALL — material proven to sound through sfizz was unreachable from any plan

because a reader stopped at the front door. The reader now follows #include (relative to the file

and to the instrument root, bounded, cycle-safe) and expands #define. All nine ids resolve a range;

body_perc.kit reads 36-61, exactly the span its own note claims.

THE CACI RING PLAYS THE BODY-PERCUSSION SET. docs/spine/CH_03.md:28 puts *"a ring and a crowd

and a kept count"* on that ground in the canon's own words, so the crowd's hands are canon and not

decoration. They now sound on the landed kit — hand clap key 61 and finger clap key 60, four to six

round robins and two velocity layers per articulation — instead of VCSL's two mapped strokes.

NO VOICE IS USED IN ANY OF THE THREE CUES, AND THAT IS A RULING. The plans' own care block reads

allow_register: this page's Section 10 documented instruments and technique and `deny_register:

… nothing this page does not attest`. Section 10 of the Flores region page documents the gong-waning

ensemble and the ceremonial drumming that scores the caci rounds; it attests no sung or chanted

register, and it carries its own substrate-confidence flag saying the caci and gong-waning material

is THIN in the processed corpus. A chant here would fill a documented gap with the thing a composer

happens to own — the exact move the ornament lane's care line already forbids for Balinese kotekan.

The palette is reachable; the absence is a decision, and it is reversible the moment an acquisition

attests the register.

THE EXPOSURE LEDGER'S TEETH WERE RUN BEFORE COMPOSING. T1 and T2 both return zero findings.

REGION_FLORES_ISLAND is ATTACHED — 35 exposures over 2 nodes, planted at CH_02, 35 cue rows — so

the tooth "no cue class may be composed for a region whose region theme is unattached" is satisfied

rather than assumed. JOURNEY_WORLD, whose four-note head the road cue quotes once, carries 14

exposures planted at CH_PROLOGUE.

INTRA-REGION DISTINCTNESS RAN BEFORE THE RENDER, NOT AFTER. flores_island, 3 cues, 3 pairs, 0

flagged, max similarity 0.0, 6 of 10 non-melodic axes varying; its own 16 known-answer controls pass

in the same run.

MIX, SPACE AND LOUDNESS EXIST FOR THE FIRST TIME — GAP-183's first doctrine.

harness/music_gen/mix_policy.py. Loudness is ITU-R BS.1770-4 (integrated LUFS, loudness range,

4x-oversampled true peak) and the meter is controlled against ffmpeg's ebur128, an independent

implementation nobody in this repo wrote — they agree to 0.02 LU on a real file and to 0.01 on the

EBU Tech 3341 case-1 tone. The TARGETS ARE MEASURED OFF THE CORPUS, per class, from the 30 acquired

exemplar tracks that have audio on this box: EXPLORATION -12.18, BATTLE -9.84, and SANCTUARY borrows

MELANCHOLIC's -13.95, which is the same borrow the energy floor already declares and the same

weakness. They are not a broadcast number; a game score is not broadcast. The SPACE is a synthetic

seeded exponential-decay impulse generated in-repo, which is a licence decision as much as a sound

one: no third-party IR is downloaded, so there is no IR licence to read, no attribution to carry and

no set that can be withdrawn from under a shipped game.

5. The record-integrity fixes the pass-4 critic required

THE PRE-RENDER GATE WAS PUBLISHED BEFORE THE RENDER AND THE TIMESTAMPS PROVE IT. Pass 4's gate

artifact was written at 07:15 for a render that ran at 06:59-07:05; the content was a pure function

of the plans and reproduced byte-identically, but "published before a sample was played" was not

evidenced by the record. This time: plans frozen 10:24:34, gate written 10:24:45, intra-region

distinctness 10:24:46, render started 10:25 and finished 10:35. RENDER_TIMELINE.txt and the

file mtimes carry it.

THE WAIVER ROW IS ARMED. The critic forged the battle cue's plan-declared measured_longest_hold_s

to 999.0 and the row passed and the gate returned PASS with zero blocking findings — a number a plan

asserts about itself is not a measurement. The row now READS the value out of a named

instr_dynamic_arc output file from a prior pass (which therefore exists before this render),

refuses a waiver that names no file, and refuses one whose claim disagrees with the file. Two

must-fire controls: the forged 999.0 and the waiver stripped of its citation both turn it red.

THE MIS-NAMED ROW IS RENAMED. span_schedule_is_this_cue's_own tested bool(operation_sequence)

— a presence check. It is now `span_schedule_is_DECLARED (the distinctness property is the gate's

form diff), and the two other declaration-read rows carry a reads: declaration` field so nobody

reads a declaration as a measurement again.

THE STRUCTURAL-YIELD FLOOR IS PRINTED WITH ITS OWN INSTRUMENT'S WORD. The floor is 0.76 and the

reject threshold is 0.32. Published: FALLS 0.6667 and ROUNDS 0.5000 read *"between the two

populations"*; ROAD reads 0.2381, which its own instrument classifies as "our generator" — below

the reject threshold, worse than pass 4's 0.2857, and it is the weakest number in this round.

THE BRACKET THAT MAKES IT ARGUABLE, AND IT IS A BRACKET AND NOT AN EXCUSE. Structural yield is

boundaries divided by every spectral dip the detector finds. Round 3 deliberately writes drops that

round 2 had none of, so the denominator grew: of ROAD's 42 measured drops, **35 remove fewer than two

spectral lanes and 22 are shallower than 3 dB**. Counting only the drops the score actually composed,

the number is 1.25 — above the corpus floor of 0.76. The instrument's own summary calls it "a

GENERATION-DEFECT detector, never a taste oracle", near chance against the corpus's own album

siblings (AUC 0.437). It is printed at both brackets and the director should read both.

6. Distinctness, and the filter round 1 was judged by

similarity 0.0, 16 of 16 known-answer controls green.

size axes on the hit side on every cue (round 2's battle cue managed 3 of 6 held-out rules; round

3's cues manage 4, 5 and 5).

7. Honest limits — every one of these still binds

The score says what was WRITTEN and the mix says what was DELIVERED; only an ear knows whether it

works, and Josh is the first ear.

was turned down on melodies in Josh's own words. Every repair since has been a FORM repair or a

MIX repair. Publishing round 3 therefore tests pass 3's melodic grammar for the first time, and a

takedown on melody would be a verdict on that grammar rather than on this round's work.

THAN ASSUMED. build/audio/pass6/LIMITER_PROBE.json re-ran the whole floor battery at limiter

caps of 6, 9 and 12 dB. At 9 dB the cue gained 2.02 LU and dynamic_arc, its four holds, its

34.92 s longest hold, its structural yield, its 7-of-7 instruments and its measured dynamic range

were all unchanged to two decimal places — so the cap moved to 9 on that evidence. At 12 dB

NOTHING moved at all: the limiter saturates, because no passage in the cue ever asks for more.

The residual 2.09 LU is therefore a doctrine limit and not a knob nobody turned — the corpus

BATTLE median of -9.84 LUFS is a median of commercial masters shaped by multiband compression,

saturation and clipping, none of which this chain does or should start doing on a cue nobody has

heard.

1.49-9.89). Our cues are WIDER than the reference set, which is the opposite of the round-2

defect and is not obviously wrong, but it is a measured deviation and it is not yet understood.

loudness target. It is the weakest number in the whole apparatus and it is load-bearing twice.

decay; it does not give a room shape. Declared, not papered over with a preset name.

exactly. What it buys is that the family swap stops being a hole. It does not make the interlocking

writing better.

tempo flow — and every pass-3 and pass-4 limit still binds: no pitched gong exists in either CC0

set, the tuning is 12-TET and a gong waning is not, the bamboo flute is a baroque recorder, the

phrase grammar is classical-period European practice laid ON the colotomic cycle, and the kotekan

figure-selection rule is a declared Balinese import at a Manggarai node.

its five axes reach AUC 0.75 and its counter-melody axis is on the wrong side of chance. It is

printed because hiding it would be the dishonest move.

8. What this does not say

That round 3 sounds better than round 2. Nobody has heard either. It says the writing changed in the

ways pass 4's verdict called for, that all three cues now clear the one bar that came from Josh's own

sentence, and that for the first time the program can state how loud its music arrives and what room

it arrives in. Whether any of that turned into music is the question none of it answers.

9. The exploration cue's deepest drop, stated because it moved the wrong way

ROAD's deepest measured drop reads -6.48 dB on the published file against pass 4's -14.76 dry, and

it does not clear the corpus floor of -10.73. Its measured dynamic range is essentially unchanged

across the whole room sweep (14.29-14.46 dB against 14.80 dry), so the room is not the cause; what

moved is which discrete events the drop detector resolves at all. The score-side truth is unchanged

and is the stronger claim: ROAD writes 8.275 s of silence across two windows and BOTH are verified

CLEAN against the compiled notes. The cue's measured silence fraction still reads exactly 0.0

because its quietest moments sit at about -39.5 dB below the track's own p95 against a detector

cliff at exactly -40 — the same two-decibel miss pass 4 recorded, still GAP-183's tail-and-loudness

territory rather than a composition defect. It is named here rather than left for a critic to find.

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