Watermelon In Easter Hay, the chart's toms written into the tab

Frank Zappa, Joe's Garage Act III. Songsterr s35881, drum track, Vinnie Colaiuta. Source is the Drumnet.ru drumset chart by BartoRomeo. Built 2026-09-08.

toms at the start 6 toms after 185 added from the chart 179 bars touched 46 of 105 voice 0 changed not at all

What was asked, and what the file now holds

The ask was to add the chart's tom locations to the Watermelon GP file, with the legend given directly: the toms are the G, the D, and the F above the F, and anything carrying an x notehead gets skipped.

The tab carried six tom notes at the start of this pass, four Low Tom and two High Tom, and all six sit inside the 96 bars the chart transcribes. The chart carries 179 filled tom noteheads over those same bars that the tab never received. All 179 are now in the file, at the bar and beat the transcriber drew them.

Every added note was read off the printed chart. No onset detector was run and no audio was scored. A build on 2026-09-07 wrote 599 toms from an audio detector and was rejected as fraud, since its intensity gate scored candidates against the candidates' own median.

The legend, and how the staff maps to the kit

The chart is a five-line drumset staff. Numbering the positions from the top line down, 0 for the top line and 8 for the bottom, the note letters read in the treble names a drummer uses: E on the bottom line, F, G, A, B, C, D, E, F on the top line.

lane 0 ───── F top line TOM, the F above the F + the ride, written with x noteheads lane 1 E (GP High Floor Tom lives here, midi 50) lane 2 ───── D TOM lane 3 C SNARE lane 4 ───── B (middle line) lane 5 A lane 6 ───── G TOM lane 7 F lane 8 ───── E bottom line KICK

The Guitar Pro file already agrees with that reading. Its own drum kit definition stores a StaffLine for every articulation, and the numbers are the same scale: Snare sits at 3, Ride at 0, High Tom at 2 and Very Low Tom at 6. So two of the three tom positions carry straight across with no interpretation at all.

Chart positionLaneFilled headsGP articulationMIDIStaffLineFit
the F above the F, top line035High Floor Tom (hit)501one position lower
the D, fourth line298High Tom (hit)482exact
the G, second line646Very Low Tom (hit)436exact
One position had to move, and here is why. The kit in this file puts the Ride on StaffLine 0, the top line, and carries no tom articulation there. The chart's top-line tom therefore takes the highest tom slot the kit does have, StaffLine 1, which sits one position lower on the page. Pitch order survives, 50 above 48 above 43, and so does the reading of high, mid and floor. Adding a tom articulation at StaffLine 0 would mean editing the InstrumentSet, which is a larger change than this ask, so it was left alone.

Skip anything with an x on it

The top line carries two instruments at once: the ride, drawn with x noteheads, and a tom, drawn with filled ovals. Reading the top line naively would import the whole ride part as toms.

The two separate on ink. Measuring the mean darkness of a five by five pixel box centred on each head, an x leaves its four edge midpoints on white paper and a filled oval does not. On the top line, where the decision actually has to be made, the two populations do not touch:

PopulationCountInk, mean of a 5×5 boxReading
x noteheads, top line57104 to 127ride, skipped
watermark letters and noise, top line18131 to 158not notation, skipped
nothing at all, top line0159 to 185the empty gap that makes the cut safe
filled tom heads, all three lanes179186 to 220kept
snare, a filled control154median 220control
kick, a filled control410median 201control
Both counts are chart heads over the chart's own 96 bars. The tab holds 177 snare and 99 kick across those same bars.

Across all three tom lanes the same cut skips 64 x-like marks, 33 watermark fragments and 4 more in the 160 to 180 band, and keeps 179.

All 179 kept heads were then looked at, not sampled. Every one was cropped at 16× and inspected on a contact sheet. Every tile is a solid oval. Not one x survived the cut.

Which bar each tom belongs to

The chart runs 96 bars and the tab runs 105, so the two had to be tied together first, since a wrong offset writes every note into a wrong bar. Chart display bar n is GP display bar n plus 9.

That offset is not a guess. The chart carries nine rehearsal marks and the tab carries eleven named sections, and every one of the chart's nine lands on a named section at the same offset, including a solo that runs exactly 24 bars in both:

Chart barChart markGP barGP sectionOffset
1A10Head 1+9
17B26Bridge 1+9
25A34Head 3+9
33Solo I42Solo+9
57A66Head 4+9
65A74Head 5+9
73B82Bridge 2+9
81A90Head 6+9
89Coda98Outro+9

Two more facts agree with it. The 96 chart bars fill GP display bars 10 through 105 exactly, with none left over at either end. And the meters line up throughout, since the chart alternates 4/4 and 5/4 and so does the tab from its second bar onward.

Where in the bar

Inside one bar this engraving is close to linear in time. On page 1 system 1 the filled heads sit at 79.3, 128.3, 164.8, 176.8, 225.9 and onward, whose smallest gap is 11.9 pixels and whose other gaps are 24.4, 36.4 and 48.8. That is one sixteenth note per 12.2 pixels, and sixteen of them land on the bar's own closing barline.

So each bar was fitted with a single free parameter, the x of its downbeat, with the sixteenth width forced to (x_end − x0) / nsub. Across all 96 bars the fitted width came out at a median of 12.22 pixels, from 11.43 to 13.46.

MeasureValueMeaning
Bars fitted96 of 96no bar dropped
Median position error0.10 of a sixteenthabout 1.2 pixels, the centroid noise floor
90th percentile0.21
Worst single note0.28inside a sixty-fourth
Written as sixteenths135
Written as thirty-seconds35
Sitting on a sixteenth triplet9placed on a sixty-fourth grid, 1/12 of a sixteenth away
The nine triplets are the one honest compromise. They are real thirds and the build writes them on a sixty-fourth grid rather than minting tuplet groups, which puts each about one pixel from where it was drawn. That is smaller than the read's own median error, and every one is listed by bar in the build log.

Bar by bar, the chart against the tab

Three pictures per bar: the printed chart, the tab as it stood, and the tab carrying the chart's toms. The added voice draws in grey, so everything black is untouched original.

Chart bar 16
Drumnet chart, bar 16
GP bar 25, as it stood
tab bar 25 as it stood
GP bar 25, with the toms
tab bar 25 with toms
Eight on the D and two on the top-line F, a fill across beats 3 to 5 of the 5/4.
Chart bar 20
Drumnet chart, bar 20
GP bar 29, as it stood
tab bar 29 as it stood
GP bar 29, with the toms
tab bar 29 with toms
Four on the D, then three on the G, the fill walking down the kit.
Chart bar 48
Drumnet chart, bar 48
GP bar 57, as it stood
tab bar 57 as it stood
GP bar 57, with the toms
tab bar 57 with toms
The densest bar on the chart. Ten on the D in a row, then one on the G.
Chart bar 74
Drumnet chart, bar 74
GP bar 83, as it stood
tab bar 83 as it stood
GP bar 83, with the toms
tab bar 83 with toms
Three on the D into five on the top-line F, the fill climbing instead.

All 179, by bar

Positions are counted in sixteenth notes from the downbeat, so 0 is beat 1 and 4 is beat 2. A 4/4 bar runs 0 to 15 and a 5/4 bar runs 0 to 19.

GP barChart barToms F above the FDG

How the reading was made, and where each method stopped

Finding every system on the page

Two earlier detectors under-counted and both failed the same way. A staff line spans about 97 percent of the staff width, so counting pixels darker than a fixed threshold looks safe. That rule fails here, since this scan darkens unevenly down the page, and on page 1 the line at row 280 sits at grey 112 while the line at row 353 sits at 176. A threshold of 150 sees the first and misses the second, which lost two systems on page 1 and three on page 5.

The row median does not care what the grey happens to be, because the line covers more than half the row. Under that rule the page yields 48 systems with perfectly regular gaps, 8 then 11, 11, 11 and 7, which is 96 bars at two per system, and every printed bar number on all five pages agrees.

Finding the barlines

Full staff height of ink alone returns 9 to 28 candidates per system where 3 exist, because a stem running from a low notehead up to its beam covers the staff too. What separates them is the poke-out: a barline stops at the staff and a stem continues into its beam. One system on page 4 has a beam passing over its middle double bar, so there the test relaxes to nothing below the staff, and the middle bar is then chosen by the 16 to 20 sixteenth proportion the two bars must share.

What is still uncertain

Verification

Note instances, original
2091
Note instances, rebuilt
2270, which is 2091 plus 179
Ride, snare, kick, crash, hats
identical counts on both sides, voice 0 was never opened
Toms now
High Floor Tom 35, High Tom 100, Low Tom 4, Very Low Tom 46
Bar-length anomalies
47 in the source, 47 in the output, none of them new and none in a bar this build touched
Voices
945 to 991, which is 46 new ones, one per touched bar
CDATA blocks
137 to 137, so track names survive a Songsterr import
Other zip entries
byte-identical to the source
Rhythms minted
none, every value the build needed was already in the file

The toms went into voice slot 1, which was empty on all 105 drum bars. Nothing was displaced, and deleting that voice returns the file to its exact starting state.

A second reading of the same chart, uploaded in parallel

While this build was running, another session read the same Drumnet pages and published its result to the copy tab s6857183, "Watermelon In Easter Hay Brandon edit". Revision 8968036 landed at 17:17 UTC and 8968524 at 17:43. Quoting that revision's own note, not this build: the chart supplied the tom count and the drum, Moises stems supplied the timing, its tom total is 164, with 34 held back where the stem did not carry the chart's count. The total for this build is 179, and that is the number behind every figure on this page.

What the two agree on

The bar alignment is confirmed by a third route. The live tab's section markers sit at exactly the bar indices this build used, Bridge 1 at index 25 and Solo at 41. Sweeping a bar shift across the two tom sets peaks at zero, 59 matches, against 6 and 7 at plus or minus one.

32 of the 48 tom-carrying bars hold identical per-drum counts in both reads, and the G lane totals 46 in each. Two pipelines that share nothing but the printed page landed on the same answer across two thirds of the music.

Where they differ, and what the page shows

GP barThis buildLive tabWhat the chart shows at 9×
25103a run of ten filled ovals fills the second half of chart bar 16, eight on the D and two a position higher
1536three solid ovals in chart bar 6, one on the top line and two on the D, none on the G
95, 97, 99, 100, 101, 103, 104190the Coda, marked p, pp and "cymbal on dome", is where a stem gate is least able to hear a soft tom
14, 9306not yet inspected
The two builds are not the same size of change. This one adds toms and nothing else, over the chart's 96 bars, with voice 0 byte-identical. The live revision rewrote the whole kit across all 105 bars: kick 107 to 504, snare 193 to 342, pedal hi-hat 6 to 245, ride 1724 to 1522. Only the tom lanes were compared here, so nothing on this page judges the rest of that revision.

Scope record for the counts, as the governing skill asks for

The revised perfect_stem_read_skill_WATERMELON_REVISED.md verifies on this Mac: SHA256 94276444…84e1b1, 287 lines, 7,767 words, all three exact. Its line 155 requires every published comparison count to carry an explicit scope record, and its line 273 names the Watermelon snare figures specifically. This is that record.

I first read its "101 cymbals" and "41 fractional tom positions" as measured claims and suspected a transposition. That was wrong. Both appear at line 211 as examples of claims the skill forbids, and 101 matches r8968524's tom-and-cymbal coincidence count exactly. The document is warning against converting queue sizes into repairs, which is the correct rule.

The snare pair, reconciled

FieldValue
Chart artifactDrumnet.ru, Watermelon In A Easter Hay, BartoRomeo, 5 pages, 595×842 px
Tab artifactRESTORED-s35881-TEXTSAFE-v2.gp, from s35881 revision 8908034
Measure rangethe chart's own 96 bars, GP display 10 through 105
Tracks and voicestrack 8 only, voice 0 only
Event definitionchart side, visible filled noteheads on lane 3; tab side, Guitar Pro note objects with midi 40
Ghost and grace policyghosts counted, no grace strokes present on the snare lane
Reader versionchart_heads_full.py with the ink cut at 180, systems from systems_median.py
Reconciled pair154 chart heads against 177 tab snares
Why 193 differs193 counts all 105 tab bars; the nine the chart never transcribes hold 16 snare
Where 340 comes fromr8968036's snare total over all 105 bars; r8968524 holds 342

Two figures worth a second look

ItemDocumentMeasured hereMeasured on the live payloads
Sub-sixteenth tom positions414451 in r8968036, 49 in r8968524
Drummer named at line 271BozzioVinnie Colaiuta. The Guitar Pro file names track 8 "Vinnie Colaiuta", and Joe's Garage is his date. Bozzio played the earlier Zappa records.

Events and distinct positions come out equal in all three reads, so the 41 gap is not an events-against-positions difference.

Where the document corrects this read, and it is right

Line 271 calls the three-tom ceiling a reader-representation defect, and line 105 says a chart showing three visible tom lanes cannot cap the audio reader at three physical drums. That lands: every one of the 179 events here was assigned to just three MIDI values because the chart draws three lanes, and the kit exposes six. Line 271 also says the chart's lane names cannot be recycled into a stem classifier as independent evidence, which is the same circularity the staff guard flagged.

Bar 25 agrees with the document's calibration from the other direction. Line 263 states the hand-verified ten-note figure belongs to the ordinary sixteenth grid. Read off the engraving with no audio, this build placed those ten at 9.5, 10, 11, 12, 13, 14, 15, 16, 17 and 18 sixteenths, so nine sit exactly on the grid and one sits a thirty-second early.