HF_MT_19_REGION_WEST_AFRICA.json

music/complete_tracks/cards/HF_MT_19_REGION_WEST_AFRICA.json

{
 "card_id": "HF_MT_19_REGION_WEST_AFRICA",
 "cue_role": "region_theme",
 "cue_class": "zone_theme",
 "working_title": "West Africa — The Drum That Is Spoken",
 "region": "West Africa (Yorubaland; Dahomey; Dogon country)",
 "region_page": "_source/02_Tier_2_Region_Pages/west_africa.md section 10",
 "chapters_served": [
  "CH_12"
 ],
 "target_duration_s": 292,
 "loop_class": "long_loop",
 "in_game_loop_span_s": 292,
 "bpm": 158,
 "tempo_band": "T6_fast",
 "key": "E minor",
 "modal_colour": "minor pentatonic; the mode is almost irrelevant because the rhythm is the content",
 "instrumentation_family": "percussion_forward",
 "instrumentation": [
  "a graded drum family, largest to smallest, at reference register",
  "struck iron bell holding the timeline",
  "shaken gourd rattle",
  "answering voices, two phrases only",
  "one low brass note per section, from the orchestral side"
 ],
 "voice_count_target": 7,
 "energy_class": "E15_ferocious",
 "dynamic_range_target_db": 20,
 "total_bars": 128,
 "form": [
  {
   "label": "timeline",
   "bars": 12,
   "function": "the iron bell alone; the whole track is measured against these bars"
  },
  {
   "label": "A",
   "bars": 20,
   "function": "the drum family enters largest first, one per four bars"
  },
  {
   "label": "speech",
   "bars": 20,
   "function": "the lead drum plays a speech-contour phrase; the voices answer it once"
  },
  {
   "label": "B",
   "bars": 20,
   "function": "the timeline displaces by one stroke -- everything reads differently"
  },
  {
   "label": "break",
   "bars": 12,
   "function": "bell and rattle only; the drums rest"
  },
  {
   "label": "C",
   "bars": 28,
   "function": "the full family at the loudest, cross-rhythm at three levels"
  },
  {
   "label": "displacement_return",
   "bars": 12,
   "function": "the timeline snaps back; the ear re-hears bar 1"
  },
  {
   "label": "turnaround",
   "bars": 4,
   "function": "wraps on the bell, which never stopped"
  }
 ],
 "motif_stated": [
  "FAM_THE_LIVING_VOICE"
 ],
 "motif_developed": [
  "PROTAGONIST_THEME"
 ],
 "motif_operation": "metric displacement -- the timeline moves and the material does not",
 "distinct_motifs": 5,
 "anti_tiling": "Section B is section A with the timeline displaced by one stroke: identical material that a listener cannot hear as a repeat. That is the anti-tiling device this card is built on.",
 "laws": [
  "KONDO RHYTHM",
  "KONDO FORM-02",
  "SNES ECON-09",
  "SNES LOOP-05"
 ],
 "canon_refs": [
  "_source/02_Tier_2_Region_Pages/west_africa.md section 10 [SRC_00204 (drum-family musicology); SRC_01898; SRC_01776; SRC_00252]"
 ],
 "care_notes": "Reference register. The drum family is scored in its generic graded form; no consecrated performance is sampled and no ritual speech-text is set. Ch 12's emotional register is fury and the fury belongs to the PLAYER's situation, not to the culture's register -- the darkening operations travel with the antagonist material and never with the place.",
 "substrate_confidence": "one of the page's richest lanes -- a dedicated musicology plus three further ethnographies. Three named lanes are absent and are held rather than composed over.",
 "reveal_gate": "NONE",
 "interactive_hook": null,
 "short_loop_justification": null,
 "_doc": "A per-track IDENTITY CARD. It says what the track IS on the axes a listener hears in the first four seconds, so that no two tracks in the roster read as the same track. Consumed by the composition lane; scored against build/audio/complete_tracks/SAMENESS_BASELINE.md.",
 "_emitter": "harness/music_gen/emit_identity_cards.py",
 "_ruling_served": "Josh 2026-08-05 -- 12 to 20 complete tracks with real orchestral complexity, not one 30-second texture fifteen times.",
 "tempo_band_range_bpm": [
  144,
  172
 ],
 "instrumentation_family_meaning": "tuned and untuned percussion carry the piece; melody rides on top of the pattern.",
 "energy_class_meaning": "unbanked aggression; the fight the player is angry in.",
 "time_signature": "12/8",
 "beats_per_bar_quarter_equivalents": 6,
 "bar_seconds": 2.2785,
 "_duration_is_derived": "total_bars x beats_per_bar x 60 / bpm -- not hand-declared",
 "target_duration_mmss": "4:52",
 "form_summary": "timeline(12) - A(20) - speech(20) - B(20) - break(12) - C(28) - displacement_return(12) - turnaround(4)",
 "section_count": 8,
 "loop_point_cadence": "weakened -- half cadence or a bVII substitution, never a perfect authentic cadence (KONDO PHRASE-05, the anti-fatigue law)",
 "stack_coverage": {
  "current_stack": "sfizz 1.2.3 + VSCO2-CE + VCSL (23 instruments, CC0; CPU render)",
  "renderable_today": false,
  "missing_classes": [
   "per-culture period instruments",
   "percussion"
  ],
  "sourcing_action": "Wave-two entry condition: extend the sfz stack with CC0 / public-domain percussion, choir and period sample sets, recorded in docs/licence_records/ with the same hash discipline as the landed stack. No sample from any set is ever a conditioning, fine-tune or LoRA input to any generator.",
  "honest_note": "The shipped cohort's 'one instrument set' is PARTLY a stack constraint: the landed 23 instruments contain no percussion, no choir, no trumpet, no tuba and no period instrument. A card that names them is naming what has to be acquired, not claiming it exists."
 },
 "order": 19
}

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