File size: 2,618 Bytes
09e2da6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{
  "labels_version": "barscript_labels_v1",
  "dens_edges": [
    1,
    2,
    3,
    4,
    5,
    6,
    9
  ],
  "span_dur_edges": [
    0.9167,
    1.1192,
    1.3665,
    1.6685,
    2.0372,
    2.4874,
    3.037,
    3.7081,
    4.5275,
    5.5279,
    6.7495,
    8.2409,
    10.0619,
    12.2853,
    15.0
  ],
  "sync_edges": [
    1,
    2,
    3,
    4,
    5
  ],
  "motif_tau": 0.3,
  "motif_deltas": [
    1,
    2,
    4,
    8
  ],
  "provenance": {
    "frozen": true,
    "ruling_date": "2026-07-25",
    "revision": 2,
    "supersedes": {
      "artifact_md5": "7d5f3c2293d02200bc18b4aa05b12b80",
      "note": "rev 1 was frozen on the pre-normalization population (3,365 courses / 283,234 bars, dens_edges (1,2,3,4,5,7,9), span_dur hi edge 14.9167)"
    },
    "generator_revision": "b72da461",
    "dataset": "taiko-1000-parsed-clean (local parquet), split=train",
    "n_songs": 924,
    "n_courses": 3682,
    "n_bars": 311655,
    "span_dur_anchors_beats": {
      "p50": 2.9166666666666665,
      "p90": 6.916666666666667,
      "p99": 15.0
    },
    "span_normalization": {
      "note": "kusudama/roll inner span-start chars normalized (engine-ignored per BALLOON-arity evidence, 321/328); RollBig-family inner repeats (6-in-6, 6-in-5) stay fail-closed: unobserved in the corpus, no evidence no semantics",
      "charts_rescued": 317,
      "bars_rescued": 28421,
      "span_structure_fail_before_after": [
        328,
        3
      ],
      "off_lattice_fail_before_after": [
        66,
        74
      ]
    },
    "source_artifact": "logs/barscript_spec_train_normalized.json (md5 ddebdb9dd689bc8b65fe83c870aa7e80, built --tau 0.30)",
    "rulings": {
      "motif_tau": "0.30: REPEAT+VAR .6640 on the normalized population, conservative side of authored reuse .7073",
      "span_budget_cap": "3+ kept",
      "n_span_dur_buckets": "16 kept",
      "max_tgt": 960,
      "max_tgt_note": "960 covers ura max window 912 content tokens (unchanged by normalization) + BOS/condition prefix headroom; vocab.MAX_TGT update is a separate code change, not part of this artifact"
    },
    "generator_file_md5": {
      "src/softchart/barscript.py": "634e3dc3ddca8bcdceffd760e663e1b0",
      "src/softchart/vocab.py": "fda4d05ddcc7055c71e48e7949fe68c7",
      "scripts/build_barscript_spec.py": "0cba67bd3a1bf52cbdcc0c6221a39051"
    },
    "barscript_md5_update": "2026-07-25: 6c8ac0d2 -> 634e3dc3, fsm-mask-only fix (SPAN_START gated on a non-empty legal-position range; never-dead-end guarantee). Encode/label statistics unaffected: local smoke spec re-run is byte-identical."
  }
}