Collected 2026-08-17 · read-only census

Shiner · BELIEVEYOUME, Tab Workbench

Every Songsterr tab, Guitar Pro file, and stem folder for the ten songs, matched song by song, with the blockers named before any correction pass starts.

On this page
  1. Songs 9 and 10, and the audit is complete
  2. Plan: finishing every /goal requirement
  3. Phase 0 result: run, measured, closed
  4. Phase 1 result: The Mutiny, measured
  5. Vocal harmony: the direct answer
  6. Note content, every staff
  7. The fix plan, in order
  8. The verdict, in one table
  9. Songsterr registry (10 IDs, live-checked)
  10. Guitar Pro track census
  11. Stem census
  12. Live Songsterr versus the local export
  13. Four traps that will bite
  14. The correction queue
  15. Canonical paths
6Ready to correct now
2Ready with repairs first
2Blocked, no guitar stem
3Local .gp files now stale
16Shiner tabs live, 10 held locally
0Tabs with a second vocal staff
4/5Phase 0 items closed by measurement
3/4Phase 1 measures that lost to control

All ten songs have a Songsterr tab, a .gp file, and a stem folder. What separates them is whether the stems can actually prove the guitar part. Two songs were separated to four stems only, so the guitar is buried inside other and no per-attack guitar evidence exists for them.

ALL 10Songs 9 and 10, and the audit is complete

Asleep in the Trunk: 88.9% attack recall on a file that is almost empty

MeasureValueWhat it means
Attack recall88.9%, 16 of 18The highest recall on the record, from the emptiest file
Attack precision1.1%, 7 of 663The number that exposes it. The audio holds 663 onsets and the tab accounts for seven.
Map1 anchor, 8 tab attacksHealth gate FAILS: fewer than two anchors
Pitch separation-22.2, agreement 55.6% against a 77.8% controlInverted, on n=18
Length274.7 s at 173 bpm in 3/4 against a 278.9 s mixThe shell has the right bar count and tempo
This is the sharpest case on the whole board for never reading recall alone. A tab containing 173 notes across 264 bars scores 88.9% attack recall, higher than The Mutiny's 74.1% and higher than every real transcription measured. Precision at 1.1% is what catches it, and the map health gate refuses the map outright at one anchor. Three independent checks disagree with the flattering number, which is exactly the arrangement that makes the flattering number safe to have.

Jackie: the cleanest map on the record

StageResult
Length170.0 s at 144 bpm against a 173.0 s mix, 1.7% apart
Map66.3% alignment against a 14.5% control, gain +51.7, 20 anchors
Map healthPASS, and the best numbers measured: clamped 1.7%, max run 12, unique 0.984, span 98%
Attack recall68.9%, 717 of 1041, decoy 25.1%
Attack precision89.0%, 381 of 428
Timingmedian 70.0 ms, p90 176.3 ms, n=919
Pitch agreement62.8% against a 52.8% control, separation +10.0
Duration-0.015 against +0.014, no power
Classification0 supported, 5 unresolved, 88 unsupported

Jackie's map beats The Mutiny's on every health measure: 1.7% clamped against 6.0%, a max collapse run of 12 against 66, and 0.984 unique audio times per attack against 0.940. Its single guitar staff is genuine, and the notation carries zero playability faults.

All ten songs now carry both halves. Content gate, staff-role audit, full playability tier, beat map with health gate, attack recall and precision with a decoy, timing, pitch with its control, duration with its control, and per-bar discrepancy classification. Every one ran off the internal disk.

PLANFinishing every /goal requirement

The /goal condition asks for two things in order: audio accuracy against the stems reported as measured numbers, then physical playability. Below is every requirement in that condition, against what The Mutiny has been measured to hold.

/goal requirementStatusEvidence
Attack precision and recall against detected stem eventsDone88.0% and 74.1%, validated at 5.70x against a wrong stem
Pitch agreementDone53.4% against a 51.0% control, no power, reported with its control
Timing errorDonemedian 48.2 ms, p90 204.0 ms, n=2534
Duration and tie agreementNot implementedaudio_accuracy_audit.py documents it in its header and never codes it. Two mentions in the file, both in docstrings.
Channel ownership per noteDoneRefused at -0.0115 against a 0.05 threshold, refusal reported
DTW beat-to-seconds map, validatedDone5.75x, bar-length CV 2.22% over 126 of 135 bars, PASSES the health gate
Full playability tierDoneLead REVIEW, Rhythm one flag, refuted as a held-pedal false positive
Candidate artifact hashDonesource 21b37b73b6f35faa, rejected candidate c2c7710ee5488821
Preservation censusDone3260 in, 3260 out, zero lost, zero invented
Checkpoint ledger entryMissingNo ledger baseline exists for this song, so --assert-best has nothing to compare
Per-note discrepancy classificationMissingThe 795 unmatched attacks have a count and no itemisation

Phase 1. Close the three executable gaps, no new research needed

  1. Implement duration and tie agreement. written_attacks() already returns duration_beats per note, so the data is there and the comparison against decay-to-half-energy is missing. Ship it with a shifted-time control like every other measure, and report it refused if it loses.
  2. Itemise the 795 unmatched attacks. The earlier attempt saturated at 100% because it rebuilt the map with np.interp. The tool's own BM.apply_map(tab_t, rec_t, times) is the call that produces 74.1%, so extraction goes through that call and yields each miss with its staff and bar.
  3. Classify every miss as supported correction, unsupported change, or unresolved ambiguity, which is the wording that /goal uses. On present evidence most will fall under unresolved, since an onset detector misses attacks inside a held chord, and saying so per note is the requirement.
  4. Initialise the checkpoint ledger for The Mutiny with --init-checkpoint so any future candidate has a baseline to beat.

Phase 1 executed, all three gaps closed

Run 2026-08-17 through the audit's own BM.build, BM.apply_map, nearest and DECOY_S, so the numbers match what that tool reports rather than a reimplementation. New tool: miss_and_duration_audit.py.

Gap 1. Duration and tie agreement, now implemented

MeasurenCorrelationShifted-time controlSeparationVerdict
Written duration against decay-to-half-energy2219-0.060+0.021-0.081No discriminating power

The /goal line item is satisfied: the measure exists, ran, and is reported with its control. It joins the refused list rather than the usable one.

Gap 2. The 991 misses, itemised and classified

Classification, in the wording /goal usesBarsMeaning
Supported correction0Miss rate far above the song's own AND the decoy stays low there
Unresolved ambiguity9Miss rate high, and the decoy misses there too, so the detector explains it
Unsupported change122No evidence of a discrepancy at all

Song-wide the attack measure discriminates hard: 74.1% real against 11.1% for the decoy at +7.3 s, a 6.7x separation. Per bar it never isolates a discrepancy. The nine unresolved bars are 3, 20, 49, 117, 124, 125, 126, 129 and 130, and every one has a decoy miss rate of 75% to 100%, so the onset detector rather than the notation accounts for them.

Zero bars in The Mutiny carry evidence that the notation says something the recording does not. That is the accuracy side of /goal answered: every measure run against its own control, every discrepancy classified, and the classification returns no licensed correction.

Gap 3. Checkpoint ledger

Initialised for The Mutiny. CHECKPOINT.json and RECEIPTS.jsonl now sit beside the song, status best_validated_so_far, so any future candidate has a baseline to beat rather than a filename to argue from.

Correction: the first Mutiny miss numbers were wrong, and my own tool was the cause

AAA.nearest returns a DISTANCE, and 0.0 is falsy in Python, so the expression (nearest(t) or 9e9) <= WINDOW turned every EXACT match into a miss. The tell appeared on The Alligator, where the tool read 0.3% recall against audio_accuracy_audit.py's 40.9% on identical inputs. On The Mutiny the same bug read 67.7% against the reference tool's 74.1%, close enough that the first run was let through.

The MutinyPublished from the buggy runCorrected
Attack recall67.7%74.1%, matching the reference tool exactly
Misses991795
Supported correction00, unchanged
Unresolved ambiguity12 bars9 bars
Unsupported change119 bars122 bars

The conclusion for The Mutiny survives: zero supported corrections. The lesson is the process one. A derived metric has to be cross-checked against the reference tool's own number BEFORE any classification is built on it, and "close enough" is not a check.

Song 2 of 10: The Alligator, full pipeline

StageResult
Two guitars or one staff coveringMIXED, co-activity 97.7%, role flip 34.3. The second staff's chord share moves 34.3 points when the first falls silent, which is one staff covering for another. The Mutiny was clean TWO_PARTS.
Map42.0% against a 4.1% control, gain +37.9, 8 anchors
Map healthPASS, though marginally: clamped 10.6% against a 12% limit, max run 73 against 120, unique 0.895 against 0.85, span 90% against 85%
Attack recall40.9%, 893 of 2186, decoy 4.8%
Attack precision100.0%, 154 of 154 onsets accounted for, which is the saturation shape
Pitch agreement63.5% against a 39.6% control, separation +24.0, the first pitch measure this session that was not labelled no-power
Timingmedian 54.9 ms, p90 236.4 ms
Duration+0.249 against a +0.273 control, separation -0.024, no power
PlayabilityPASS on both staves, zero faults of any kind

The Alligator tab stops 44 seconds before the song does

86 bars at 120 bpm is 172.0 s. The stem runs 216.1 s. The GPIF holds zero repeat markers and zero alternate endings, and the map runs close to one-to-one, with tab 154.00 s falling at recording 153.77 s, so the tempo is right. About 44 seconds of the song, roughly 22 bars, is not transcribed at all. No audio metric was needed to find this and none of them would have.

ClassificationBarsWhich
Supported correction2bar 21 (11 attacks, miss 100%, decoy 81.8%) and bar 54 (38 attacks, miss 100%, decoy 81.6%)
Unresolved ambiguity4bars 18, 42, 44, 57
Unsupported change80no evidence of a discrepancy
Both supported bars are marginal and should be treated as listening candidates. The stem yields 154 onsets across 216 s, which is 0.71 per second, so a bar reading 100% miss carries less weight than the same reading on The Mutiny's 718-onset channel. Both clear the decoy test by a margin of about 18 points against a 15-point threshold. They are the first two bars this session to reach the bar at all, and the honest label is candidate for listening.

Song 3 of 10: So Far So, blocked at the map stage

Stem triedOnsetsAlignmentGainAnchorsClampedMax runSpanHealth
Rhythm Guitars8316.6%+14.1338.1%30262%FAIL x4
Solo Guitars8524.0%+21.0426.8%17573%FAIL x4
Other Guitar13275.4%+72.1273.9%70426%FAIL x4
The highest alignment gain of the whole session came from the most degenerate map, and the health gate caught it. Other Guitar scores 75.4% alignment and +72.1 gain, beating The Mutiny's best, on two anchors. Those two anchors clamp 73.9% of the tab and collapse 704 consecutive attacks onto one audio time. beat_map.py ACCEPTED it, since it judges gain against a random control and nothing else. Without the health gate this would have become So Far So's headline number.

All three stems fail on all four criteria, so no per-note audio metric is interpretable for So Far So. The cause is onset yield: 83 to 132 onsets across 259 seconds is 0.32 to 0.51 per second, against The Mutiny's 2.86. Song-level alignment and attack recall stay reportable; nothing per-note does.

StageResult
Tab length against the song258.5 s written against a 259.7 s stem, 0.4% apart. Complete, unlike The Alligator.
Two guitars or one coveringMIXED, co-activity 66.7% over 64 of 96 bars, role flip 39.6, the worst of the three songs so far. Genuine two-guitar runs at bars 26-30, 45-50, 55-70, 96-100 and 103-134.
PlayabilityFAIL, one IMPOSSIBLE_SPAN per staff

Both playability faults involve ties, the same shape that turned out to be a held pedal on The Mutiny:

IMPOSSIBLE_SPAN bar 66.0 Lead Guitar. Written s2f9 s3f7 s4f3~, span 6, tie on s4, sounding [57, 60, 60]. Alternative offered at span 5.
IMPOSSIBLE_SPAN bar 106.0 Rhythm Guitar. Written s0f4 s1f2 s2f9~ s3f4 s4f3 s5f2, span 7, tie on s2, sounding [40, 45, 57, 57, 60, 64]. The offered alternative is ALSO span 7, so the tool admits no narrower voicing exists.

The Lead staff also carries the same TUNING_EVIDENCE review as The Mutiny: string 0 detuned by 2 with its open pitch never used in that staff.

Song 4 of 10: My Mirror Hates Me, the cleanest so far

StageResult
Tab length against the song282.1 s written against a 286.9 s stem, 1.7% apart
Two guitars or one coveringTWO_PARTS, co-activity 94.0% over 125 of 133 bars, role flip 8.3, genuine two-guitar runs across bars 9 to 133
Map health, all three stemsAll three PASS, the first song where every guitar stem yields a usable map
Attack recall66.3%, 949 of 1432, decoy 10.2%, a 6.5x separation
Pitch agreement55.8% against a 52.2% control, +3.6, no power
Duration+0.012 against a -0.039 control, +0.051, no power
PlayabilityPASS on both staves, zero faults of any kind
Classification1 supported correction (bar 81), 7 unresolved, 111 unsupported
StemOnsetsAlignmentGainAnchorsClampedMax runHealth
Rhythm Guitars45664.4%+52.8185.3%57PASS
Other Guitar36750.4%+43.2149.1%98PASS
Solo Guitars32145.8%+40.2127.6%82PASS
The one supported bar is too thin to act on. Bar 81 carries 4 attacks, miss 75%, decoy 50%. Three of four attacks missing on a 4-attack bar, with the decoy only 25 points below, is inside what an onset detector does by chance. It clears the threshold arithmetically and carries no weight musically.

Four songs profiled, side by side

SongLength matchStaff rolesMap healthAttack recallPlayabilitySupported bars
The MutinygoodTWO_PARTS, flip 7.0PASS74.1%clean once the flag was refuted0
My Mirror Hates Me1.7% apartTWO_PARTS, flip 8.3PASS on all 3 stems66.3%PASS, zero faults1, too thin to act on
The Alligator44 s untranscribedMIXED, flip 34.3PASS, marginal40.9%PASS, zero faults2, marginal
So Far So0.4% apartMIXED, flip 39.6FAIL, all 3 stemsn/aFAIL x2, both tie-relatednot measurable
A pattern is forming across four songs. The two songs whose staves read TWO_PARTS also carry healthy maps and high attack recall. The two that read MIXED are the two with structural problems: The Alligator is missing 44 seconds of music, and So Far So cannot produce a usable map from any of its three stems. Role flip and map health are tracking together, which is worth testing on the remaining six rather than assuming.

Song 5 of 10: Endless Summer, and the session's first successful correction

Correction to my own reading first. I recorded the tab as 83 seconds longer than the song, 329.1 s against 246.4 s. That was my error: Endless Summer is in 3/4, with 179 of its 192 bars in 3/4, nine in 4/4 and four in 2/4, totalling 581 quarter-beats. At 140 bpm that is 249.0 s against a 246.4 s song, a 1% match. The tab is complete. I had assumed 4/4 and multiplied 192 by 4.

I then suspected the tooling mishandled the meter, since ASE.events derives each bar's length from its notes and defaults to 4.0 for an empty bar rather than reading the time signature. Measured, that hypothesis is refuted: drift is -0.4 s across 248 s on Endless Summer and 0.0 s on The Mutiny, because filled bars derive their span correctly.

StageResult
Meter3/4 dominant, 179 of 192 bars, 581 quarter-beats
Tab length249.0 s at 140 bpm against a 246.4 s song and mix, 1% apart
Two guitars or one coveringTWO_PARTS, co-activity 56.8%, role flip 9.2
Map healthBoth stems PASS. lead 18 anchors, 4.2% clamped, max run 29. rhythm 13 anchors, 5.1% clamped.
Playability, sourceLead PASS. Rhythm FAIL, IMPOSSIBLE_SPAN x20

The two shapes, and why they were safe to repair

ShapeSpanAlternativeNew spanPitchesTiesInstances
s0f6 s1f3 s2f6 s3f85s0f6 s1f3 s2f6 s4f43[42,46,54,61] both waysnone12
s2f10 s3f12 s4f155s1f15 s2f17 s4f152[58,65,72] both waysnone8

Every one of the 20 records carries ties: [], so the tie-chain trap that regressed The Mutiny candidate does not apply. Both alternatives were verified pitch-identical before any edit.

The first attempt regressed 20 faults into 533, and it exposed the cause of BOTH earlier failures

Editing the notes in place changed 3 notes and the position gate reported 274 notes moved, 10% of the staff. Faults went from 20 to IMPOSSIBLE_SPAN x177 plus SAME_STRING x178 plus TIE_COLLISION x178.

GPIF keeps every <Note> in one shared pool and each <Beat> references notes by id, and the same id is reused by many beats. So an in-place edit does not repair one beat, it rewrites every beat referencing that note. That is also why The Mutiny's single-note edit moved three playback positions and turned 1 fault into 5.

AttemptNotes editedNotes movedFaults beforeFaults after
The Mutiny, in place13 positions15
Endless Summer, in place327420533
Endless Summer, cloned0 edited, 9 cloned0200

The fix is to deepcopy the notes a flagged beat needs changed into fresh ids, apply the refret to the clones, and repoint only that beat. Beat shapes also have to be snapshotted BEFORE editing, since an earlier edit changes what a later beat looks like: the in-place run found 1 beat per shape where the cloned run found 3.

The validated candidate

GateResult
Tier 1, pitch preservationPASS, 3917 in and 3917 out, zero lost, zero invented, 27 distinct pitches both ways
Tier 1b, positionPASS, zero notes moved outside the repaired beats
PlayabilityPASS on both staves, IMPOSSIBLE_SPAN 20 to 0
Checkpoint comparisonKEEP THE CHECKPOINT. Hard total falls 20 to 0, and hand skip rises 0.0% to 1.8%. The gate holds the candidate as a draft and asks for that trade to be licensed with evidence rather than assumed.
Hashessource a54bbb8f582aad48, candidate 1bf5b965e04ff740
The candidate is validated and deliberately not promoted. Removing 20 impossible spans at the price of 1.8% hand skip is a judgment about how this record should read, so it stays a draft with the checkpoint standing. The promotion command, once that trade is accepted, is --license-skip-regression with the evidence, which the gate records in the receipt.

Song 6 of 10: Not Too Much, 15 spans down to 1

StageResult
Meter and length122 bars all 4/4, 488 quarter-beats, 344.5 s at 85 bpm against a 348.1 s stem
Two guitars or one coveringTWO_PARTS, co-activity 69.2%, role flip 2.3, the cleanest of all six songs
Playability, sourceLead REVIEW, hand skip 59% in the uncorrected band. Rhythm FAIL, IMPOSSIBLE_SPAN x15

The health gate caught a high-gain degenerate map for the third time

StemOnsetsAlignmentGainAnchorsClampedMax runHealth
Rhythm Guitars6052.7%+51.5358.3%568FAIL x4
Solo Guitars43734.3%+27.11822.8%222FAIL x4
Other Guitar42738.1%+30.3205.7%55PASS

The Rhythm stem scores the highest gain of the three on 3 anchors and 60 onsets, clamping 58.3% of the tab and collapsing 568 consecutive attacks onto one audio time. The stem that actually carries the tab is Other Guitar, which scores lower and is the only one that is interpretable.

14 of the 15 spans were repairable, and 1 was not

ShapeSpanAlternativeNew spanTiesInstancesAction
s0f2 s1f5 s2f7 s3f75s0f2 s2f0 s3f2 s4f31none12repaired
s0f1 s1f5 s2f7 s3f76s0f1 s2f0 s3f2 s4f32none2repaired
s1f8~ s2f8~ s3f7~ s4f3 s5f17s0f13 s1f13 s2f12 s3f7 s4f67s1, s2, s31left as written

The two repaired shapes share the same three pitch-identical moves in D Standard: s1f5 to s2f0, s2f7 to s3f2, s3f7 to s4f3. The third shape holds ties on three strings and its own suggested alternative is also span 7, which is the held-chord pattern that proved to be correct notation on The Mutiny, so it was left alone. The repair script skipped those two beats by itself and said so.

Both candidates, with receipts

Candidaterun_idArtifactGateCheckpointHard faultsPreservationPositionDeclared
endless-summer-refret-cloned.gp9108ce5b89c369e41bf5b965e04ff740553ab252e1d1cd72a54bbb8f582aad4820 to 0PASSPASSTrue
not-too-much-refret-cloned.gpd27623407f403a4315911652a98631e2553ab252e1d1cd72e0a024dbc002373015 to 1PASSPASSTrue
Neither is promoted, and both are held for the same reason. Endless Summer trades 0.0% to 1.8% hand skip for 20 spans removed. Not Too Much trades 7.7% to 9.1% for 14 removed. The gate withholds promotion on both and asks for that trade to be licensed with evidence rather than assumed, which is a judgment about how the record should read.

Song 7 of 10: Lazarus, blocked on both maps, with forced octave leaps

The Phase 0 re-pull could not be completed as a .gp: Songsterr serves notation as JSON per track and offers no .gp export over plain HTTP, and the only other Lazarus file on disk, _gp_extract_Shiner-Lazarus-05-04-2026.gp, holds the identical 138 bars and identical three tracks. So the audit ran on the local file, and the live s5476396 with its vocal and drum staves remains the better source that nothing local can yet supply.

StageResult
Meter and length138 bars all 4/4, 552 quarter-beats, 283.1 s at 117 bpm against a 281.0 s stem, 0.7% apart
TempoThe GPIF says 117. The stem folder is named "180bpm", which is wrong, so folder names stay unreliable.
StavesThree only. Rhythm 100% occupancy, Lead 50.7%, Bass 95.7%. No vocal staff, no drum staff.
Two guitars or one coveringTWO_PARTS, co-activity 50.7%
PlayabilityRhythm PASS, 1392 notes, zero faults. Lead REVIEW, SHIFT x68, severe JUMP x12, TUNING_EVIDENCE

Both maps fail, so no audio verification is possible

StemOnsetsAlignmentAnchorsClampedMax runHealth
rhythm138.7%1n/an/aFAIL, fewer than two anchors
lead13422.8%618.3%202FAIL x4

Thirteen onsets across 281 seconds is 0.05 per second. Lazarus joins So Far So as a song where no stem yields an interpretable map.

The octave leaps are forced by the fretboard

136 SHIFT and JUMP records concentrate on one string: s5 carries 210 of them, s4 carries 60, s2 carries 2. The shape is the same throughout, an octave leap on a single string:

SHIFT bar 16.812 s5f8 sounding [70] hand moves 12.0 frets in 128 ms
JUMP bar 16.938 s5f20 sounding [82] 12.0 frets in 256 ms, 47 frets/sec
JUMP bar 17.062 s5f20 sounding [82] 12.0 frets in 128 ms, 94 frets/sec

Pitch 82 has exactly one placement on a Drop C guitar, s5f20. Pitch 70 has four: s2f22, s3f17, s4f13, s5f8. So the high note cannot move, and the only refret available is to raise the low note to s4f13, which shortens the leap from 12 frets to 7. The gate flags a 7-fret move in 128 ms as a JUMP too, at 55 frets/sec, so that repair trades one flag for another.

Nothing was changed on Lazarus, and the reason is the pipeline's own ordering rule. Audio accuracy comes before any fretboard choice. Both maps fail the health gate, so there is no way to check whether pitch 70 and pitch 82 are even the right notes. Refingering a passage whose pitches cannot be verified would be optimising notation against nothing. The Lead staff is also 50.7% occupancy with 472 of its 718 notes tied, the thin-lead signature already flagged on the live tab in Phase 0.

Correction: the drive being absent blocks LESS than I said

I reported the work as blocked on the missing T7 Shield volume. That was too broad. A complete copy of all ten .gp files sits on the internal disk at ~/Desktop/Brandon-Vault/New Folder With Items 2/New Folder With Items 7/IF YOU CAN'T FIND SOMETHING ITS HERE/BandBooks/BELIEVEYOUME/_canonical_2026-06-04/songs/. What is genuinely missing is the STEMS, which exist nowhere on the internal disk apart from a drum-only extract.

WorkNeedsRunnable without the drive
Content gate, staff roles, playabilitythe .gp onlyYES
Beat map, audio accuracy, mir_evalstemsno

Song 8 of 10: Broken Satellites, the notation half

StageResult
Content171 bars, 9071 notes, 53.0 per bar, PASS
Two guitars or one coveringTWO_PARTS, co-activity 60.9%, role flip 0.0, the cleanest of all eight measured
StructureFAIL, TRACKCOUNT: 3 guitar staves against a gate of 2
Lead GuitarREVIEW, TUNING_EVIDENCE, plus a JUMP at bar 41 of 17 frets in 259 ms, 66 frets per second
Rhythm GuitarPASS, zero faults, and its Copy scores identically
Vocals335 notes, 67 stacked beats, max stack 2, the most vocal harmony written on the record
The duplicate staves are exact, and the fix is the re-pull rather than a repair. Rhythm Guitar Copy holds 2671 notes at 98.8% occupancy, identical to Rhythm Guitar. Copy holds 530 at 96.5%, identical to the bass. Phase 0 already established that the live s5084035 returns five clean tracks with no duplicates and with Lead 924, Rhythm 2671 and Vocals 335 matching ours exactly. So the structural fail is an artifact of the local file, and the correct action is to take the live tab rather than to edit ours.

Songs 9 and 10: Asleep in the Trunk and Jackie, notation half

SongContent gateStaff rolesPlayabilityVocals
Asleep in the TrunkFAIL, EMPTY SHELL. 264 bars, 173 notes, 0.66 per bar. Lead Guitar holds ZERO notes. Rhythm plays 12 of 264 bars.n/a on a shellLead REVIEW on zero notes. Rhythm REVIEW, hand skip 57%.14 notes over 264 bars, monophonic
JackiePASS, 102 bars, 3013 notes, 29.5 per barSINGLE_STAFF, one guitar onlyRhythm Guitar PASS, zero faults139 notes, 39.2% occupancy, monophonic

Asleep confirms on the local copy exactly what Phase 0 found against the live tab: our file is a shell while s5085156 holds 7245 notes. Jackie's single guitar staff is genuine rather than a local defect, since the live tab also returns one.

The notation half is now complete for all ten songs. Content gate, staff-role audit and the full playability tier have run on every one. What remains for the three unfinished songs is the AUDIO half only, which needs the stems.

The field-standard metric, finally run, and it is weak

mir_eval.transcription note-level F-measure is the MIREX standard and the one thing this pipeline had never executed. It pairs onset AND pitch into a single matched-note decision, which is neither of the questions the earlier measures asked. It has now been run. It needed no drive: the tabs, the full-mix mp3s and per-instrument YIN transcriptions of the stems are all on the internal disk.

The first run said 28.8x and I did not publish it, because the control was almost empty. so_far_so_rhythm_guitar_PYIN.mid holds 105 notes across 189.6 s against the Mutiny reference's 7639 across 248.4 s. A ratio against that measures the file's emptiness rather than a mismatch. Re-run against three density-matched controls, the number collapses.
PairingReference notesF at 50 msF at 250 msRatio, 50 ms
CORRECT, the_mutiny rhythm YIN7639 over 248.4 s0.0460.112reference
WRONG, endless_summer rhythm YIN8381 over 245.2 s0.0360.0971.28
WRONG, my_mirror rhythm YIN8225 over 283.5 s0.0210.0522.14
WRONG, so_far_so rhythm YIN3537 over 248.7 s0.0230.0542.00

Worst-case discrimination is 1.28x at 50 ms and 1.16x at 250 ms, both under the 1.5 bar. Endless Summer is the closest control on both note count and duration, and it is the one the metric struggles hardest to separate. Attack recall remains the leader at 5.70x.

This is not a clean verdict on mir_eval, and saying otherwise would overclaim. The reference is a YIN transcription, and YIN is MONOPHONIC. On a chordal rhythm guitar it captures one pitch per instant, which is why absolute F sits at 0.046. The metric is being handicapped by the reference rather than judged on its own terms. The fair test needs a POLYPHONIC reference.
The clean test is one install away. basic_pitch is present in ~/venvs/audio_midi_311 and crashes with SIGFPE, exit 136, because neither tensorflow nor tflite-runtime is installed there; it warns about both on import. pip install 'basic-pitch[tf]' into that venv should fix it, and then mir_eval can be re-run against a polyphonic reference on the same tabs and the same local audio. That is a package install rather than research, and it is the highest-value next action on the whole board.

mir_eval with a POLYPHONIC reference: it works, and no install was needed

The monophonic YIN run gave a weak 1.28x and was not a fair test of the metric. The fair test needs a polyphonic reference, and basic_pitch crashed with SIGFPE on this box. The fix turned out to be free. Its default model is nmp.mlpackage, CoreML, which is what crashes. nmp.onnx ships in the same directory and onnxruntime 1.23.2 is already installed, so selecting the ONNX backend fixed it. No tensorflow, no tflite-runtime, no download.

Pairing, reference is basic_pitch on the full mixRef notesPRF at 50 msF at 250 msRatio, 50 ms
CORRECT the_mutiny.mp314440.0600.1000.0750.205reference
WRONG endless_summer.mp318600.0360.0470.0410.1011.83
WRONG so_far_so.mp312310.0090.0170.0120.0466.48
WRONG my_mirror_hates_me.mp316420.0040.0060.0050.01115.14
Worst-case 1.83x at 50 ms and 2.04x at 250 ms. Both clear the 1.5 bar, so mir_eval is USABLE. All four references are full mixes, so note density is comparable by construction, 1231 to 1860 against the correct pairing's 1444. That removes the density confound that faked the earlier 28.8x. Endless Summer is again the hardest control to separate, as it was under the YIN reference.
MeasureWorst-case discriminationVerdict
Attack recall, through a health-gated map5.70xthe leader
Map alignment5.75xvalid, song level only
mir_eval note F, polyphonic reference2.04x at 250 msUSABLE, the second validated discriminator
mir_eval note F, monophonic YIN reference1.28xweak, the reference was the handicap
Everything else measured this sessionunder 1.5x or invertedunusable
Absolute F is still low, and the reason is the audio rather than the tab. 0.075 at 50 ms means the reference is the FULL MIX, so basic_pitch is transcribing bass, drums and vocals alongside the guitar while the estimate is one guitar staff. The isolated guitar stem would raise it, and that is the one thing still wanting the T7 Shield drive. The DISCRIMINATION is what matters here, and it holds without the stem.

Broken Satellites, audio half, and it needed no drive either

The local full-mix mp3s cover all ten songs, so the audio pipeline runs on them exactly as it ran on The Mutiny. The isolated stem would be better and is not required.

StageResult
Length353.8 s at 116 bpm against a 362.7 s mix, 2.5% apart
Map35.1% alignment against a 5.1% control, gain +30.0, 16 anchors
Map healthPASS, clamped 8.3%, max run 114, unique 0.917, span 92%
Attack recall32.9%, 1855 of 5645, decoy 5.3%, a 6.2x separation
Attack precision89.6%, 311 of 347 onsets accounted for
Timingmedian 125.4 ms, p90 176.3 ms, n=2340
Pitch agreement53.2% against a 44.8% control, separation +8.4, not labelled no-power
Duration-0.079 against a -0.006 control, no power
Classification2 supported (bars 4 and 28), 0 unresolved, 146 unsupported
The 5645 written attacks are inflated by the duplicate staves. This file carries Rhythm Guitar Copy and Copy, so roughly a third of those attacks are counted twice. Attack recall is depressed accordingly, and the honest reading is that 32.9% is a floor. The re-pull of s5084035, which has five clean tracks, would raise it.

Both supported bars carry 40 and 90 attacks with 100% miss against decoys at 80.0% and 83.3%, so they clear the threshold by a wider margin than The Alligator's did. They are listening candidates rather than proven defects, and the duplicate-staff inflation applies to them too.

Eight of ten songs now carry both halves. Only Asleep in the Trunk and Jackie remain, and their local mp3s exist, so they are runnable the same way. Asleep's tab is the 173-note shell, so its audio numbers will describe the shell rather than the song until the re-pull happens.

Phase 2. The decision that is not mine to make

After Phase 1, /goal on The Mutiny reduces to one question. Nine measures were tested with controls on both sides and only attack recall survived, so today a corrected file cannot be justified note by note. Three ways forward:

Phase 3. The other nine songs, with the real cost

What Phase 1 changes about the answer. Phase 1 closes the three /goal line items that are missing for implementation reasons rather than research reasons, so the remaining gap is exactly one thing stated precisely, instead of a mix of unfinished work and genuine unknowns. Per-note correction stays blocked either way.

00Phase 0 result: run, measured, closed

Executed 2026-08-17. Live notation pulled per track off the Songsterr CDN route st_gpdiff.py uses, then counted bar by bar. Four of the five Phase 0 items are now settled by measurement rather than by inference.

A measurement bug was caught and fixed before any of this was reported. Songsterr encodes a rest as {"notes":[{"rest":true}]}, so the first counting pass scored rests as notes and returned 100% occupancy on every track. Every number below excludes rests. The occupancy column now separates a part that plays throughout from one that enters rarely.
SongLive revLive notesLocal notesVerdictWhat the measurement settled
Asleep in the Trunk77983097245173Re-pull The source was always fine. Our copy was the defect. 42 times the content. Vocals go from 14 notes to 311, with 15 stacked beats.
Lazarus783444586723319Re-pull The new tab carries the vocal and drum staves the local file lacks, 228 and 2040 notes. It runs 207 bars against the local 138.
Jackie783459930143013No action Correction. The local copy is current. Track for track the counts match, vocals 139 against 139. The revision date moved and the content did not.
Broken Satellites664800058709071Use live The Copy tracks exist only in our file. Songsterr holds five tracks with no duplicates. Lead 924, Rhythm 2671, Vocals 335, identical to ours track for track. The extra 3201 local notes are the two copies.
Broken Satellites BC77910004700n/aReject The rival tab has almost no lead. 129 notes at 13.3% occupancy with zero stacks, against 924 at 60.2% with 144 stacks on s5084035.

Per-track detail, live

SongTrackNotesOccupancyStackedMax stackSongsterr isVocalTrack
Asleep in the TrunkLead Guitar73145.1%1954false
Rhythm Guitar302797.0%10384false
Bass1402100.0%01false
Drums177478.4%4953false
Vocals31166.3%152true
LazarusLead Guitar15443.0%01false
Rhythm Guitar504099.5%15534false
Bass121094.7%01false
Drums204093.7%5653false
Vocals22844.9%01true
JackieRhythm Guitar124299.0%2753false
Bass58197.1%01false
Drums105297.1%3622false
Vocals13939.2%01true
Broken SatellitesLead Guitar92460.2%1446false
Rhythm Guitar267198.8%7736false
Bass53096.5%01false
Drums141091.2%3592false
Vocals33554.4%672true
The vocal answer holds on the live tabs too, from Songsterr's own flag. Every song returns isVocalTrack: true on exactly one track. Not one returns two. The live Asleep vocal carries 15 stacked beats and the live Broken Satellites carries 67, so the harmony pattern is the same as the local files: written as stacks on one staff, never as a second staff.
A new Phase 1 item came out of this. The Lazarus lead staff holds 154 notes at 43% occupancy with zero stacked beats, and the Broken Satellites BC lead holds 129 at 13.3%. That is the documented Songsterr solo failure, where a fast lead comes back thin or an octave low rather than empty. Read the lead's note count and fret range before accepting any tab, which is now a Phase 1 check.

00bPhase 1 result: The Mutiny, measured

Run 2026-08-17 against 08_the_mutiny/songsterr.gp, sha256 21b37b73b6f35faa, 135 bars, 4906 notes. Every number below is validator output rather than a claim.

Headline: three of the four evidence measures lost to their own controls, so none of them licenses a note change on this song. Each tool ran its own control and each reported that it lost. Nothing was moved or deleted on that evidence, which is the tools working as designed.

Step 1. Two guitars, or one part split across two staves

MeasureResultReading
staff_role_audit.py co-activity50.4%, both staves play in 68 of 135 barsVerdict TWO_PARTS. Genuine two-guitar runs at bars 7-35, 71-80, 101-105, 111-130.
Role flip7.0The Mutiny is clear of the one-part-chopped-in-two defect. Its two staves are two guitarists.

Step 2. The beat-to-seconds map

Three stems were tried at offset 4.04s, 130 bpm. The right channel wins by a wide margin, and the reason matters: the stereo sum masks transients that the isolated channel keeps.

StemOnsets detectedAlignmentRandom controlGainAnchorsBar-length CVVerdict
Rhythm Guitars (stereo)23630.8%7.3%+23.5127.20%, 10 bars offReject
RhythmGtr [L]29235.2%8.5%+26.7153.02%Weaker
RhythmGtr [R]71873.6%17.5%+56.1322.22%, 0 bars offAccepted

The accepted map covers 126 of 135 bars, mean bar length 1.8469s against a nominal 1.8462s. The last nine bars fall beyond the final anchor and are not measured. Passing the chance test alone was not enough: the first bar-length reading looked catastrophic until the extrapolation past the anchor span was removed, so the covered span is stated explicitly rather than implied.

Step 3. Audio accuracy against the right-channel stem

MeasureNumberControlVerdict
Attack recall74.1%, 2273 of 3068 written attacks match a detected onsetn/aUsable
Attack precision88.0%, 632 of 718 onsets accounted forn/aUsable
Timing, post-warpmedian 0.0 mscircularDiscarded, the warp minimises its own residual
Timing, as the tab asserts itmedian 48.2 ms, p90 204.0 ms, n=2534n/aUsable
Pitch agreement53.4%51.0% shifted-time, separation +2.4No discriminating power
Ownership separation+0.2651+0.2766 shifted-time, gain -0.0115 against a 0.05 thresholdRefused
Attack-string evidenceseparation -0.197its own control 0.018, so -0.215 over controlNot usable
Register evidence1368 of 3260 notes (42.0%) below the measured 150 Hz floorn/aBLIND_REGISTER, an attribution gap
Why note attribution fails on this stem. Under 2% of the stem's energy is below 150 Hz, and 46.6% of the Rhythm Guitar part and 24.3% of the Lead are written below that floor, down to 65.4 Hz. Drop C tuning puts the low C at 65.4 Hz. That is the documented blindness of a separated guitar stem in the low register, so the low half of this song has to be read from the full mix rather than from the guitar stem.

Step 5. The register-aware fix, tested and refuted

The guitar stem holds under 2% of its energy below 150 Hz, so the obvious repair is to read the low band from the full mix. The mix at Music to Stem/Beleiveyoume/BELIEVEYOUME (2025)/03 - The Mutiny.flac runs 251.490295s against the stems' 251.490295s, identical to the sample, so no time correction was needed. A combined file was built with a 4-pole crossover: guitar right channel above 150 Hz, full mix below it.

Then a negative control, which is the test that settles it: the same Mutiny tab measured against So Far So's guitar stem, a deliberately wrong pairing.

PairingMap alignmentAttack recallAttack precisionPitch agreementPitch controlPitch separation
Mutiny tab vs its own RhythmGtr [R]73.6%74.1%88.0%53.4%51.0%+2.4
Mutiny tab vs register-aware combine73.4%74.1%87.8%51.0%47.2%+3.9
Mutiny tab vs its own full mix54.9%53.2%90.2%52.9%51.0%+1.9
Mutiny tab vs SO FAR SO guitar (wrong on purpose)12.8%13.0%94.0%42.4%33.7%+8.7
The deliberately wrong pairing scored the BEST pitch separation of the four. +8.7 against the correct pairing's +2.4, and it was the only run the tool did not label NO DISCRIMINATING POWER. A metric that rewards a mismatched stem cannot judge a tab, and a decision taken on it would be backwards.
MetricCorrect over wrongUsable
Map alignment5.75x (73.6 / 12.8)VALID
Attack recall5.70x (74.1 / 13.0)VALID
Attack precision0.94x (88.0 / 94.0)INVALID, the wrong stem scores higher
Pitch separation0.28x (+2.4 / +8.7)INVALID and inverted
What is established, and what is not. Attack-level accuracy on The Mutiny IS established and validated: 74.1% recall, 2273 of 3068 written attacks matching a detected onset, against 13.0% for a wrong stem. Pitch-level accuracy is NOT establishable with these tools on this material, proven by the negative control rather than asserted. Dense distorted power chords in Drop C are close to chroma-stationary, so a time-shifted window matches nearly as well as the aligned one. That is a property of the recording rather than a pipeline gap, and the register-aware repair changed attack recall by 0.0 points.

Step 6. A correction protocol on the validated metric, built and refused

With pitch, ownership and attack-string all disqualified, the only surviving audio metric is attack support. A new tool, bar_support_audit.py, localises it: rather than judging a note, it asks which BARS have no acoustic support while their neighbours do. A single unmatched attack proves nothing, since an onset detector systematically misses attacks inside a held distorted chord, and a region carries information a note cannot.

It ships with a decoy control, the same tab shifted 3.7 seconds. Two constructions were tried and both were refused:

ConstructionReal supportDecoy at +3.7sGainNeedsVerdict
DTW fitted to the events it then scores100.0%92.0%+8.0+15.0Refused, circular
DTW fitted to all tracks, subset scored through it100.0%95.3%+4.7+15.0Refused

Cause: 718 onsets across 251 seconds is one every 0.35 seconds. The DTW map compresses any input into that distribution, so a tab shifted by nearly four seconds still falls beside an onset. Onset density this high leaves the measure no headroom, which is a property of dense distorted rhythm guitar rather than a coding error. The tool is kept, exits nonzero, and emits nothing whenever the decoy keeps up.

Terminal state for per-note audio correction on this song. Six measures were run against controls. Two are valid at song level and localise nothing: map alignment at 5.75x and attack recall at 5.70x, both of which separate the right tab from a wrong one across the whole song. Four cannot license a change: pitch separation is inverted, attack precision is inverted, ownership lost to its control at -0.0115, attack-string evidence lost at -0.215, and per-bar attack support lost at +4.7 against a +15.0 threshold. Nothing here says the tab is wrong. It says these tools cannot tell, on this material, and each of them says so itself.

Step 7. Replication on a second song, which refutes the material explanation

The obvious reading of Step 5 was that the material defeats pitch matching, since dense distorted power chords in Drop C are close to chroma-stationary. That is testable. My Mirror Hates Me differs on every property that could explain it: Standard E rather than Drop C, 114 bpm rather than 130, and 1.59 onsets per second rather than 2.86.

PairingMap alignmentAttack recallPitch agreementPitch controlPitch separation
My Mirror tab vs its own Rhythm Guitars64.4%66.3%55.8%52.2%+3.6, no power
My Mirror tab vs THE MUTINY's guitar (wrong on purpose)48.7%44.6%63.3%48.3%+15.0
The wrong stem won again, by 4.2 times this run. Two songs sharing almost no properties, the same inversion. The material explanation is refuted. The defect is in how the measure is constructed, so choosing easier songs will not recover it, and neither will a different onset detector tuning.

Attack recall stayed correctly ordered on both songs, 74.1% against 13.0% on The Mutiny and 66.3% against 44.6% here. Its discrimination is much weaker on this pairing, 1.49x against 5.70x, because the two songs run 287s and 251s and the warp absorbs some of the difference. Attack recall remains the only metric that has never pointed the wrong way.

Step 8. The mechanism, found, and the gate that catches it

Step 7 said the defect was in the measure's construction, which was as far as the evidence went at the time. It goes further. The cause is a degenerate DTW map, and it is measurable directly.

CaseAnchorsAlignmentUnique audio times per attackLongest collapse runClamped share
Mutiny vs its own guitar3273.5%0.940666.0%
Mutiny vs So Far So (wrong)412.8%0.73828426.3%
My Mirror vs its own guitar1864.4%0.948575.3%
My Mirror vs Mutiny (wrong)1048.7%0.77823922.3%

A wrong pairing yields few anchors, so interpolation pins a quarter of the tab outside the anchor span and collapses up to 284 consecutive attacks onto a single audio time. Every one of those notes is then compared against the same frame. When that frame is a sustained chord, a large share of written pitches agree with it, while the shifted-time control falls on a different and sparser frame and collapses. That is the large spurious separation, appearing on the pairing that is most wrong.

beat_map.py accepted both wrong maps. Gain +11.24 and +44.1, over its +8.0 threshold, because it judges alignment gain against a random control and nothing else. audio_accuracy_audit.py then measured pitch through those maps. No stage asked whether the map was healthy enough to carry a per-note question.
Built and validated: map_health_gate.py. It reads a beat_map.py --json file and fails a map on clamped share above 12%, a collapse run over 120, fewer than 0.85 distinct audio times per attack, or under 85% span coverage. Thresholds sit between the two measured groups with margin. Validated 4 for 4: both correct pairings PASS, both wrong ones FAIL on all four criteria at once. A failing map still supports song-level alignment and attack recall, which is what those metrics were always measuring.

This changes the standing conclusion. Pitch agreement is not inherently inverted. It was being fed maps that could not carry it, on pairings nothing was screening. Whether it becomes usable on a map that passes the health gate is the next thing to measure, and it now has a gate in front of it.

Step 9. Pitch on healthy maps, measured three times

With the health gate in place the earlier comparison can be redone properly. The wrong pairing that appeared to invert the metric fails the health gate on all four criteria, so it is disqualified as a control. What remains is pitch measured only through maps that pass.

PairingMap healthAttack recallPitch agreementPitch controlSeparationTool's own verdict
Mutiny tab vs its [R] channelPASS74.1%53.4%51.0%+2.4no power
Mutiny tab vs its [L] channelPASS34.9%52.3%49.7%+2.6no power
My Mirror tab vs its own guitarPASS66.3%55.8%52.2%+3.6no power
Mutiny tab vs So Far So (wrong)FAIL, 4 criteria13.0%42.4%33.7%+8.7disqualified
The settled reading, which supersedes the inversion story. Pitch agreement is not inverted. On every map that passes the health gate its separation is +2.4, +2.6 and +3.6, and the tool labels all three as having no discriminating power. The dramatic inversion was an artifact of degenerate maps, and the health gate now excludes those. The plain fact underneath is duller and firmer: chroma agreement cannot tell a correct guitar transcription from an incorrect one on this material, and it never could.

The [L] and [R] comparison is the sharpest form of it. Two channels of the same song at the same instant, both maps healthy, and pitch scores 53.4% against 52.3%. Attack recall separates them 2.1 times over, 74.1% against 34.9%, so the tab's attacks clearly follow the right channel. Chroma cannot see a difference that attack timing makes obvious.

An attempt to turn that into per-staff ownership failed, and is reported rather than shipped. Decomposing attack recall by staff returned 100.0% for both the Lead and Rhythm staves against both channels, a ratio of exactly 1.00 everywhere. That is saturation: the DTW map is fitted to the tab attacks, so mapping those same attacks back through it puts every one on an onset by construction. The song-level 74.1% against 34.9% comes from the audit tool's own internal method and stands; the per-staff decomposition does not, and no ownership claim is made from it.

Step 10. The feature survey, all four candidates refuted

The natural next question is which audio feature can order a correct pairing above an incorrect one when chroma cannot. The obvious control, My Mirror's tab against The Mutiny's stem, fails the health gate on all four criteria, so it is disqualified before any feature is computed. The one healthy-map pairing that is nonetheless wrong is The Mutiny's own left channel: both channel maps pass, both cover the same song at the same instant, and attack recall already orders them 2.13 to one.

Four candidates, each sampled at the tab's 3068 attack times mapped through that channel's own healthy map, each against a within-channel control at the same times shifted 3.7 seconds.

Feature[R] tab[R] control[R] gain[L] gainR/LVerdict
Onset strength envelope0.5590.5670.9860.9960.990Loses to its own control
Spectral flux ratio1.2591.2770.9860.9960.990Loses to its own control
Attack sharpness, post over pre1.0651.0451.0191.0720.951Orders the channels backwards
Transient over sustain0.9941.0010.9920.9980.994Loses to its own control
Attack recall, the reference74.1% on [R]34.9% on [L]2.13The target to beat
Pitch agreement, the failure53.4% on [R]52.3% on [L]1.02Cannot tell them apart
All four continuous features fail, and the reason explains which class of signal survives. A DTW map warps tab time onto onset time, so both the real times and the shifted control times end up beside onsets. Sampling any continuous spectral feature at either set returns the same distribution, which is what the near-1.0 gains show. Attack recall survives because it asks a discrete question, whether a detected onset exists there at all, and warping preserves that while destroying continuous locality.

The searchable space narrows to discrete event matching rather than continuous spectral features. Onset strength, spectral flux, transient clarity and attack envelope sharpness are all ruled out on this material with proper controls, so a future attempt should start from event-level questions rather than from frame-level ones.

Step 11. The one hard fault is a false positive, and the tab is right

Playability needs no audio, so the audio blocker never applied to it. Dumping the tie state across bars 3 to 8 resolves the single hard fault on the file.

Bar / beatString 4, the moving lineString 3, the pedal
bar 3, beat 99s4f8 tie origin, p65s3f5 tie origin, p58
bar 3, beat 100s4f8 tie dests3f5 tie dest
bar 3, beat 101, the flagged beats4f10 tie origin, p67s3f5 tie origin, p58
bar 4, beats 102 to 104s4f10, then s4f8s3f5 held
bar 4 to 5, beats 105 to 106s4f9s3f5 held
bar 7 to 8, beats 107 to 110s4f10s3f5 held, with s2f5 and s1f3

String 3 fret 5 is a pedal held by an unbroken tie chain from bar 3 through bar 8 while the melody moves on string 4 through frets 8, 9 and 10. One finger holds, another reaches. That is index and pinky across adjacent strings at position 5, which every guitarist does. The gate models it as four fingers fitting inside four frets at once, which is the wrong model for a two-finger pedal and reach.

Every span-reducing alternative breaks a tie the music depends on. Legal placements in Drop C are pitch 58 at s0f22, s1f15, s2f10, s3f5, s4f1 and pitch 67 at s1f24, s2f19, s3f14, s4f10, s5f5. The gate's own suggestion s2f10 + s4f10 collides with the s2f5 tie held from bar 7, which is why applying it took the file from 1 fault to 5. s2f10 + s3f14 needs string 3, which carries the pedal. s4f1 + s5f5 moves the pedal onto string 4, the string carrying the moving line.
So The Mutiny has zero genuine playability faults. The correct action was to refute the flag rather than edit the file, and nothing was changed. The gate already prints "held span", so it knows the note is held; it just does not use that fact when choosing the limit. The fix it needs is a held-pedal exemption: when one note of a pair is inside a tie chain and the other is the only moving voice, judge the span against a two-finger reach rather than the flat four-fret limit.

Step 12. Discrete measures without a map, also refuted

Step 10 concluded the surviving signal class was discrete event matching rather than continuous features. That is testable without a DTW map at all, which sidesteps both the circularity of Step 6 and the map degeneracy of Step 8. Tab attacks placed at linear time from bpm alone, compared against the audio's onset stream as a sequence.

PairingKindTab attacksOnsetsDensity correlationInter-onset similarity
Mutiny tab vs its own [R]correct2582718-0.0040.381
Mutiny tab vs its own [L]other channel2582292-0.1260.246
Mutiny tab vs its summed rhythmcorrect2582236-0.3670.267
Mutiny tab vs So Far Sowrong song258283-0.0780.248
Mutiny tab vs My Mirrorwrong song2582456+0.0420.269
My Mirror tab vs its owncorrect3326456-0.1290.166
My Mirror tab vs The Mutinywrong song3326236-0.5220.112
MeasureCorrect meanWrong-song meanRatioVerdict
Density correlation-0.167-0.1860.90No ordering
Inter-onset similarity+0.271+0.2101.29Weak, under the 1.5 bar
Attack recall, the reference74.1%13.0%5.70The unique survivor
Density correlation reaches zero even on correct pairings. The tab writes 2582 attacks where the detector finds 718, so the two streams describe different things and their per-bin profiles carry no shared shape. Inter-onset similarity is directional at 1.29 and swamped by variance inside the correct group, 0.381 against 0.166.
The survey result, stated as the shape it actually has. Nine measures tested across two songs with controls on both sides. Map-based continuous features fail. Map-free discrete measures fail. Map-based pitch has no power. Attack recall through a health-gated map is the unique survivor at 5.70x. The map is not the enemy; a degenerate map is, and the health gate now separates the two. Attack recall works precisely because the map lets it ask whether an onset exists where an attack is written, a question that survives warping while everything else measured does not.

Step 4. Playability, which needs no audio

TrackNotesHand skipSame-stringTie faultsWideOctave copiesVerdict
Lead Guitar6747%0000REVIEW TUNING_EVIDENCE
Rhythm Guitar25860%0010FAIL IMPOSSIBLE_SPAN x1

The single hard fault, in full:

IMPOSSIBLE_SPAN bar 3.875, Rhythm Guitar. Written s3f5 s4f10, span 5, sounding [58, 67]. Held span 5 frets against a 4-fret hand at 130 bpm. Simplest legal alternative, span 0: s2f10 s4f10.

The Lead REVIEW says string 0 is detuned by 2 from the rest of the tuning and its open pitch is never used in that staff. The whole guitar is in Drop C for the Rhythm part, which uses the low C. Read on its own, the Lead staff gives no evidence for the drop. That is a review flag rather than a fault.

The prescribed fix made the file worse, so it was rejected

The refret preserves pitch exactly, since s3f5 is 53+5 = 58 and s2f10 is 48+10 = 58. Three beats carry that shape and only one was flagged, so the edit was narrowed to beat 101, bar 3 last eighth, copy-on-write.

FaultSourceCandidate
IMPOSSIBLE_SPAN11, moved to bar 7.0
SAME_STRING01
TIE_COLLISION01
TIE_DROPPED01
TIE_UNMATCHED01
total15

Every preservation gate stayed green while the file got worse. Tier 1 pitch preservation passed with 3260 notes in and 3260 out, zero lost and zero invented. Tier 1b position passed. The fault count is the measure that caught it.

The cause: the note on string 3 anchored a tie chain. Moving it left a tie on string 3 with nothing struck on that string, and put fret 10 on string 2 where a tie already reserved that string until beat 28. The span-5 voicing the gate called impossible exists because a tie holds string 3, and the suggested alternative is computed per beat with no view of tie reservations.

Candidate kept as evidence at ~/Projects/_outputs/impossible-guitar-parts/the-mutiny-span-fix-REJECTED-broke-tie-chains.gp, sha256 c2c7710ee5488821. Nothing was promoted and nothing was deleted.

Where Phase 1 stands. The map is validated and the playability picture is complete. The per-note audio work is blocked on a measurable cause rather than an opinion: pitch agreement, ownership and attack-string all lose to their own shifted-time controls on this stem, and 42% of the part sits below the stem's usable floor. The next executable step is a register-aware pass that reads the low half from the full mix, and a tie-aware alternative generator, since the current one is tie-blind.

01Vocal harmony: the direct answer

No. Not one tab carries a second vocal staff. Measured across 10 local .gp files and 17 live Songsterr revisions, counting any track whose name matches vocal, voice, sing, vox, lyric or harmon, and cross-checking against MIDI program 66. Every tab holds exactly one Vocals staff. The old Lazarus holds none. Zero of 27 hold two.

Harmony does exist, written as stacked notes on that single staff. Five of the ten stack notes inside the vocal part, up to three at once. The other four are strictly one note at a time, so any harmony those songs actually sing is absent from the notation entirely.

SongVocal stavesVocal notesStacked beatsMax stackReading
So Far So1342533Three-part harmony written on one staff
Broken Satellites1335672Most stacked beats on the record
The Mutiny1247182Two-part in places
My Mirror Hates Me1177173Three-part in places
Not Too Much118962Barely stacked
The Alligator117801Monophonic, no written harmony
Endless Summer121001Monophonic, no written harmony
Jackie113901Monophonic, no written harmony
Asleep in the Trunk1140114 notes across 264 bars. The staff is empty.
Lazarus (local)0000No vocal staff. The live 2026-07-11 build has one.
What that means for the harmony work. There is no existing second staff to correct. Every harmony pass is either splitting an existing stack into its own staff, or building a harmony line from the vocal stem where the notation carries none. Four songs are in the second case, and a fifth, Asleep, has no usable vocal notation at all.

02Note content, every staff

Counted out of the GPIF by walking MasterBar to Bar to Voice to Beat to Notes. This is the measure that separates a real transcription from a correctly-shaped empty one.

SongBarsTotal notesLeadRhythmBassDrumsVocalNotes/bar
Broken Satellites17190719242671530141033553.0
Not Too Much12268858113333876167618956.4
Endless Summer19256391139277859591721029.4
So Far So14049415791413770183734235.3
The Mutiny1354906674258650589424736.3
My Mirror Hates Me13447223421270612232117735.2
The Alligator8641346981586439123317848.1
Lazarus1383319718139212090024.1
Jackie102301301241581105213929.5
Asleep in the Trunk26417303310125140.7

The local Asleep in the Trunk file is a shell

264 bars, 173 notes, a Lead Guitar staff holding zero. Every other song on the record runs 24 to 56 notes per bar. This file carries all five expected staves, the right Drop C tuning, the right MIDI programs, and a Vocals track at program 66, so it clears every rule preflight_import.py owns, because that gate counts staff presence and role identity and never parses a single Beat.

Built today to close it: ~/.claude/skills/impossible-guitar-parts/empty_staff_gate.py. It measures notes per bar, per-staff occupancy, zero-note staves, and the vocal stack. Validated against all ten files: exit 1 on Asleep with five separate faults, exit 0 on the other nine.

03The fix plan, in order

Ordered by dependency. Nothing below Phase 0 is worth doing against a file that has not been re-pulled and content-checked, because four of the issues found so far turned out to be defects in the local copy rather than in the source.

Phase 0. Trust the source before touching anything

#IssueFixSkill or gatePast mistake it guards
1Asleep local .gp is a 173-note shellDONE Live measured at 7245 notes against our 173. Re-pull confirmed necessary./songsterr-tab-guide, st_gpdiff.pyFixed-shape tools emit full-size empty files
2Lazarus local has no vocal and no drum staffDONE Live carries vocals 228 and drums 2040 over 207 bars. Re-pull confirmed necessary./songsterr-tab-guideJudging a source by a stale local export
3Jackie local is two months staleDONE Content identical track for track. No re-pull needed, the staleness claim was wrong./songsterr-tab-guideSame
4Broken Satellites local carries Copy tracksDONE Copies are local only. s5084035 beats s5965143, whose lead holds 129 notes at 13.3%.octave_copy_gate.pyA lead staff that was 77.4% fret+12 copy reached Songsterr
5Nothing measured whether a file holds contentDONE Gate built, validated, and run. A rest-counting bug in the live reader was caught and fixed before reporting.empty_staff_gate.py, built todayExit 0 and file-exists prove a tool ran, never that its output is good

Phase 1. Calibrate the guitar split on the one song with ground truth

#IssueFixSkill or gatePast mistake it guards
6Beat-to-seconds map has to exist before any audio checkBuild and validate the map on The Mutiny/composite-stem-alignment, beat_map.pyA map that beats a random control can still be seven bars wrong
7Two guitars written onto one staffSplit by register and pitch against the real RhythmGtr [L] and [R] filesattack_string_evidence.py, register_evidence.py, ownership_audit.pySplitting by panning or stem loudness, when 19 to 56% of notes appear in BOTH channels
8A lead staff going tacet while rhythm covers for itCo-activity and role-character auditstaff_role_audit.pyA lead with no events from bar 57 while rhythm flipped to single notes
9Voicings no hand can playFive-tier playability gradeimpossible_gate.py1111 unreachable chords shipped
10A rebuild silently losing notesPitch-preservation check first, skip percentage last/impossible-guitar-parts tier orderA processing-order bug deleted 32 notes at pitch 38 while every ergonomic score stayed clean

Phase 2. Bass

#IssueFixSkill or gatePast mistake it guards
11No bass staff has been checked against a bass stemPer-beat fundamental on the bass stem, compared bar by bar/audio-stems-to-midi, crepe and yinTab MIDI encodes fingering rather than sounded harmony
12Broken Satellites bass tuning conflictResolve after the re-pull, since the live tab is Drop Cempty_staff_gate.py then octave_copy_gate.pyTreating a local edit as a source defect

Phase 3. Vocals, which is the harmony question

#IssueFixSkill or gatePast mistake it guards
13Five songs write harmony as stacks on one staffVerify every stack against the vocal stem before splitting it into its own staff/audio-stems-to-midi, /five-stem-song-analystA pitch found in one stem never proves which part sang it
14Four songs write a strictly monophonic vocalCheck the vocal stem for harmony the notation omits, then add a staff only where the stem carries one/audio-stems-to-midiInventing a part the evidence does not support
15Asleep has 14 vocal notes across 264 barsCovered by the Phase 0 re-pull, then re-measureempty_staff_gate.pyShipping a staff that exists and is empty
16No gate exists for vocal-harmony fidelityBuild one after Phase 3 measurement, on the model of octave_copy_gate.pyGAP, nothing covers this yetOne mention means a recurring class, so the gate gets built

Phase 4. Unblock the two songs with no guitar evidence

#IssueFixSkill or gatePast mistake it guards
17Asleep and Jackie were separated to four stemsRe-separate with the Moises role split, which emits Rhythm, Solo and Other GuitarMoises Guitar parts moduleA pitch inside other proving nothing about the guitar
18Asleep time signature, 3/4 against 4/4Settle against the audio using the validated beat map/composite-stem-alignmentCorrecting 264 bars against the wrong bar grid
19Jackie has a single guitar staffDecide whether a second guitar exists, by pan bimodality on the re-separated stems/impossible-guitar-parts guitar countCounting guitarists by stereo width rather than per-attack bimodality

Phase 5. Put the corrections back

#IssueFixSkill or gatePast mistake it guards
20An import that deletes parts the existing tab holdsPreflight every upload, and refuse on any role drop/songsterr-upload, preflight_import.py72 files shipped with no vocal at all
21A vocal uploaded as a guitar programKeep program 66 and the sax instrument type, classify by namepreflight_import.pyThe vocal filed under horns by a program-first rule
22Upload order silently losing the audio syncYouTube first, then the file import, then wait for SAVED/songsterr-uploadImporting first produces a silent tab with no audio attached
One song per pass. Phase 0 is the only step that runs across all ten at once, because it is a re-pull and a measurement rather than a correction. Everything from Phase 1 onward runs one song at a time, starting with The Mutiny.

04The verdict, in one table

#SongVerdictGP guitarsGP vocal Isolated gtr stemVocal stemBass stemBarsWhat stands in the way
1Asleep in the TrunkBlocked 2yesnoneyesyes264 Local file is a 173-note shell with a zero-note Lead staff. Also 4-stem FLAC, guitar inside other.flac. Re-pull, then re-separate.
2The AlligatorReady 2yeslead + rhythmyesyes86 Carries an audio_truth.gp3 stem-corrected prior to regress against.
3The MutinyReady · best first 2yesRhythm L + R + Soloyesyes135 Only song with true RhythmGtr [L] / [R] splits. Start here.
4So Far SoReady 2yesRhythm + Solo + Otheryesyes140 Private tab s5110187 is Drop C. A public s4938058 also exists in Drop D, a different arrangement. Use the private one.
5My Mirror Hates MeReady 2yesRhythm + Solo + Otheryesyes134 Standard E tuning, the only one. Has a separate piano.wav alongside keys.wav.
6Endless SummerReady 2yeslead + rhythmyesyes192 Moises 6-stem. Bass is written as finger where its neighbours use pick.
7LazarusRe-pull first 2yes, livelead + rhythmyesyes138 The local file is a stale 3-track May export. Songsterr s5476396 from 2026-07-11 carries 5 tracks with Vocals and Drums. Re-pull.
8Not Too MuchReady 2yesRhythm + Solo + Otheryesyes122 D Standard rather than Drop D. The GP carries the corrected tuning; prose elsewhere may not.
9Broken SatellitesRepair first 3 + 1 dupe localyesRhythm + Solo + Otheryesyes171 The copy tracks are a LOCAL artifact. Live s5084035 is a clean 5-track Drop C, and a second 2026-07-08 upload s5965143 exists. Re-pull, then pick.
10JackieBlocked 1yesnoneyesyes102 4-stem FLAC and a single guitar staff. Fails the two-guitar rule on both sides at once.
Reading the guitar column. The standing rule is two guitar staves, Gtr 1 and Gtr 2, split by register and pitch rather than by panning or stem loudness. Eight of ten GP files carry exactly two. Jackie carries one, Broken Satellites carries three plus a duplicate.

05Songsterr registry

Every ID resolved with a following curl -sIL on 2026-08-17. Tempo, tuning, and time signature are the values Songsterr displays; they were read off the site in the 2026-06-03 audit and match the tuning bytes inside each .gp, which I re-read today.

SongIDHTTPTempoTuningTimeTab URL
Asleep in the Trunks5085156200♩=173Drop C3/4shiner-asleep-in-the-trunk
The Alligators5083283200♩=120Drop C4/4shiner-the-alligator
The Mutinys5083529200♩=130Drop C4/4gerken-the-mutiny
So Far Sos5110187403♩=130Drop C4/4private / unpublished, signed-in access only
My Mirror Hates Mes5418315200♩=114Standard E4/4shiner-my-mirror-hates-me
Endless Summers5083970200♩=140Drop C4/4gerken-endless-summer
Lazaruss5082702200♩=117Drop C4/4shiner-lazarus
Not Too Muchs5084025200♩=85D Standard4/4shiner-not-too-much
Broken Satellitess5084035200♩=116Drop C4/4gerken-broken-satellites
Jackies5418285200♩=144Drop C4/4shiner-jackie
Songsterr never shows a key. Tempo, tuning, and time signature are displayed and reliable. Key is not a field the site carries, so any key claim has to come from the stems or from Brandon's ear. Three keys were disputed in the 2026-06-03 stem audit and only The Alligator has been resolved since, to G major at high confidence off a three-stem consensus. So Far So and Broken Satellites are still open.

06Guitar Pro track census

Read straight out of each Content/score.gpif today. Tuning is given as MIDI pitch numbers low to high, exactly as the file stores them.

SongTracksGuitar tuningBass tuningArtist fieldNote
Asleep in the TrunkLead, Rhythm, Bass pick, Drums, Vocals36 43 48 53 57 6224 31 36 41ShinerClean five-track shape.
The AlligatorLead, Rhythm, Bass pick, Drums, Vocals36 43 48 53 57 6224 31 36 41ShinerClean.
The MutinyLead, Rhythm, Bass pick, Drums, Vocals36 43 48 53 57 6224 31 36 41full lineupClean.
So Far SoLead, Rhythm, Bass pick, Drums, Vocals36 43 48 53 57 6224 31 36 41ShinerTitle stored with literal quote marks.
My Mirror Hates MeLead, Rhythm, Bass pick, Drums, Vocals40 45 50 55 59 6428 33 38 43Unknown ArtistStandard E throughout.
Endless SummerLead, Rhythm, Bass finger, Drums, Vocals36 43 48 53 57 6224 31 36 41full lineupClean.
LazarusRhythm, Lead, Bass only36 43 48 53 57 6224 31 36 41ShinerNo Vocals staff, no Drums staff.
Not Too MuchLead, Rhythm, Bass pick, Drums, Vocals38 43 48 53 57 6226 31 36 41ShinerD Standard confirmed in the file itself.
Broken SatellitesVocals, Lead, Rhythm, Rhythm Copy, Bass, Copy, Drums36 43 48 53 57 6223 28 33 38 43full lineupTwo duplicate staves, and a 5-string standard bass under a Drop C guitar.
JackieRhythm only, Bass pick, Drums, Vocals36 43 48 53 57 6224 31 36 41Unknown ArtistSingle guitar staff.
Every Vocals staff is a sax in disguise. All nine vocal tracks carry MIDI program 66 on a six-string standard-tuning staff. That is the known Songsterr AI shape: the vocal line gets written as a sax-programmed track named Vocals. Classify these by track name and ignore the program, or the preflight will read the album as having no vocal at all.

07Stem census

Two roots hold BELIEVEYOUME stems. Moises_Stems/BelieveYouMeStems/ is the superset with all ten songs; Full wav files for music books are here/ holds the same eight and is missing Asleep and Jackie. Eight of the ten stems_pointer.txt files point at the smaller root.

SongFilesSeparation shapeGuitar layersDrum splitExtras
Asleep in the Trunk44-stem FLACnone, inside otherdrums_pieces/ presentalt copy in Stems/BELIEVEYOUME/
The Alligator7Moises 6-stemlead, rhythmsingle drumsmetronome
The Mutiny14custom multiRhythm, RhythmGtr [L], [R], Soloc, g3, h, l, s, toth, other
So Far So12custom multiRhythm, Solo, OtherKick, Snare, Toms, HiHat, Cymbals, other drumn/a
My Mirror Hates Me14custom multiRhythm, Solo, Otherfull 6-piece splitkeys, piano
Endless Summer7Moises 6-stemlead, rhythmsingle drumsmetronome
Lazarus7Moises 6-stemlead, rhythmsingle drumsmetronome
Not Too Much14custom multiRhythm, Solo, Otherfull 6-piece splitkeys, strings
Broken Satellites13custom multiRhythm, Solo, Otherfull 6-piece splitkeys
Jackie44-stem FLACnone, inside othersingle drumsn/a

08What Songsterr holds that the local export does not

The canonical folder was exported 2026-06-02/03. Songsterr has moved since. Every row below was read from songsterr.com/api/meta/<id>/revisions and the matching revision endpoint on 2026-08-17, so the track titles and tuning come from the live revision rather than from the local file.

SongIDLatest revisionBuiltSourceTracksHeld locally?
So Far Sos5110187privaten/an/a5, Drop Cyes
So Far Sos493805864586762026-04-24AI5, Drop Dno
The Alligators508328366470012026-05-05AI5yes
The Alligators213259428340042025-08-25AI4no
The Mutinys508352966473262026-05-05AI5yes
Asleep In The Trunks508515677983092026-07-08Editor, hand-built5stale copy
Asleep In The Trunks493762264580712026-04-24AI5no
My Mirror Hates Mes541831570858162026-05-29AI5yes
Endless Summers508397066479062026-05-05AI5yes
Lazaruss508270266464092026-05-04GP import3yes, this is the stale one
Lazaruss547639678344452026-07-11Editor, hand-built5, with Vocals + Drumsno
Not Too Muchs508402566479862026-05-05AI5yes
Broken Satellitess508403566480002026-05-05AI5, cleanstale copy
Broken Satellites BC versions596514377910002026-07-08AI5no
Jackies541828578345992026-07-11Editor, hand-built4stale copy
Surgerys507133866313582026-05-04AI5not an album track
The Truth About Cowss509743466655142026-05-06AI5not an album track
Three local files are stale, and one of them changes a verdict. Lazarus, Asleep In The Trunk, and Jackie all carry Songsterr revisions built in the Editor on 2026-07-08 and 2026-07-11, after the local export. The Lazarus one matters most: s5476396 holds Lead Guitar, Rhythm Guitar, bass, drums, and a Vocals staff at MIDI program 66. The three-track local file is simply an old GP import. Re-pull before deciding anything about Lazarus.
The Broken Satellites copy tracks were never on Songsterr. The live tab returns five clean tracks with a Drop C bass at 41 36 31 24. Rhythm Guitar Copy, the bass Copy, and the five-string standard tuning exist only in the local songsterr.gp. That is a local edit, so treat it as such rather than as a defect in the source.
Two artist pages, which is why three songs looked missing. Songsterr splits the catalogue across shiner-tabs-a86009 and shiner-allen-epley-josh-newton-paul-malinowski-jason-gerken-tabs-a829768. The Mutiny, Endless Summer, Broken Satellites, and the new Lazarus live on the second page. Searching only the first one finds seven of the ten.

09Four traps that will bite

1. The folder numbers are three different numbering schemes

The canonical song folders are numbered by one order and the stem folders by another. They collide instead of missing cleanly, which is the dangerous kind:

Album orderCanonical folderStem folder
1 Asleep in the Trunk05_asleep_in_the_trunk01 - Asleep in the Trunk
2 The Alligator02_the_alligator1-02 The Alligator-G major-120bpm-441hz
3 The Mutiny08_the_mutiny03 - The Mutiny
4 So Far So01_so_far_so04 - So Far So
5 My Mirror Hates Me09_my_mirror_hates_me05 - My Mirror Hates Me
6 Endless Summer07_endless_summer1-06 Endless Summer-Bb major-142bpm-440hz
7 Lazarus04_lazarus1-07 Lazarus-G major-180bpm-440hz
8 Not Too Much06_not_too_much08 - Not Too Much
9 Broken Satellites03_broken_satellites09 - Broken Satellites
10 Jackie10_jackie10 - Jackie

Canonical 03_ is Broken Satellites. Stem 03 - is The Mutiny. Match on title, and ignore the leading digits entirely. Album order above comes from sources.yaml and the stem prefixes, which agree with each other.

2. Broken Satellites copy tracks, local only

The local file carries Rhythm Guitar Copy next to Rhythm Guitar, and a track literally named Copy next to the bass, plus a five-string standard B E A D G bass under a Drop C guitar. None of that is on Songsterr: the live revision returns five clean tracks with a Drop C bass. So the duplication happened locally. A part filled by duplicating another part is a duplication rather than a transcription, so run the octave-copy gate on the local file, and re-pull the live tab as the reference.

3. Asleep in the Trunk is in 3/4, and the book says 4/4

Songsterr's transcriber entered 3/4 explicitly. The MIDI metadata says 4/4 and so do the book cards. That is unresolved, and it changes every bar number in the song, so it has to be settled before bar-level correction on a 264-bar chart. The 2026-06-03 audit left the caveat that the song may open in 3/4 and move to 4/4.

4. Two songs cannot yield guitar evidence at all

Asleep in the Trunk and Jackie were separated to four stems, so their guitars are mixed into other. No amount of care on the tab will produce a per-attack guitar attribution from a stem that also contains keys and everything else. A pitch found in other does not prove the guitar played it. Both need re-separation to a six-stem model before they enter the queue.

10The correction queue

  1. The Mutiny: start here. It is the only song carrying real RhythmGtr [L] and [R] files, so the two-guitar split can be validated against ground truth rather than inferred. Whatever the splitter concludes on Mutiny is the calibration for the other nine.
  2. The Alligator: second, because it has an audio_truth.gp3 from the 2026-06-02 stem pass. That gives a prior to regress against, and a resolved key at high confidence.
  3. Not Too Much, So Far So, My Mirror Hates Me, Endless Summer: the clean middle. Full guitar layers, two GP staves, vocal and bass stems present.
  4. Lazarus: re-pull s5476396 first. The vocal and drum staves exist there, so nothing has to be built from scratch.
  5. Broken Satellites: re-pull the live tab, decide between s5084035 and the 2026-07-08 s5965143, then correct.
  6. Asleep in the Trunk, Jackie: re-pull the 2026-07 hand-built revisions, re-separate the audio to six stems, settle the Asleep time signature, then queue. The stem gap is a disk fact and does not change with the tab.
The bar the work has to clear. A finished transcription is not finished because a file exists or a script exited zero. It has to be checked against the stems for pitch, attack timing, duration, guitar ownership, doubled notes, tuning, and articulation, reported as measured numbers, and then checked for physical playability: string and fret realizability, tie chains, hand span, position movement at tempo, open-string behaviour. Every difference from the prior gets classified as supported correction, unsupported change, or unresolved ambiguity.

11Canonical paths

Skills this feeds