This layer answers one question:
Do real works actually do what the textbook says?
The rules in this library are not copied; they areverified against 62 real multitracks after being copied. The verification results fall into three tiers,and only strong rules make it into the 20-item self-check list。
Which sections to read by task
| Task | Read |
|---|---|
| Want to know whether a rule is reliable | §4 Corroboration table + repository rule table |
| Want to add a new rule | §4.3 Process |
| A rule and the data conflict | ★ §5 |
| Want to find a real example | §6 |
| Want to annotate a piece | §3.3 |
| Want to know what this corpus can test | §2.2 |
Boundaries
| Not covered here | Where it belongs |
|---|---|
| The content of the rules themselves | L1/L2 individual skills |
| Acceptance of generated results | mc-ai-tell-audit |
| Checking after a spec is written | mc-workflow §3.0 |
| The vocabulary of a certain style | mc-style-*(L3) |
| Section-by-section breakdown of a specific piece | reference.md |
1. The Three Principles of the Corpus
1.1 ★ Store only structure and parameters, not works
Corpus entries contain no audio, no scores, no lyrics—only measured values.
This is both a copyright necessity and methodologically correct: what we want is the "parameter distribution of real works," not the works themselves.
1.2 ★ Natural sampling beats curation
The corpus is not hand-picked; it uses natural sampling.
Curation would bias the corpus toward the side where "the rules hold"— you pick the examples you consider good, and the examples you consider good are the ones that fit your existing theory.
Natural sampling supplies counterexamples automatically.
So in the end we use Cambridge-MT's 60+ natural samples, with no filtering. This also incidentally removes the need to find separate MIDI/stem corpora (their only original use was to calibrate stem tools, and real stems eliminate that need directly).
1.3 The unit of the corpus is the "reverse ARR-SPEC"
Not an audio file, but an ARR-SPEC inferred backward from the audio. This unit was chosen because it usesthe same set of fieldsas our output: structure, instrumentation entry and exit, and energy curves are all recorded in the same places, so the corroboration table can directly align corpus entries with rule criteria without a prior format conversion. For what the fields look like and which markers are honest blanks rather than omissions, see §2.1.
2. Reverse ARR-SPEC
2.1 What it looks like
Repository-measured corpus,63 entries. The nature of each entry is stated right in its header:
# 实测 ARR-SPEC(语料条目)—— 由 仓库的反推工具 自动生成
# ★ 只存结构与参数,不存谱面与歌词。intent / hooks 等 TODO 项需人工填。
★ Note those # TODO and # 估算,非实测 annotations—
they arehonest labeling, not unfinished work.
intent.one_thing Things likecannot be measured by machine, and forcing a value in would be fabrication.
2.2 ★ What this corpus can and cannot measure
Cambridge-MT is un-mixed raw multitracks, not a finished master. Therefore:
| Can measure | Cannot measure |
|---|---|
| Section boundaries, number of bars | DR / loudness(un-mixed) |
| Tempo | Stereo width(un-mixed) |
| Energy curve, subtraction events | Absolute value of spectral centroid(un-mixed + no mastering) |
| Instrumentation entries and exits (there are real stems!) | Production texture |
| Onset offset relative to the grid | |
| Chords (chroma matching) |
★ Rules that cannot be measured must be flagged, no forcing them to run.
rules.yaml Rules of this kind in evidence: unusable_hereare marked skip rather than give a fake number。
The corpus in this library consists of multitrack stems without a finished mix, so such rules currently have no numbers.
3. Ground truth and annotation
3.1 Why manual ground truth is needed
Section boundaries measured by the algorithmare themselves of questionable reliability(rules.yaml are marked no_truth).
Without an independent ground truth, there is no way to tell whether an anomalous hit rate means the rule does not hold or the algorithm itself measured wrong—
the case in §5.2 where "a hardcoded threshold crushed the hit rate to 16%" was only overturned thanks to manual ground truth.
So a batch of manual annotations was made as ground truth; the calibration results are in §3.2.
3.2 ★ A concern that was validated
The user worried, "I'm not an expert, my boundaries won't be accurate."The measured results refuted this concern:
Median deviation between manual annotation and algorithm = 0.0 seconds.
★ Conclusion:Section boundaries are a perceptual judgment, not a taste judgment. Boundaries marked by non-experts agree with the algorithm—this shows that this task never needed experts to begin with. (What can and cannot be annotated must be clearly distinguished: boundaries can be annotated, "whether this section sounds good" cannot.)
Calibration results: 7 manual annotations, algorithm hit 72%, median deviation 0.0 s。
3.3 How to annotate
The annotation tool and 7 annotation files are in the repository, not released with the package.
The 7 annotated tracks: AMContra_HeartPeripheral、APZX_CyberMower、DigitalHumans_Electrvm、 Forkupines_Semantics、MERCMusic_Knockout、MR1103_Flags、SimonLyn_Copper
4. ★ Evidence table: rule × corpus → hit rate → tier
4.1 Two honesty constraints
Violate them and the evidence table is self-deception:
| # | Constraint |
|---|---|
| 1 | ★ The criterion must not reuse the generator's definition. In the reverse ARR-SPEC, subtraction_events is auto-filled by the reverse-inference tool based on "drop >1 dB from the preceding section"; using it to verify "whether real arrangements have subtraction" iscircular reasoning. Therefore all criteria involving subtraction mustdirectly recompute from energy_curve , using a musically meaningful threshold (≥3 dB),andnot read the subtraction_events field |
| 2 | ★ Rules that cannot be measured by the corpus must be flagged, no forcing them to run(see §2.2) |
evidence the three values of:
| Value | Meaning |
|---|---|
ok |
Verifiable by this corpus |
unusable_here |
The nature of this corpus is wrong; a finished mix corpus is needed |
no_truth |
Lacks ground truth (such as section boundaries); the credibility of the criterion itself is questionable |
4.2 First-round results
| Rule | Hits | Tier |
|---|---|---|
| The energy curve must have a descent | 62/62 | Strong rule |
| The arrangement must have an instrument enter midway | 59/59 | Strong rule |
| At least one instrument exits early | 59/59 | Strong rule |
| Not all parts should be strictly aligned to the grid | 62/62 | Strong rule |
| The opening should not lay out all instruments at once | 54/59 | Strong rule |
| At least one obvious subtraction in the whole track | 36/62 = 70% | Tendency |
| There should be an energy fallback before the climax | Full set 22% / manual ground truth 5/7 | ★ Contradictory, treat only as a technique |
| The arrangement is densest at the climax | 25/59 = 42% | Suspended |
4.3 What the tiers determine
| Tier | How to write it in the skill | Goes into lint? |
|---|---|---|
| Strong rule | "Must" | ✅ Hard check |
| Tendency | "Usually should" | ❌, goes into the "must pass after writing" checklist |
| Technique | "Can be done this way" | ❌, appears only in the diagnostic path |
| Suspended | Not written into the skill | ❌, stays in the experiment log awaiting more data |
4.4 The process for adding a rule
- Write in the repository rule table: rule + runnable criterion +
evidence - Check whether it violates the two constraints in §4.1
- Use the repository's corroborate tool to run the criterion across corpora (maintainer step, not shipped with the package)
- Assign tiers by hit rate (§4.3)
- ★ Write the results into the repository experiment log, and only then modify the skill
The rule set is versioned. If the rule set is changed, it must be rerun, otherwise rounds before and after are not comparable.
5. ★ What to do when rules and data conflict
This is the most important section of this skill.
5.1 First ask: is the metric measuring what it is supposed to
Do not use metrics to overturn the textbook.
Example: "There should be an energy fallback before the climax" is only 22%across all 62 tracks, but among the 7 manually annotated ground-truth tracks it is 5/7。
Source of the gap: the algorithm usesenergy peakto locate the "climax", whilethe human ear does not. So that 22% figureis not measuring this rule, it is measuring "whether there is a fallback before the energy peak".
★ Conclusion: this rule is neither downgraded to a false rule nor upgraded to a strong rule—list it as a technique。
5.2 Another example: false low hit rate caused by hardcoded thresholds
The repository's corroboration tool oncehardcoded "12 dB dynamic range", which pushed the hit rate of rule ARR-R-012 down to 16%, and it was almost reported as "the textbook is wrong".
Falsification method: Test against 7 manually annotated ground-truth items → 5/7 = 71%。 Fix: Change to scoring on a normalized 0–10 scale,without pretending to be able to recover dB。
★ General lesson:When hit rate is abnormally low, suspect the criterion first, then the rule.
5.3 The corroboration table and lint are not asking the same question
| What it asks | |
|---|---|
| Corroboration table | Would humans generally do this |
| 20-item self-check | Would not doing this sound like AI |
★ So a 70% hit rate will not mechanically downgrade a lint check. Something may be done by only 70% of people, butthe 30% who don't do it happen to all sound like machines。
6. Find a real example
| You want | Where to go |
|---|---|
| A real use case of a certain technique | reference.md section-by-section breakdown |
| Which song a certain chord progression is used in | mc-progressions reference.md §7 Famous song index |
| Complete measured parameters of a piece | Repository measured corpus (63 items) |
| Manual ground truth for section boundaries | Repository annotated data (7 items) |
| Score examples for orchestration/mixed timbre | mc-orchestration reference.md §4 |
| Score examples for counterpoint | mc-counterpoint reference.md |
6.1 Format of the section-by-section breakdown
Four-way alignment: timecode / section / arrangement events / harmony. The format is consistent with the reverse ARR-SPEC, with manual supplementation of the parts machines cannot measure (intent, hooks, why).
7. Interfaces with other layers
| Direction | Content |
|---|---|
| → L1/L2 skills | Provide evidence-level annotations like "measured: 62/62, strong rule" |
| → 20-item self-check | Onlystrong rulescan enter the self-check table |
→ mc-ai-tell-audit |
Zero-point calibration (unrelated finished tracks score 63–66) was measured on this corpus |
| ← Repository reverse-engineering tools | Generator of corpus entries |
| ← Finished mix corpus(★ Missing) | §2.2 Those unusable_here rules need it |
8. Must pass after use
- When citing rulescarried an evidence level(strong rule/tendency/technique), not just saying "the textbook says"
- Newly added criteriadid not reuse the generator's definitions(§4.1 constraint 1)
- Rules that the corpus cannot testwere marked
unusable_here, without forcing out fake numbers - When hit rate is abnormally low,suspected the criterion first(§5.2)
- Did not take the corroboration table's hit ratemechanicallyto downgrade lint checks (§5.3)
- After changing the rule set,reran and recorded it in the repository experiment log
Appendix: Current status
Already have:
- Repository measured corpus — 63 itemsMeasured ARR-SPEC (Cambridge-MT)
- Repository rule table (rule set with version number)
- Repository annotation data — annotation tool + 7 itemsmanual ground truth
_corpus/multitracks/— 11 items (including_index.json、_parts.json)- Repository experiment records: metric calibration / tempo calibration / rule verification round 1
- Tempo calibration:56 ground-truth songs