music/complete_tracks/VARIETY_MATRIX.md
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·T0_Chapter_Index·T0_Festival_Registry.
If this document disagrees with canon, CANON WINS and this document is the defect.
Emitted by harness/music_gen/emit_identity_cards.py. The cards themselves are
build/audio/complete_tracks/cards/HF_MT_*.json. The control arm is
build/audio/complete_tracks/SAMENESS_BASELINE.md.
No two cards may share tempo_band + instrumentation_family + energy_class.
Those three axes were chosen because they are what the sameness baseline measured as collapsed.
The shipped cohort carries 2 texture classes across 15 tracks, 2 length classes, and exactly one
value of distinct_composed_sections. Pitch-set distinctness — the axis the lane had been
optimising — is not on this list, because it is not audible in the first four seconds.
The exemplar model is the Super Mario 64 track list: a roster of roughly this size where every
entry separates from every other by SOUND before any melody is recognised.
| # | card | role | dur | tempo (band) | instrumentation family | energy | sections | motifs |
|---|---|---|---|---|---|---|---|---|
| 1 | HF_MT_01_TITLE | title | 3:42 | 104 (T4_moderate) | full_orchestra_tutti | E11_heroic_declamatory | 7 | 4 |
| 2 | HF_MT_02_EXPLORATION_TRAVERSAL | exploration_traversal | 3:08 | 92 (T3_walking) | strings_and_winds_chamber | E04_open_warm | 12 | 4 |
| 3 | HF_MT_03_BATTLE_ORDINARY | battle_ordinary | 2:38 | 152 (T6_fast) | full_orchestra_tutti | E14_driving_combat | 7 | 4 |
| 4 | HF_MT_04_BOSS_CHAPTER | boss_chapter_tier | 3:29 | 138 (T5_brisk) | low_brass_and_organ_weight | E13_menacing_weight | 7 | 4 |
| 5 | HF_MT_05_BOSS_APEX | boss_apex_tier | 4:00 | 176 (T7_very_fast) | full_orchestra_and_choir | E16_apocalyptic | 9 | 5 |
| 6 | HF_MT_06_SANCTUARY_REST | sanctuary_rest | 4:43 | 56 (T1_very_slow) | solo_instrument_led | E01_stillness | 6 | 4 |
| 7 | HF_MT_07_TRADE_AND_FESTIVAL | trades_festival | 4:22 | 132 (T5_brisk) | wind_and_drum_period_band | E09_communal_celebration | 8 | 4 |
| 8 | HF_MT_08_SORROW_LOSS | sorrow_loss | 4:29 | 50 (T1_very_slow) | choir_and_low_strings | E17_peak_grief | 6 | 4 |
| 9 | HF_MT_09_WONDER_DISCOVERY | wonder_discovery | 4:00 | 72 (T2_slow) | strings_and_winds_chamber | E03_luminous_wonder | 5 | 4 |
| 10 | HF_MT_10_CREDITS | credits | 4:55 | 88 (T3_walking) | full_orchestra_tutti | E12_valedictory_suite | 8 | 5 |
| 11 | HF_MT_11_REGION_FLORES | region_theme | 4:04 | 126 (T5_brisk) | percussion_forward | E10_ceremonial_drive | 8 | 4 |
| 12 | HF_MT_12_REGION_BALI | region_theme | 4:51 | 112 (T4_moderate) | plucked_and_struck_period_ensemble | E08_hypnotic_interlock | 8 | 5 |
| 13 | HF_MT_13_REGION_SUMATRA_JAVA | region_theme | 4:42 | 68 (T2_slow) | voice_led_chant_ensemble | E18_austere_tension | 7 | 4 |
| 14 | HF_MT_14_REGION_SRI_LANKA | region_theme | 4:45 | 64 (T2_slow) | choir_and_low_strings | E05_devotional_awe | 7 | 4 |
| 15 | HF_MT_15_REGION_SOUTH_INDIA | region_theme | 4:43 | 104 (T4_moderate) | percussion_forward | E07_processional_grand | 8 | 4 |
| 16 | HF_MT_16_REGION_SWAHILI_COAST | region_theme | 4:41 | 58 (T1_very_slow) | voice_and_soundscape_minimal | E02_elegiac | 6 | 4 |
| 17 | HF_MT_17_REGION_ETHIOPIA | region_theme | 4:54 | 76 (T2_slow) | plucked_and_struck_period_ensemble | E06_nocturnal_ritual | 7 | 4 |
| 18 | HF_MT_18_REGION_CENTRAL_AFRICA | region_theme | 4:33 | 66 (T2_slow) | wind_and_drum_period_band | E19_antiphonal_night | 7 | 5 |
| 19 | HF_MT_19_REGION_WEST_AFRICA | region_theme | 4:52 | 158 (T6_fast) | percussion_forward | E15_ferocious | 8 | 5 |
| 20 | HF_MT_20_REGION_SOUTH_AFRICA | region_theme | 4:46 | 84 (T3_walking) | voices_and_body_percussion | E17_peak_grief | 7 | 5 |
L2's target as a FLOOR — the RECOMPOSE_RUNG_TWO_FINDINGS § 1.3 finding, where the target was never enforced and the recomposition scored worse than the thing it replaced on the rubric's own headline mechanism.PHRASE-05, the anti-fatigue law).--selftest forces each one to fire on a deliberate defect and to pass on the clean set.SNES LOOP-01 prescribes loop lengths by cue class — hook-bearing theme loops 30–60 s, ambient
and exploration 1:30–2:30, combat 15–30 s. Josh asked for complete tracks of 2.5–5 minutes.
Those are not the same measurement and the cards carry both:
target_duration_s is the composed track — the object with an intro, real sections, adevelopment and a coda. This is what a listener hears as a piece of music, and what the
exemplar soundtracks ship.
in_game_loop_span_s is the span the runtime loops, chosen per cue class to LOOP-01.The two are related by composition, never by tiling: the loop span is a designated region of the
composed track with a composed seam, and no section of any card is a verbatim repeat of another.
That is the NO TILING law from RECOMPOSE_RUNG_TWO_FINDINGS stated as a schema rather than
as an instruction — and it closes § 1.1's defect directly, because a card can now say *a loop
composed of N sections, each with its own bar count*, which is the thing the old schema could
not express.
HF_MT_XX_REGION_RIFT_VALLEY — East African Rift Valley_source/02_Tier_2_Region_Pages/rift_valley.md section 10HF_MT_XX_FAIRY_REALM — Fairy Realm (Prologue, CH_01)CLAUDE.md :: THE JOSH GATE (slice redefined 2026-07-27)The landed CPU stack is sfizz 1.2.3 over VSCO2-CE and VCSL — 23 instruments, all CC0. It
contains no percussion of any kind, no choir, no trumpet, no tuba, and no period instrument.
So the shipped cohort's single texture is not only a compositional choice; it is partly what the
stack could physically play. Every card declares its own stack_coverage, and the cards that
name a sound the stack cannot make are naming an acquisition, not claiming a render.
4 of 20 cards are renderable on the landed stack today. The rest are the
wave-two sourcing worklist: CC0 or public-domain percussion, choir and period sample sets, with
the same hash-and-licence discipline as the landed stack, and the standing rule intact — no
sample from any set is ever a conditioning, fine-tune or LoRA input to any generator.
python harness/music_gen/sameness_baseline.py # re-measure the control arm python harness/music_gen/emit_identity_cards.py --selftest # arm every tooth python harness/music_gen/emit_identity_cards.py # re-emit; refuses on any collision
Re-run the baseline against the next rung's renders. Every axis in its § 3 clustering table must
move, and the cards above are the specification of how far.