Watermelon In Easter Hay: the two-hands audit

Why the uploaded drum part needed a hand fix, measured against the live tab. Songsterr copy s6857183, head revision r8968524. Built 2026-09-08.

measures scanned 105
cymbal-collision measures 21
colliding cymbal strokes 101
sub-16th tom beats 41

Superseded 2026-09-08: the cymbal stem was asked directly

The repair list on this page is withdrawn as a repair list and stands as an investigation queue. Its central move was to treat a tom and a cymbal sharing a sixteenth as a collision a drummer's hands could not play, then convert 21 measures and 101 cymbal strokes into removals. Hand availability cannot settle whether a cymbal sounded. The isolated cymbal stem can, and it was run event by event.

The snare figures on this page need their scope stated. 193 counts plain non-ghost snare instances. 342 counts every instance in r8968524, being 193 plain plus 149 restored ghosts. On the chart side this disk holds four reader passes returning 83, 136, 137 and 154 heads from one image. Until a comparison names its revision, ghost rule, bar range and reader pass, the chart-to-tab gap carries no information about what the drummer played.

Full method, controls and per-event verdicts: the cymbal stem pass.

What the diff screenshot actually was

The preview page was Brandon's own editor change sitting on top of my upload r8968036. It published one minute later as r8968524, described "Fixed tom fills and rolls", at 17:43:08Z on 2026-09-08.

Diffing the two drum payloads measure by measure, exactly 2 measures differ: index 24 and 26. Songsterr's diff view labels systems by measure INDEX, so those print as 24 and 26 in the screenshot and display as bars 25 and 27 in the tab. The measure between them is byte-identical, matching the un-highlighted middle system.

What Brandon changed by hand

Why my upload had it wrong

1. Tom positions came from stem onsets and were never snapped to the chart's sixteenth

The printed Drumnet chart engraves at a sixteenth. My plan carried raw onset positions. In index 24 the ten planned onsets sat at 11.23, 11.55, 11.94, 12.85, 13.78, 14.74, 15.73, 16.01, 16.45 and 18.63 sixteenths. Two pairs are closer than a third of a sixteenth, so the notation writer subdivided to 32nds and stacked two toms on one instant.

Across the 40 tom-carrying measures, 30 hold a placement more than 0.20 of a sixteenth off grid and 14 hold two toms closer than three quarters of a sixteenth.

2. The cymbal voice was never re-marked against the fill

The chart pass wrote into the drum voice only, so the cymbal voice kept running. 21 measures of the live head have a cymbal voice with zero rests while three or more toms play underneath. The worst is index 56 with 11 toms and 11 cymbal strokes landing on the same sixteenths.

3. The missing snares are the chart reader's recorded blind spot

That read found 154 snare heads against the tab's 193, and the limit is already written into reference_watermelon_drumnet_chart_read.md. Busy measures lose heads.

4. Low-Mid Tom and Low Floor Tom were never available to the pipeline

The chart carries three tom lanes, mapping to High Tom, Hi-Mid Tom and High Floor Tom. A fill that walks down four drums cannot come out of that map.

The crop, and what it does not prove

Chart bar 16 is the measure that becomes tab index 24. This is a native-resolution crop of page 1, system 7, second bar, x 272 to 552 and y 722 to 788 of the 595x842 scan, magnified 8x with no downscale anywhere in the path. Ten filled oval noteheads follow the run of X heads, matching the ten events the plan wrote for this measure.

Chart bar 16 at 8x, ten filled noteheads
Drumnet transcription, page 1 system 7 bar 2, native crop at 8x.

The instrument is NOT established here

A notehead shape plus a staff position plus the tab's own InstrumentSet is one witness, notation. The independent witness would be the isolated stem. It was tested and it fails.

Over the fill window 117.857 to 119.732 s, the toms stem sits at 16.94x the energy of the surrounding context. Against a null of 4000 random windows of the same 1.875 s width drawn from the same stem across the whole 545 s, the median ratio is 0.69, the 95th percentile is 26.45 and the maximum is 271. p = 0.061, so 6.1 percent of random windows match or beat it. That does not clear a 5 percent bar. The tom stem is mostly silence with sparse bursts, so a window that lands on any burst looks this strong.

Conclusion: the count of ten heads is established on the native crop. Naming those ten strokes as toms rests on notation alone at this bar. The +9 chart-to-tab offset remains confirmed at the SONG level, rank 1 of 96 rotations, p = 0.0104. A per-bar instrument attribution is a different claim and it is not carried by that result.

What the stems do show in that window

stemonsets in fillRMS in fill RMS outsideratio
toms30.012250.0005522.09
cymbals10.004200.005090.83
snare10.005850.010950.53
kick10.005470.008210.67
hat10.000850.000791.08

Every other drum stem drops inside the window, cymbals to 0.83, snare to 0.53, kick to 0.67. The cymbal figure is the one that bears on this audit: the cymbal is quieter through the fill, and my upload wrote twenty unbroken sixteenths across it. That ratio carries no null test of its own and is reported as an observation.

The repair list, 21 measures

Every row is measured from the live r8968524 payload. "Collisions" counts cymbal strokes sitting on a sixteenth a tom already occupies, which is where a hand has to leave the cymbal.

indexdisplay barmetertoms cymbal hitscollisionssub-16th colliding 16thsdrums used
13144/4415334.0, 5.0, 6.0HighFloorTom
14155/46204416.0, 17.0, 18.0, 19.0HighFloorTom, HighTom
20215/44203316.0, 18.0, 19.0HiMidTom, HighTom
26275/43203016.0, 17.0, 18.0HiMidTom, HighTom
28295/46205312.0, 14.0, 16.0, 18.0, 19.0HiMidTom, HighFloorTom
32335/45203416.0, 17.0, 18.0HiMidTom
40415/46206012.0, 13.0, 14.0, 16.0, 17.0, 18.0HighFloorTom
42435/45204416.0, 17.0, 18.0, 19.0HiMidTom
44455/4620606.0, 9.0, 12.0, 13.0, 14.0, 16.0HiMidTom, HighTom
48495/46206010.0, 12.0, 16.0, 17.0, 18.0, 19.0HiMidTom, HighTom
54555/4720804.0, 13.0, 14.0, 16.0, 17.0, 18.0, 18.67, 19.33HiMidTom, HighTom
56575/411201104.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 19.0HiMidTom, HighFloorTom
60615/46205111.0, 14.0, 15.0, 17.0, 18.0HiMidTom, HighTom
62635/43203015.0, 17.0, 18.0HiMidTom, HighTom
64655/46205511.0, 14.0, 15.0, 16.0, 17.0HiMidTom, HighFloorTom, HighTom
72735/4320308.0, 9.0, 10.0HighFloorTom
78795/43202210.0, 12.0HighFloorTom
80815/4620613.0, 4.0, 7.0, 8.0, 9.0, 10.0HighFloorTom
82835/4820583.0, 4.0, 6.0, 7.0, 8.0HiMidTom, HighTom
84855/4620601.0, 2.0, 4.0, 6.0, 7.0, 8.0HiMidTom, HighFloorTom
88895/4620432.0, 3.0, 4.0, 18.0HighFloorTom

Sub-sixteenth tom beats, 41 of them

Position and length are in sixteenths inside the measure, zero-based from the downbeat.

indexdisplay barposition lengthdrums
13144.250.5HighFloorTom
13144.750.25HighFloorTom
13145.00.5HighFloorTom
141515.750.25HighFloorTom
141516.50.25HighFloorTom
141518.750.25HighTom
141519.00.75HighTom
202118.00.75HiMidTom
202118.750.5HiMidTom
202119.250.75HiMidTom
282918.00.75HighFloorTom
282918.750.5HighFloorTom
282919.250.75HighFloorTom
323316.00.25HiMidTom
323316.250.75HiMidTom
323317.00.5HiMidTom
323317.50.5HiMidTom
424316.00.75HiMidTom
424316.750.5HiMidTom
424317.250.75HiMidTom
424319.250.75HiMidTom
606110.750.5HiMidTom
646511.250.25HighTom
646514.00.5HiMidTom
646514.50.75HighFloorTom
646516.50.5HighFloorTom
646517.00.75HighFloorTom
787910.00.5HighFloorTom
787911.50.5HighFloorTom
80813.00.5HighFloorTom
82833.00.75HiMidTom
82833.750.25HiMidTom
82835.50.5HiMidTom
82836.00.25HighTom
82836.250.5HighTom
82836.750.5HighTom
82837.250.5HighTom
82837.750.25HighTom
88893.00.5HighFloorTom
88893.50.5HighFloorTom
88894.00.5HighFloorTom

What is not done, and the blocker

No corrected file was written and nothing was uploaded. Brandon is hand-editing the live tab right now, and r8968524 is his work. A machine pass over the whole part would overwrite it. The local upload_ready/watermelon-v9.gp is one revision behind the live head, so a corrected build needs a fresh export of r8968524 first.