Study 26–26c · Listening
The alignment's broken ends: the hazy-audio hypothesis refuted, and a three-iteration repair recipe measured to pass the app's own acceptance gate
Listening · the ends repair
Study Overview
The Ask and the New Ruler
Stem Shovel's player gained a consumer that follows the alignment's bar map in real time (the bar readout, the click, the sections), which exposed what the section-placement consumer never saw: on Letter Lands the map puts bar one at 8.06 seconds into a song whose music starts at zero, compresses the intro to 0.9 second bars, and ends the chart 15 seconds early. The app shipped a refusal gate rather than show a wrong grid, and asked the bench for a cause and a repair. The bench could answer with a ruler it did not have a day earlier: the same-day correction established the recordings as metronome-exact at their declared tempos with verified bar-one anchors, so per-bar alignment error is measurable everywhere, not just at the ends. The baseline measured the ask's shape precisely: middle mean error 0.16 to 0.42 seconds on the three arrangement-matched songs, ends 3 to 23 seconds, and eat-all-the-clocks' interior apparently corrupted (7.8 seconds mean), traced by the second correction to the bench's own chart fixture. The app's bar-one acceptance check, computed on the bench corpus, fails all four songs.
The Ablation, Re-Graded
The ask's hypothesis blamed sparse intros and ringing outros for misleading the chroma comparison, and named its own direct test: align against the recording cut to the span where the drums play. The ablation ran and the ends stayed as broken as before, which the first publication read as a refutation (the compression is forced, not seduced, because the charts outrun the audio). The second same-day correction re-graded that reading: the trim construction is ill-posed, since slicing removes audio the chart's first bars need, so it could not have succeeded whatever the cause; and the charts-outrun-the-audio arithmetic was itself the eat fixture error plus loose anchors, because with the verified anchors the other three charts fit their recordings. The cause of the end compression on letter-lands and peaceful-dreams is therefore back open. The repair's measured results never depended on it.
Three Registrations to a Green Recipe
Iteration one ran the ask's proposed remedy: trust the middle, extrapolate the ends at the interior tempo, slide to onsets. It repaired peaceful-dreams completely and letter-lands' intro from 7.3 seconds to 0.05, and its registered gate still failed, because the least-squares interior tempo came out one percent biased and compounded to 1.3 seconds over 29 extrapolated tail bars. Iteration two replaced the estimator with the onset joint comb, which measures the period to 0.02 percent on all four songs, and widened the end slide to half a bar; letter-lands became perfect and the widened slide broke peaceful-dreams' intro by 0.60 seconds, reaching the half-bar backbeat lattice the narrow range had excluded by construction. Iteration three registered the obvious composition, comb period with the quarter-bar slide fence, and passed every gate: letter-lands 0.05 and 0.02 seconds through the app's acceptance unloosened, peaceful-dreams 0.06 and 0.11, mop-heart through the shipped acceptance with a 0.32 second outro residual that is its own middle's phase offset (the 224 bpm whole-grid phase problem, named as the next remedy and out of an end repair's scope), and eat-all-the-clocks refused by the recipe's interior-trust check, a refusal the second correction upgraded rather than withdrew: the disagreement it detected was real, but its cause was the bench's chart fixture, and with the corrected 71-bar chart the recipe repairs eat like the others, every end bar within a quarter bar of the true grid.
What the Worker Ships
The recipe costs one alignment as today plus an onset envelope and comb sweeps, no second pass, no model, no server: align; take the period from the onset comb within ten percent of the chart's declared tempo, never from the median bar duration (skew-biased, 1.699 against a true 1.818 seconds) or a least-squares slope (one percent biased); take the phase as the median residual over the middle sixty percent of bars and trust bars within a quarter period of that line, refusing when under half the bars cohere; keep the aligned trusted span and extrapolate the ends at the comb period; slide each end within a quarter bar toward onset energy; and emit per-bar confidence, aligned versus extrapolated. The reference implementation with unit tests is committed in the bench (src/study26/recipe.ts), and the refusal doubles as a wrong-chart detector: when the chart in hand disagrees with the recording, the user hears that instead of a generic failure. Its first catch was the bench's own fixture.
Correction (2026-11-07, Prompted by Kevin)
Kevin flagged that the barmark parser counts 71 bars on eat-all-the-clocks, matching the hand-added sections and the song precisely, where this study and Study 25 had treated an 86-bar chart as truth. The live chart (stemshovel.com, chartVersion 131) settled it: each chorus is 8 bars where the bench's fixture, inventoried 2026-10-29, carried 12, and the outro is 1 bar plus a fade where it carried 4, exactly the 15-bar surplus behind the whole arrangement-mismatch narrative. Adjudicated mechanically for $0: reader hints on the true grid score 65 of 71 against the live chart, uniform across the song, versus 56 of 84 with decay against the fixture; the DTW aligns eat's interior at 0.45 seconds mean against a 71-bar reference, so it was never broken on this song; and this study's recipe then repairs eat's ends to within a quarter bar. Study 25b (one registered model call) drafted eat on the corrected chart at 56 of 69 roots versus the hints' 65 of 69, a gate FAIL as registered and the same 81 percent as the old baseline, naming song difficulty, not grid, as eat's remaining gap. The fixture audit found the other three songs clean (letter 76, peaceful 153, mop 140 bars, matching their live charts). Withdrawn or re-graded by this correction: the 13-unplayed-bars claim, Study 25's mismatch-extends-into-the-played-span reading, and this study's forced-not-seduced cause claim, whose trim ablation is ill-posed as constructed. Upgraded: the interior-trust refusal, which correctly detected a wrong chart, the bench's own, before the bench did.