chore: benchmark results after guitar+piano+other change (t1a passes)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Lucas Winther
2026-10-30 21:00:31 +01:00
co-authored by Claude Opus 5.5
parent 0f14fbc574
commit c3e751b9e7
4 changed files with 3717 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+67
View File
@@ -0,0 +1,67 @@
# STSheets benchmark report: exp-gpo-2026-10-31
- Run id: exp-gpo-2026-10-31
- Date: 2026-10-30T19:46:32.213Z
- Machine: AMD Ryzen 9 9950X 16-Core Processor x16, linux x64, bun 1.3.14
- Models (sha256): htdemucs_6s.onnx 35cb61d4d35173ff1d16df7393f41f05651ffdfe13d3c10e06abc26708bd6933; nmp.onnx 2c3c1d144bfa61ad236e92e169c13535c880469a12a047d4e73451f2c059a0ec
- SoundFont: alphaTab bundled sonivox.sf2 (Apache-2.0)
- Modes: full (stems=false, tempo=false, notes=false)
> Caveats: vocals are rendered with a GM "Voice Oohs" patch, not real singing, so separation/transcription numbers for vocals are indicative only. Drums use a heuristic baseline transcriber. The SONiVOX guitar is partly routed to Demucs' piano stem (known synthetic-timbre gap). Pitch is pass/fail (song passes at merged-guitar pitch F1 >= 0.85); rhythm is secondary; fingering (string agreement) is informational. Cells are median (min–max).
## Tier t1a
| Mode | Songs | Guitar merged F1 | Guitar octave errors | Spurious rate | Part-split F1 (t1d) | Vocals F1 | Bass F1 | Drums kick F1 | Drums snare F1 | Drums hihat F1 | Keys F1 | Rhythm onBeat | Rhythm durationOk | Tempo factor | Beat offset | String agreement | GP-file guitar F1 | Bar count match | Time sig match | Techniques |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| full | 5 | 0.87 (0.64–0.93) ✓ 4/5 | 0.0 (0.0–0.0) | 0.19 (0.13–0.53) | n/a | n/a (424 spurious) | n/a (1260 spurious) | n/a (80 spurious) | n/a (70 spurious) | n/a (200 spurious) | n/a (1592 spurious) | 0.97 (0.52–1.00) | 0.92 (0.08–0.94) | 1.00 (1.00–1.00) | 0 (-3–0) | 0.85 (0.71–0.92) | 0.89 (0.71–0.92) | 0 (0–1) | 1 (1–1) | n/a (tier 1 has no technique marks) |
**Tier t1a: PASS** (median merged-guitar F1 0.87 in `full` mode, threshold 0.85)
## Tier t1b
| Mode | Songs | Guitar merged F1 | Guitar octave errors | Spurious rate | Part-split F1 (t1d) | Vocals F1 | Bass F1 | Drums kick F1 | Drums snare F1 | Drums hihat F1 | Keys F1 | Rhythm onBeat | Rhythm durationOk | Tempo factor | Beat offset | String agreement | GP-file guitar F1 | Bar count match | Time sig match | Techniques |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| full | 5 | 0.81 (0.72–0.93) ✗ 2/5 | 0.0 (0.0–2.0) | 0.22 (0.12–0.43) | n/a | n/a (371 spurious) | 0.37 (0.22–0.38) | 0.98 (0.95–1.00) | 0.49 (0.16–0.76) | 1.00 (0.99–1.00) | n/a (1774 spurious) | 0.99 (0.98–1.00) | 0.88 (0.75–0.96) | 1.00 (1.00–1.00) | 0 (0–0) | 0.95 (0.80–0.99) | 0.83 (0.75–0.94) | 0 (0–0) | 1 (1–1) | n/a (tier 1 has no technique marks) |
**Tier t1b: FAIL** (median merged-guitar F1 0.81 in `full` mode, threshold 0.85)
## Tier t1c
| Mode | Songs | Guitar merged F1 | Guitar octave errors | Spurious rate | Part-split F1 (t1d) | Vocals F1 | Bass F1 | Drums kick F1 | Drums snare F1 | Drums hihat F1 | Keys F1 | Rhythm onBeat | Rhythm durationOk | Tempo factor | Beat offset | String agreement | GP-file guitar F1 | Bar count match | Time sig match | Techniques |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| full | 5 | 0.73 (0.55–0.77) ✗ 0/5 | 1.0 (0.0–8.0) | 0.38 (0.35–0.60) | n/a | 0.21 (0.05–0.24) | 0.32 (0.18–0.43) | 1.00 (0.92–1.00) | 0.75 (0.37–0.92) | 0.99 (0.99–1.00) | 0.11 (0.06–0.18) | 0.96 (0.95–0.98) | 0.74 (0.59–0.80) | 1.00 (1.00–1.00) | 0 (-2–0) | 0.63 (0.27–0.89) | 0.75 (0.58–0.76) | 0 (0–1) | 1 (1–1) | n/a (tier 1 has no technique marks) |
**Tier t1c: FAIL** (median merged-guitar F1 0.73 in `full` mode, threshold 0.85)
## Tier t1d
| Mode | Songs | Guitar merged F1 | Guitar octave errors | Spurious rate | Part-split F1 (t1d) | Vocals F1 | Bass F1 | Drums kick F1 | Drums snare F1 | Drums hihat F1 | Keys F1 | Rhythm onBeat | Rhythm durationOk | Tempo factor | Beat offset | String agreement | GP-file guitar F1 | Bar count match | Time sig match | Techniques |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| full | 5 | 0.72 (0.68–0.76) ✗ 0/5 | 8.0 (0.0–12.0) | 0.28 (0.26–0.35) | 0.68 (0.59–0.70) | 0.29 (0.13–0.52) | 0.37 (0.34–0.45) | 1.00 (0.98–1.00) | 0.41 (0.07–0.58) | 0.99 (0.89–1.00) | 0.10 (0.07–0.15) | 0.93 (0.85–0.96) | 0.66 (0.48–0.78) | 1.00 (1.00–1.00) | 0 (0–0) | 0.78 (0.36–0.96) | 0.74 (0.72–0.78) | 0 (0–0) | 1 (1–1) | n/a (tier 1 has no technique marks) |
**Tier t1d: FAIL** (median merged-guitar F1 0.72 in `full` mode, threshold 0.85)
## Per-song appendix
| Tier | Seed | Mode | Guitar pass | Guitar merged F1 | Guitar octave errors | Spurious rate | Part-split F1 (t1d) | Vocals F1 | Bass F1 | Drums kick F1 | Drums snare F1 | Drums hihat F1 | Keys F1 | Rhythm onBeat | Rhythm durationOk | Tempo factor | Beat offset | String agreement | GP-file guitar F1 | Bar count match | Time sig match | Techniques | Seconds |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| t1a | 1 | full | ✓ | 0.87 | 0.0 | 0.19 | n/a | n/a (77 spurious) | n/a (320 spurious) | n/a (38 spurious) | n/a (2 spurious) | n/a (3 spurious) | n/a (349 spurious) | 1.00 | 0.93 | 1.00 | 0 | 0.88 | 0.85 | 0 | 1 | n/a (tier 1 has no technique marks) | 20.5 |
| t1a | 2 | full | ✗ | 0.64 | 0.0 | 0.53 | n/a | n/a (94 spurious) | n/a (125 spurious) | n/a | n/a (16 spurious) | n/a (84 spurious) | n/a (223 spurious) | 0.56 | 0.25 | 1.00 | -1 | 0.71 | 0.71 | 0 | 1 | n/a (tier 1 has no technique marks) | 21.7 |
| t1a | 3 | full | ✓ | 0.86 | 0.0 | 0.21 | n/a | n/a (96 spurious) | n/a (250 spurious) | n/a (42 spurious) | n/a (1 spurious) | n/a (15 spurious) | n/a (258 spurious) | 0.97 | 0.94 | 1.00 | 0 | 0.85 | 0.89 | 0 | 1 | n/a (tier 1 has no technique marks) | 13.1 |
| t1a | 4 | full | ✓ | 0.90 | 0.0 | 0.18 | n/a | n/a (77 spurious) | n/a (225 spurious) | n/a | n/a (19 spurious) | n/a (64 spurious) | n/a (309 spurious) | 1.00 | 0.92 | 1.00 | 0 | 0.84 | 0.92 | 0 | 1 | n/a (tier 1 has no technique marks) | 14.7 |
| t1a | 5 | full | ✓ | 0.93 | 0.0 | 0.13 | n/a | n/a (80 spurious) | n/a (340 spurious) | n/a | n/a (32 spurious) | n/a (34 spurious) | n/a (453 spurious) | 0.52 | 0.08 | 1.00 | -3 | 0.92 | 0.91 | 1 | 1 | n/a (tier 1 has no technique marks) | 11.9 |
| t1b | 1 | full | ✗ | 0.81 | 0.0 | 0.24 | n/a | n/a (91 spurious) | 0.23 | 0.95 | 0.25 | 1.00 | n/a (411 spurious) | 0.99 | 0.75 | 1.00 | 0 | 0.99 | 0.81 | 0 | 1 | n/a (tier 1 has no technique marks) | 26.3 |
| t1b | 2 | full | ✗ | 0.72 | 2.0 | 0.43 | n/a | n/a (77 spurious) | 0.38 | 1.00 | 0.54 | 0.99 | n/a (301 spurious) | 0.99 | 0.76 | 1.00 | 0 | 0.80 | 0.75 | 0 | 1 | n/a (tier 1 has no technique marks) | 18.3 |
| t1b | 3 | full | ✗ | 0.81 | 0.0 | 0.22 | n/a | n/a (80 spurious) | 0.22 | 0.96 | 0.16 | 1.00 | n/a (307 spurious) | 0.98 | 0.88 | 1.00 | 0 | 0.92 | 0.83 | 0 | 1 | n/a (tier 1 has no technique marks) | 14.4 |
| t1b | 4 | full | ✓ | 0.89 | 1.0 | 0.18 | n/a | n/a (60 spurious) | 0.37 | 0.98 | 0.76 | 1.00 | n/a (373 spurious) | 0.99 | 0.88 | 1.00 | 0 | 0.95 | 0.90 | 0 | 1 | n/a (tier 1 has no technique marks) | 22.1 |
| t1b | 5 | full | ✓ | 0.93 | 0.0 | 0.12 | n/a | n/a (63 spurious) | 0.38 | 1.00 | 0.49 | 1.00 | n/a (382 spurious) | 1.00 | 0.96 | 1.00 | 0 | 0.95 | 0.94 | 0 | 1 | n/a (tier 1 has no technique marks) | 25.8 |
| t1c | 1 | full | ✗ | 0.71 | 0.0 | 0.41 | n/a | 0.21 | 0.18 | 0.92 | 0.37 | 1.00 | 0.11 | 0.96 | 0.59 | 1.00 | -2 | 0.89 | 0.70 | 1 | 1 | n/a (tier 1 has no technique marks) | 28.4 |
| t1c | 2 | full | ✗ | 0.55 | 8.0 | 0.60 | n/a | 0.24 | 0.32 | 1.00 | 0.86 | 0.99 | 0.15 | 0.96 | 0.61 | 1.00 | 0 | 0.62 | 0.58 | 0 | 1 | n/a (tier 1 has no technique marks) | 25.9 |
| t1c | 3 | full | ✗ | 0.73 | 2.0 | 0.38 | n/a | 0.05 | 0.18 | 0.99 | 0.53 | 1.00 | 0.09 | 0.95 | 0.80 | 1.00 | 0 | 0.69 | 0.75 | 0 | 1 | n/a (tier 1 has no technique marks) | 20.1 |
| t1c | 4 | full | ✗ | 0.76 | 1.0 | 0.37 | n/a | 0.09 | 0.36 | 1.00 | 0.92 | 0.99 | 0.18 | 0.98 | 0.74 | 1.00 | 0 | 0.27 | 0.76 | 0 | 1 | n/a (tier 1 has no technique marks) | 32.7 |
| t1c | 5 | full | ✗ | 0.77 | 0.0 | 0.35 | n/a | 0.24 | 0.43 | 1.00 | 0.75 | 0.99 | 0.06 | 0.97 | 0.74 | 1.00 | 0 | 0.63 | 0.76 | 0 | 1 | n/a (tier 1 has no technique marks) | 19.8 |
| t1d | 1 | full | ✗ | 0.72 | 2.0 | 0.26 | 0.69 | 0.38 | 0.45 | 1.00 | 0.41 | 1.00 | 0.07 | 0.94 | 0.78 | 1.00 | 0 | 0.76 | 0.72 | 0 | 1 | n/a (tier 1 has no technique marks) | 27.7 |
| t1d | 2 | full | ✗ | 0.76 | 8.0 | 0.28 | 0.70 | 0.52 | 0.34 | 1.00 | 0.50 | 0.99 | 0.15 | 0.93 | 0.75 | 1.00 | 0 | 0.78 | 0.78 | 0 | 1 | n/a (tier 1 has no technique marks) | 27.8 |
| t1d | 3 | full | ✗ | 0.68 | 12.0 | 0.35 | 0.61 | 0.22 | 0.40 | 0.98 | 0.07 | 0.89 | 0.11 | 0.88 | 0.57 | 1.00 | 0 | 0.82 | 0.74 | 0 | 1 | n/a (tier 1 has no technique marks) | 25.0 |
| t1d | 4 | full | ✗ | 0.76 | 8.0 | 0.26 | 0.68 | 0.13 | 0.37 | 0.98 | 0.58 | 0.99 | 0.10 | 0.96 | 0.66 | 1.00 | 0 | 0.36 | 0.78 | 0 | 1 | n/a (tier 1 has no technique marks) | 17.5 |
| t1d | 5 | full | ✗ | 0.68 | 0.0 | 0.29 | 0.59 | 0.29 | 0.34 | 1.00 | 0.11 | 0.96 | 0.10 | 0.85 | 0.48 | 1.00 | 0 | 0.96 | 0.72 | 0 | 1 | n/a (tier 1 has no technique marks) | 15.3 |
+728
View File
@@ -0,0 +1,728 @@
[
{
"id": "lnoe",
"title": "Last Night on Earth (Green Day)",
"alignment": {
"source": "saved",
"manual": 0,
"auto": 1,
"savedAt": "2026-10-30T18:50:04.512Z",
"chosen": "baseline",
"baseline": {
"offsetSec": 0.03,
"precision": 0.9296187683284457,
"cosine": 0.7456730914857798
},
"dtwPrecision": 0.9237536656891495
},
"fit": {
"precision": 0.9296187683284457,
"lift": 0.5562072336265884,
"medianResidualMs": 1.6048588715733558,
"audibleRate": 0.4055299539170507,
"windows": [
{
"startSec": 0,
"recOnsets": 28,
"precision": 0.8928571428571429,
"lift": 0.4761904761904762,
"medianResidualMs": 1.455394808147048,
"audibleRate": 0.3359683794466403,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 30,
"recOnsets": 43,
"precision": 0.9302325581395349,
"lift": 0.6046511627906976,
"medianResidualMs": 1.1654104135097043,
"audibleRate": 0.3695150115473441,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 60,
"recOnsets": 48,
"precision": 0.9583333333333334,
"lift": 0.5069444444444444,
"medianResidualMs": 1.1717814137455207,
"audibleRate": 0.3784860557768924,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 90,
"recOnsets": 54,
"precision": 0.9074074074074074,
"lift": 0.5061728395061729,
"medianResidualMs": 1.803905423017227,
"audibleRate": 0.42736842105263156,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 120,
"recOnsets": 48,
"precision": 0.9166666666666666,
"lift": 0.5625,
"medianResidualMs": 1.4688324335949687,
"audibleRate": 0.41435185185185186,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 150,
"recOnsets": 55,
"precision": 1,
"lift": 0.6848484848484848,
"medianResidualMs": 1.8973122094507744,
"audibleRate": 0.4789356984478936,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 180,
"recOnsets": 57,
"precision": 0.9122807017543859,
"lift": 0.5438596491228069,
"medianResidualMs": 2.066004036294089,
"audibleRate": 0.43863636363636366,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 210,
"recOnsets": 8,
"precision": 0.75,
"lift": 0.375,
"medianResidualMs": 10.922815385200124,
"audibleRate": 0.11538461538461539,
"beatShift": null,
"flagged": false,
"reasons": []
}
],
"stretches": {
"total": 2,
"warned": 0,
"over15": 0
}
},
"perRole": {
"guitar": {
"tp": 1123,
"fp": 1392,
"fn": 1940,
"precision": 0.44652087475149105,
"recall": 0.366634018935684,
"f1": 0.40265328074578705,
"octaveErrors": 122
},
"vocals": {
"tp": 108,
"fp": 388,
"fn": 131,
"precision": 0.21774193548387097,
"recall": 0.45188284518828453,
"f1": 0.2938775510204082,
"octaveErrors": 0
},
"bass": {
"tp": 84,
"fp": 312,
"fn": 79,
"precision": 0.21212121212121213,
"recall": 0.5153374233128835,
"f1": 0.3005366726296959,
"octaveErrors": 1
},
"drums": {
"tp": 417,
"fp": 427,
"fn": 159,
"precision": 0.4940758293838863,
"recall": 0.7239583333333334,
"f1": 0.5873239436619718,
"octaveErrors": 16
},
"keys": {
"tp": 329,
"fp": 1553,
"fn": 853,
"precision": 0.17481402763018067,
"recall": 0.27834179357022,
"f1": 0.21475195822454307,
"octaveErrors": 94
}
},
"lenient": {
"guitar": 0.47615632843313016,
"vocals": 0.39183673469387753,
"bass": 0.35062611806797855,
"drums": 0.5985915492957746,
"keys": 0.25718015665796345
},
"drumsPerClass": {
"kick": {
"tp": 98,
"fp": 53,
"fn": 0,
"precision": 0.6490066225165563,
"recall": 1,
"f1": 0.7871485943775101,
"octaveErrors": 0
},
"snare": {
"tp": 90,
"fp": 211,
"fn": 8,
"precision": 0.29900332225913623,
"recall": 0.9183673469387755,
"f1": 0.45112781954887216,
"octaveErrors": 0
},
"hihat": {
"tp": 217,
"fp": 156,
"fn": 3,
"precision": 0.5817694369973191,
"recall": 0.9863636363636363,
"f1": 0.7318718381112985,
"octaveErrors": 0
},
"cymbal": {
"tp": 12,
"fp": 7,
"fn": 142,
"precision": 0.631578947368421,
"recall": 0.07792207792207792,
"f1": 0.13872832369942195,
"octaveErrors": 0
},
"tom": {
"tp": 0,
"fp": 0,
"fn": 6,
"precision": null,
"recall": 0,
"f1": 0,
"octaveErrors": 0
}
},
"excludedTracks": [],
"capo": {},
"seconds": 108.26291943300001
},
{
"id": "swimming",
"title": "Swimming (Lunar Vacation)",
"alignment": {
"source": "saved",
"manual": 0,
"auto": 24,
"savedAt": "2026-10-30T18:50:09.863Z",
"chosen": "dtw",
"baseline": {
"offsetSec": 0.23,
"precision": 0.6965944272445821,
"cosine": 0.6263260975223001
},
"dtwPrecision": 0.7956656346749226
},
"fit": {
"precision": 0.7956656346749226,
"lift": 0.14138286893704843,
"medianResidualMs": 15.842554880606485,
"audibleRate": 0.2524440582228981,
"windows": [
{
"startSec": 0,
"recOnsets": 20,
"precision": 0.9,
"lift": 0.5166666666666667,
"medianResidualMs": 7.930399045602776,
"audibleRate": 0.4263157894736842,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 30,
"recOnsets": 38,
"precision": 0.8421052631578947,
"lift": 0.4561403508771929,
"medianResidualMs": 8.935720572655015,
"audibleRate": 0.4797047970479705,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 60,
"recOnsets": 30,
"precision": 0.9666666666666667,
"lift": 0.5,
"medianResidualMs": 8.143065510864744,
"audibleRate": 0.361244019138756,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 90,
"recOnsets": 27,
"precision": 0.7777777777777778,
"lift": 0.39506172839506176,
"medianResidualMs": 15.735118333282117,
"audibleRate": 0.41919191919191917,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 120,
"recOnsets": 45,
"precision": 0.4666666666666667,
"lift": -0.2666666666666667,
"medianResidualMs": 2.775248941929931,
"audibleRate": 0.1555944055944056,
"beatShift": null,
"flagged": true,
"reasons": [
"precision 47%",
"lift -0.27"
]
},
{
"startSec": 150,
"recOnsets": 55,
"precision": 0.9454545454545454,
"lift": 0.16363636363636358,
"medianResidualMs": 24.587909988653678,
"audibleRate": 0.3125763125763126,
"beatShift": null,
"flagged": true,
"reasons": [
"lift 0.16"
]
},
{
"startSec": 180,
"recOnsets": 52,
"precision": 0.6923076923076923,
"lift": -0.11538461538461553,
"medianResidualMs": 33.98722951001787,
"audibleRate": 0.19047619047619047,
"beatShift": null,
"flagged": true,
"reasons": [
"lift -0.12"
]
},
{
"startSec": 210,
"recOnsets": 47,
"precision": 0.8297872340425532,
"lift": -1.1102230246251565e-16,
"medianResidualMs": 23.422793802808428,
"audibleRate": 0.21311475409836064,
"beatShift": null,
"flagged": true,
"reasons": [
"lift -0.00"
]
},
{
"startSec": 240,
"recOnsets": 9,
"precision": 1,
"lift": 0.14814814814814825,
"medianResidualMs": 1.804172777298163,
"audibleRate": 0.09375,
"beatShift": null,
"flagged": true,
"reasons": [
"lift 0.15"
]
},
{
"startSec": 270,
"recOnsets": 0,
"precision": null,
"lift": null,
"medianResidualMs": null,
"audibleRate": null,
"beatShift": null,
"flagged": false,
"reasons": []
}
],
"stretches": {
"total": 25,
"warned": 0,
"over15": 0
}
},
"perRole": {
"guitar": {
"tp": 1169,
"fp": 3386,
"fn": 3823,
"precision": 0.2566410537870472,
"recall": 0.2341746794871795,
"f1": 0.2448936838797528,
"octaveErrors": 250
},
"vocals": {
"tp": 35,
"fp": 571,
"fn": 166,
"precision": 0.057755775577557754,
"recall": 0.17412935323383086,
"f1": 0.08674101610904585,
"octaveErrors": 0
},
"bass": {
"tp": 185,
"fp": 716,
"fn": 345,
"precision": 0.20532741398446172,
"recall": 0.3490566037735849,
"f1": 0.2585604472396925,
"octaveErrors": 9
},
"drums": {
"tp": 392,
"fp": 1408,
"fn": 856,
"precision": 0.21777777777777776,
"recall": 0.3141025641025641,
"f1": 0.2572178477690289,
"octaveErrors": 142
},
"keys": {
"tp": 0,
"fp": 2032,
"fn": 0,
"precision": 0,
"recall": null,
"f1": 0,
"octaveErrors": 0
}
},
"lenient": {
"guitar": 0.3762438462344192,
"vocals": 0.12391573729863693,
"bass": 0.3535988819007687,
"drums": 0.3353018372703412,
"keys": 0
},
"drumsPerClass": {
"kick": {
"tp": 175,
"fp": 393,
"fn": 163,
"precision": 0.30809859154929575,
"recall": 0.5177514792899408,
"f1": 0.38631346578366443,
"octaveErrors": 0
},
"snare": {
"tp": 97,
"fp": 363,
"fn": 145,
"precision": 0.2108695652173913,
"recall": 0.40082644628099173,
"f1": 0.27635327635327633,
"octaveErrors": 0
},
"hihat": {
"tp": 0,
"fp": 465,
"fn": 0,
"precision": 0,
"recall": null,
"f1": 0,
"octaveErrors": 0
},
"cymbal": {
"tp": 120,
"fp": 187,
"fn": 510,
"precision": 0.39087947882736157,
"recall": 0.19047619047619047,
"f1": 0.256136606189968,
"octaveErrors": 0
},
"tom": {
"tp": 0,
"fp": 0,
"fn": 38,
"precision": null,
"recall": 0,
"f1": 0,
"octaveErrors": 0
}
},
"excludedTracks": [],
"capo": {},
"seconds": 155.53003568399998
},
{
"id": "holes",
"title": "Holes (Passenger)",
"alignment": {
"source": "saved",
"manual": 0,
"auto": 1,
"savedAt": "2026-10-30T18:50:13.626Z",
"chosen": "baseline",
"baseline": {
"offsetSec": -0.62,
"precision": 0.7642585551330798,
"cosine": 0.5150959661213577
},
"dtwPrecision": 0.7452471482889734
},
"fit": {
"precision": 0.7642585551330798,
"lift": 0.026615969581749055,
"medianResidualMs": 26.02722634637189,
"audibleRate": 0.2326544701415257,
"windows": [
{
"startSec": 0,
"recOnsets": 57,
"precision": 0.8596491228070176,
"lift": 0.04093567251462005,
"medianResidualMs": 29.71729302428372,
"audibleRate": 0.24890190336749635,
"beatShift": {
"label": "+1 beat",
"gain": 0.07068144786351394
},
"flagged": true,
"reasons": [
"lift 0.04",
"beat shift suspected: +1 beat"
]
},
{
"startSec": 30,
"recOnsets": 53,
"precision": 0.8867924528301887,
"lift": 0.07547169811320753,
"medianResidualMs": 22.94817039821595,
"audibleRate": 0.29635499207606975,
"beatShift": null,
"flagged": true,
"reasons": [
"lift 0.08"
]
},
{
"startSec": 60,
"recOnsets": 55,
"precision": 0.8727272727272727,
"lift": 0.07272727272727275,
"medianResidualMs": 20.39969875089298,
"audibleRate": 0.2913793103448276,
"beatShift": null,
"flagged": true,
"reasons": [
"lift 0.07"
]
},
{
"startSec": 90,
"recOnsets": 36,
"precision": 0.5833333333333334,
"lift": -0.08333333333333326,
"medianResidualMs": 26.357498430371606,
"audibleRate": 0.24187725631768953,
"beatShift": null,
"flagged": true,
"reasons": [
"precision 58%",
"lift -0.08"
]
},
{
"startSec": 120,
"recOnsets": 7,
"precision": null,
"lift": null,
"medianResidualMs": null,
"audibleRate": 0.05371900826446281,
"beatShift": null,
"flagged": false,
"reasons": []
},
{
"startSec": 150,
"recOnsets": 35,
"precision": 0.6571428571428571,
"lift": -0.10476190476190472,
"medianResidualMs": 26.66406226160234,
"audibleRate": 0.13317191283292978,
"beatShift": {
"label": "+1 bar",
"gain": 0.09281354253241003
},
"flagged": true,
"reasons": [
"lift -0.10",
"beat shift suspected: +1 bar"
]
},
{
"startSec": 180,
"recOnsets": 20,
"precision": 0.5,
"lift": 0.2,
"medianResidualMs": 35.25757102913474,
"audibleRate": 0.18309859154929578,
"beatShift": null,
"flagged": true,
"reasons": [
"precision 50%",
"lift 0.20"
]
},
{
"startSec": 210,
"recOnsets": 0,
"precision": null,
"lift": null,
"medianResidualMs": null,
"audibleRate": null,
"beatShift": null,
"flagged": false,
"reasons": []
}
],
"stretches": {
"total": 2,
"warned": 0,
"over15": 0
}
},
"perRole": {
"guitar": {
"tp": 481,
"fp": 2673,
"fn": 2183,
"precision": 0.15250475586556753,
"recall": 0.18055555555555555,
"f1": 0.16534891715366104,
"octaveErrors": 189
},
"vocals": {
"tp": 57,
"fp": 623,
"fn": 387,
"precision": 0.0838235294117647,
"recall": 0.12837837837837837,
"f1": 0.10142348754448399,
"octaveErrors": 1
},
"bass": {
"tp": 15,
"fp": 508,
"fn": 110,
"precision": 0.028680688336520075,
"recall": 0.12,
"f1": 0.046296296296296294,
"octaveErrors": 2
},
"drums": {
"tp": 192,
"fp": 1431,
"fn": 534,
"precision": 0.11829944547134935,
"recall": 0.2644628099173554,
"f1": 0.16347381864623245,
"octaveErrors": 29
},
"keys": {
"tp": 34,
"fp": 1057,
"fn": 520,
"precision": 0.031164069660861594,
"recall": 0.061371841155234655,
"f1": 0.04133738601823708,
"octaveErrors": 18
}
},
"lenient": {
"guitar": 0.2911653489171537,
"vocals": 0.15480427046263345,
"bass": 0.07407407407407407,
"drums": 0.2835249042145594,
"keys": 0.0729483282674772
},
"drumsPerClass": {
"kick": {
"tp": 21,
"fp": 223,
"fn": 99,
"precision": 0.0860655737704918,
"recall": 0.175,
"f1": 0.11538461538461539,
"octaveErrors": 0
},
"snare": {
"tp": 69,
"fp": 261,
"fn": 183,
"precision": 0.20909090909090908,
"recall": 0.27380952380952384,
"f1": 0.23711340206185566,
"octaveErrors": 0
},
"hihat": {
"tp": 101,
"fp": 603,
"fn": 194,
"precision": 0.1434659090909091,
"recall": 0.3423728813559322,
"f1": 0.2022022022022022,
"octaveErrors": 0
},
"cymbal": {
"tp": 1,
"fp": 344,
"fn": 5,
"precision": 0.002898550724637681,
"recall": 0.16666666666666666,
"f1": 0.005698005698005698,
"octaveErrors": 0
},
"tom": {
"tp": 0,
"fp": 0,
"fn": 1,
"precision": null,
"recall": 0,
"f1": 0,
"octaveErrors": 0
}
},
"excludedTracks": [
"Brass",
"Crowd"
],
"capo": {
"Acoustic Guitar ": 9
},
"seconds": 127.737292572
}
]
+78
View File
@@ -0,0 +1,78 @@
# STSheets real-song benchmark: gpo-2026-10-31
> Reference = the team's Guitar Pro-exported MIDI warped onto the recording by the saved alignment; scores are note-onset matches (pitch must equal; drums compared by class). The fit line reports the *consistency of the alignment*, not an independent validation of it: precision = share of the recording's onset-flux peaks with a warped MIDI onset within ±70 ms (flag < 60% per 30 s window), lift = precision minus its value with the MIDI shifted off-grid (flag < 0.25), a symbolic-chroma check for whole-beat/bar shifts, and "MIDI onsets audible as attacks" (information only; a full mix exposes far fewer attacks than the score has notes). A poor alignment lowers every score below. Capo is informational and not applied.
## Last Night on Earth (Green Day) (lnoe)
- Alignment: saved 2026-10-30T18:50:04.512Z (0 manual / 1 auto anchors)
- Method: chosen: baseline (DTW precision 92.4% not better by ≥ 2 points) · constant-offset baseline +0.03 s: precision 93.0%
- Consistency of the alignment: precision 93.0% (lift +0.56) · MIDI onsets audible as attacks 40.6% · median residual 1.6 ms · 0/8 windows flagged · stretches: 0/2 warned, 0 > 15%
- Capo: none listed
- Excluded tracks (no role): none
- Pipeline + scoring: 108.3 s
| Role | Ref notes | Est notes | P ±50 ms | R ±50 ms | F1 ±50 ms | F1 ±100 ms |
| --- | --- | --- | --- | --- | --- | --- |
| guitar | 3063 | 2515 | 0.45 | 0.37 | 0.40 | 0.48 |
| vocals | 239 | 496 | 0.22 | 0.45 | 0.29 | 0.39 |
| bass | 163 | 396 | 0.21 | 0.52 | 0.30 | 0.35 |
| drums | 576 | 844 | 0.49 | 0.72 | 0.59 | 0.60 |
| keys | 1182 | 1882 | 0.17 | 0.28 | 0.21 | 0.26 |
| Drum class | Ref | Est | F1 ±50 ms |
| --- | --- | --- | --- |
| kick | 98 | 151 | 0.79 |
| snare | 98 | 301 | 0.45 |
| hihat | 220 | 373 | 0.73 |
| cymbal | 154 | 19 | 0.14 |
| tom | 6 | 0 | 0.00 |
## Swimming (Lunar Vacation) (swimming)
- Alignment: saved 2026-10-30T18:50:09.863Z (0 manual / 24 auto anchors)
- Method: chosen: DTW (precision 79.6%) · constant-offset baseline +0.23 s: precision 69.7%
- Consistency of the alignment: precision 79.6% (lift +0.14) · MIDI onsets audible as attacks 25.2% · median residual 15.8 ms · 5/10 windows flagged (2:00 precision 47%, lift -0.27; 2:30 lift 0.16; 3:00 lift -0.12; 3:30 lift -0.00; 4:00 lift 0.15) · stretches: 0/25 warned, 0 > 15%
- Capo: none listed
- Excluded tracks (no role): none
- Pipeline + scoring: 155.5 s
| Role | Ref notes | Est notes | P ±50 ms | R ±50 ms | F1 ±50 ms | F1 ±100 ms |
| --- | --- | --- | --- | --- | --- | --- |
| guitar | 4992 | 4555 | 0.26 | 0.23 | 0.24 | 0.38 |
| vocals | 201 | 606 | 0.06 | 0.17 | 0.09 | 0.12 |
| bass | 530 | 901 | 0.21 | 0.35 | 0.26 | 0.35 |
| drums | 1248 | 1800 | 0.22 | 0.31 | 0.26 | 0.34 |
| keys | 0 | 2032 | 0.00 | n/a | 0.00 | 0.00 |
| Drum class | Ref | Est | F1 ±50 ms |
| --- | --- | --- | --- |
| kick | 338 | 568 | 0.39 |
| snare | 242 | 460 | 0.28 |
| hihat | 0 | 465 | 0.00 |
| cymbal | 630 | 307 | 0.26 |
| tom | 38 | 0 | 0.00 |
## Holes (Passenger) (holes)
- Alignment: saved 2026-10-30T18:50:13.626Z (0 manual / 1 auto anchors)
- Method: chosen: baseline (DTW precision 74.5% not better by ≥ 2 points) · constant-offset baseline −0.62 s: precision 76.4%
- Consistency of the alignment: precision 76.4% (lift +0.03) · MIDI onsets audible as attacks 23.3% · median residual 26.0 ms · 6/8 windows flagged (0:00 lift 0.04, beat shift suspected: +1 beat; 0:30 lift 0.08; 1:00 lift 0.07; 1:30 precision 58%, lift -0.08; 2:30 lift -0.10, beat shift suspected: +1 bar; 3:00 precision 50%, lift 0.20) · stretches: 0/2 warned, 0 > 15%
- Capo: Acoustic Guitar : 9
- Excluded tracks (no role): Brass, Crowd
- Pipeline + scoring: 127.7 s
| Role | Ref notes | Est notes | P ±50 ms | R ±50 ms | F1 ±50 ms | F1 ±100 ms |
| --- | --- | --- | --- | --- | --- | --- |
| guitar | 2664 | 3154 | 0.15 | 0.18 | 0.17 | 0.29 |
| vocals | 444 | 680 | 0.08 | 0.13 | 0.10 | 0.15 |
| bass | 125 | 523 | 0.03 | 0.12 | 0.05 | 0.07 |
| drums | 726 | 1623 | 0.12 | 0.26 | 0.16 | 0.28 |
| keys | 554 | 1091 | 0.03 | 0.06 | 0.04 | 0.07 |
| Drum class | Ref | Est | F1 ±50 ms |
| --- | --- | --- | --- |
| kick | 120 | 244 | 0.12 |
| snare | 252 | 330 | 0.24 |
| hihat | 295 | 704 | 0.20 |
| cymbal | 6 | 345 | 0.01 |
| tom | 1 | 0 | 0.00 |