SAMENESS_BASELINE.md

music/complete_tracks/SAMENESS_BASELINE.md

THE SAMENESS BASELINE — what the shipped orchestral cohort actually measures

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order: docs/DOC_MAP.md § 0.
Canon served: T0_Theme_Registry · T0_Motif_Registry.
If this document disagrees with canon, CANON WINS and this document is the defect.

Emitted by harness/music_gen/sameness_baseline.py. Every number here is measured off the

artifact on disk or read off its own composition document. Nothing is estimated.

0. The ruling this answers

Josh, 2026-08-05: *"Why is all this music the fuxking same, all just 30 seconds each the exact
same track, whys it all just one type of sound on a 5 second loop, like wtf? Were supposed to be
creating at least 12 to 20 complete tracks with actual full orchestra complexity."*

The lane's previous defence was that the themes are DISTINCT — different pitch sets, different

keys, different head cells, each one measured and gated. That defence is true and it is

irrelevant, because pitch-set distinctness is not an axis a listener hears in the first four

seconds. The axes a listener hears first are duration, tempo, instrument set, texture and

dynamic shape. This table measures those. The verdict below is arithmetic, not opinion.

1. The cohort

15 orchestral rung-one renders on disk. The nostalgia census scored fourteen of them;

JOURNEY_WORLD was held out of that census as the recompose control and is included here

because a listener hears it like any other. HOUSE_PARENT_HELD is reveal-firewalled (R1,

served to nobody before Ch 38) and is measured but never shipped — it is marked HELD below.

2. The sameness table

themedur (s)len classbpmtempo bandkey / modetsinstrument setvoicestextureRMS dBFSdyn range dBcrest dBsections
COMPANION_HEALERS_CHILD25.7L0_fragment84T3_walkingD minor (aeolian)4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-16.84.412.42
FAMILIAR_BOND36.4L1_short_cue112T4_moderateA major4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-18.06.413.12
FAM_THE_DEEP_WATER31.8L1_short_cue68T2_slowA minor (aeolian)4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-17.67.012.62
FAM_THE_LIVING_VOICE34.0L1_short_cue120T5_briskG major4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-20.06.715.82
FAM_THE_MADE_PLACE24.5L0_fragment88T3_walkingG mixolydian4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-17.44.812.22
FAM_THE_OTHERWORLD22.5L0_fragment96T3_walkingF major4/4cb + carrier + vib + glass + vc + vla6solo_carrier_over_sustained_frame_plus_colour-17.28.615.12
FAM_THE_OTHER_SELF30.0L1_short_cue80T3_walkingD minor (aeolian)4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-16.93.411.72
FAM_THE_SUBSTRATE28.4L0_fragment76T2_slowD dorian4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-17.16.813.22
FAM_THE_TURNED23.5L0_fragment92T3_walkingE minor (aeolian)4/4cb + carrier + org + vla4solo_carrier_over_sustained_frame-17.03.611.42
FAM_THE_WRITTEN28.6L0_fragment84T3_walkingA minor (aeolian)4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-19.57.314.52
HOME_AND_LOSS34.0L1_short_cue90T3_walkingF major3/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-18.320.813.72
HOUSE_PARENT_HELD *(HELD)*21.6L0_fragment100T4_moderateB-flat major4/4cb-loud + carrier + vc + vla4solo_carrier_over_sustained_frame-30.220.927.92
JOURNEY_WORLD34.0L1_short_cue120T5_briskD major4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-12.99.210.42
PATTERN_UNNAMED_PREGATE21.6L0_fragment100T4_moderateB-flat major4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-21.120.718.62
PROTAGONIST_THEME42.5L1_short_cue96T3_walkingG major4/4cb + carrier + vc + vla4solo_carrier_over_sustained_frame-14.36.410.72

3. The clustering — distinct values per axis

An axis whose distinct-value count is 1 is an axis on which every track in the cohort is

literally identical. An axis whose modal share is above 80% is an axis a listener will hear as

identical, because the exceptions are not enough to register as variety.

axisdistinct valuesmodal valuemodal share
length_class2L0_fragment8/15 (53.3%)
tempo_band4T3_walking8/15 (53.3%)
time_signature24/414/15 (93.3%)
mode4major8/15 (53.3%)
instrument_signature4bass:contrabass.sus_quiet + carrier + frame:cello_ens.sus_quiet + frame:viola_ens.sus_quiet12/15 (80.0%)
voice_count2414/15 (93.3%)
texture_class2solo_carrier_over_sustained_frame14/15 (93.3%)
carrier_family7cello_section7/15 (46.7%)
form_declared2sentence 2+2+4 bars, stated once + one composed loop turnaround10/15 (66.7%)
distinct_composed_sections1215/15 (100.0%)

4. The scalars

5. The verdict, stated as the mechanism

The pinned mechanism reads, in the cohort's own numbers:

What WAS distinct: key (see the tally), head-cell pitch content, contour class and the

deviant. Those are the axes the lane optimised, and they are real. They are also, every one of

them, invisible to a listener who is hearing the same clarinet-over-quiet-strings sound at the

same dynamic for the same twenty-five seconds. Josh's ear is confirmed by the numbers.

6. What this baseline is FOR

This is the control arm. The identity cards in build/audio/complete_tracks/cards/ are the

treatment: 16-20 cue cards, each carrying a target duration in the 2.5-5 minute band, a

tempo band, an instrumentation family, an energy class and a real multi-section form — and a

variety matrix that REFUSES any two cards sharing tempo band + instrumentation family +

energy class. Re-run this script against the next rung's renders; every axis above must move.

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