music/pass5/PASS5_VERDICT.md
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.
| round 2 | pass 3 | pass 4 | ROUND 3 (published) | |
|---|---|---|---|---|
| score-side targets, same code | 7 of 57 | 55 of 57 | 57 of 57 | 57 of 57 |
| addition rows | — | — | 24 of 24 | 24 of 24, with the waiver row now armed |
cues passing dynamic_arc | 0 of 3 | 2 of 3 | 2 of 3 | 3 of 3 |
| longest measured hold | 13.4 s corpus-wide | — | 0.0 / 29.7 / 34.9 s | 26.0 / 26.8 / 34.9 s |
| intra-region distinctness | 3 of 3 pairs FLAGGED | clean | clean | clean, and run BEFORE the render |
| cross-track set distinctness | 0.0 | 1.0 | 1.0 | 1.0 |
| loudness | never measured | never measured | never measured | 2 of 3 inside the corpus target |
| space | none | none | none | a 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.
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
| cycle | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|
| parts | 9 | 11 | 15 | 11 | 15 | 14 | 12 | 13 |
| notes | 45 | 52 | 111 | 81 | 96 | 111 | 90 | 87 |
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.
(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.
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 / longest | PASS / 4 / 29.72 s | FAIL / 0 / 0.00 s | PASS / 2 / 34.92 s |
| published: arc / holds / longest | PASS / 2 / 26.75 s | PASS / 1 / 26.00 s | PASS / 4 / 34.92 s |
| instruments passing | 6 of 7 | 7 of 7 | 7 of 7 |
| room, wet chosen / declared | 0.035 / 0.16 | 0.26 / 0.26 | 0.11 / 0.11 |
| structural yield, published | 0.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 target | MET, -0.98 LU | MET, -0.94 LU | MISSED by 2.09 LU |
| loudness range | 8.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 / duty | 9.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.
**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.
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.
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).
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.
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.
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.