Frank Zappa · drums Vinnie Colaiuta · built 2026-09-07 · 286 pedal hi-hat and 147 rebound ghosts added in a new voice, with voice 0 untouched
Brandon called the snare figure from the ear before anything was measured: a hit followed by two rebound ghosts. The measurement agrees. The hi-hat took longer, because the first two tests I ran were both wrong and one of them was wrong in a way that looked like a strong result.
Everything new sits in a second voice. The drum staff carries 5/4 bars alongside 9:8 and 11:8 tuplets, and re-rhythmising notation like that is the rhythm red zone, so voice 0 keeps every beat id, every rhythm and every note it had.
This ran first. A pitch in one stem never proves that instrument played it, and this tab carries 1,724 notated ride events sharing the same band. Two measurements settle it, and neither one uses the tab or the alignment.
| stem | median onset decay | envelope corr. with hat | energy above 8 kHz |
|---|---|---|---|
| hat | 52 ms | 1.000 | 58.2% |
| cymbals | 348 ms | −0.015 | 39.2% |
| snare | 174 ms | 0.131 | 10.0% |
| kick | 23 ms | −0.005 | 0.9% |
A 52 ms decay is a pedal chick. A cymbal wash is 348 ms. An envelope correlation of −0.015 with the cymbal stem means this is not ride residue.
The eighth-note period was predicted from the tab's own tempo before the test ran, so the fixed-period row carries no multiple-comparison inflation.
| test | R | null | ratio | z | p |
|---|---|---|---|---|---|
| fixed eighth, 0.5423 s | 0.1576 | 0.0494 | 3.19x | 4.11 | 0.0010 |
| best of a 660-period sweep, 0.5400 s | 0.2039 | 0.1487 | 1.37x | 3.91 | 0.0033 |
| quarter, 1.0845 s | 0.0460 | 0.0716 | 0.64x | — | — |
A free sweep across 660 candidate periods from 0.30 s to 3.60 s lands on 0.5400 s, which is 0.41% from the predicted eighth. Its own ratio reads low because a max-over-660 statistic was given a max-over-660 null. The foot plays eighths, and it does not play quarters.
An early grid test scored the unexplained hat onsets at 0.02x to 0.04x of chance, far below the floor, which reads as a clean negative. It was circular. Residual is defined as more than 45 ms from any notated event, every notated event sits exactly on the grid, so the exclusion by itself forces occupancy below chance. The replacement pushes the null through the identical exclusion filter, and the same data then reads 1.14x to 1.34x.
All 944 eighth slots in the score already carry a notated ride event. Not one slot is free for an unambiguous per-slot reading, so the notation follows the resolution the evidence has rather than pretending to a finer one.
| stage | test | result |
|---|---|---|
| 1, per bar | hat energy ON the eighths vs the 16ths between them | 46 of 105 bars clear 1.5x |
| 1, null | same test, grid rotated by a 16th | 17.1% of bars clear |
| 1, effect | true grid vs rotated grid | 2.56x |
| 2, per slot | slot peak vs that bar's own offbeat median | 286 of 416 kept |
| measurement | value |
|---|---|
| multi-onset snare clusters | 157 of 180 |
| loudest stroke FIRST | 118, 75.2% |
| loudest in the middle | 28, 17.8% |
| loudest LAST, a drag | 11, 7.0% |
| follower amplitude / leader | 0.327 median, under 1.0 in 91.2% of pairs |
| intra-cluster gap | 52.2 ms median, sd 25.0 ms |
| notated-snare coverage, leaders | 36.9% |
| notated-snare coverage, followers | 15.3% |
The gap spread rules out a detector re-triggering on its own decay, which would sit at a fixed multiple of the 5.8 ms analysis hop. Leaders are the strokes the tab already notates. Followers are the ones it omits.
The first build wrote every follower onset, which is what the measurement literally says. Rendering bars 12, 31 and 45 through alphaTab headless and looking at them showed a size-12 cluster smearing into a six-note run of parenthesised heads along the snare line. That does not read as hit-rebound-rebound. The second build keeps the two loudest followers per cluster, and the same bars now render as one ghost either side of the hit.
The count was not wrong. It was answering a different question from the one the notation has to answer.
| symbol | encoding | governed by |
|---|---|---|
| pedal hi-hat | articulation 6, staff line 9, the first space BELOW the staff, X notehead, closed by default | Weinberg, Guidelines for Drumset Notation, 1994 |
| rebound ghost | <AntiAccent>Normal</AntiAccent>, the parenthesised notehead | same |
Voice 0 compared on bar, position, midi, articulation, ghost, staccato and dynamic, with the same flags read on both sides, reported as a set difference rather than a count.
|source \ output| = 0 |output \ source| = 0 symmetric difference = 0 ghost-flagged |A\B| = 0 |B\A| = 0 staccato-flagged |A\B| = 0 |B\A| = 0
Bar 104 voice 0 falls one quarter short of its 5/4 signature. That is present in the transcriber's own file, in the pre-sweep original and in the live export alike, so it was carved out by name and left exactly as written.
Two-way, one-to-one matching on the mir_eval.onset convention, so a single loud
onset cannot absorb many written events. Every rate carries its circular-shift chance figure.
Floor is 1.5x.
| lane | written | onsets | A rate | A chance | A ratio | B rate | B ratio | unsup. written | unnotated audible |
|---|---|---|---|---|---|---|---|---|---|
| kick | 107 | 652 | 0.430 | 0.127 | 3.40x | 0.071 | 3.53x | 61 | 606 |
| snare, author only | 193 | 637 | 0.508 | 0.091 | 5.61x | 0.154 | 4.36x | 95 | 539 |
| snare + our 147 ghosts | 340 | 637 | 0.721 | 0.092 | 7.80x | 0.385 | 6.39x | 95 | 392 |
| toms | 6 | 665 | 0.500 | 0.101 | 4.96x | 0.005 | 4.03x | 3 | 662 |
| cymbal | 1778 | 1074 | 0.204 | 0.177 | 1.15x | 0.337 | 1.06x | 1416 | 712 |
Adding the 147 rebound ghosts moved direction A from 5.61x to 7.80x and direction B from 4.36x to 6.39x, while unsupported-written stayed at 95. It did not rise, so not one of the 147 was placed where the stem has no onset. Unnotated audible fell from 539 to 392, which is those 147 onsets now carrying notation.
Kick, snare and toms clear the floor in both directions. The cymbal lane is the only one that does not.
The notated ride is a dead-even 16th pattern: 866 events on eighths, 858 on the 16ths between them, 0 anywhere else. Inside the 46 passing bars it is exactly 391 and 391.
| position, both carrying a NOTATED RIDE STRIKE | n | median hat-stem peak |
|---|---|---|
| ride on an eighth | 391 | 0.1193 |
| ride on the 16th between eighths | 391 | 0.0062 |
| ratio | — | 19.3x |
Equal ride strikes on both sides, and the hat stem answers only on one. Ride bleed cannot produce that asymmetry. Decay agrees: at the 286 placed slots the hat stem decays in 46.4 ms and the cymbal stem in 348.3 ms, a 7.5x separation.
Each placed pedal hi-hat gets three independent readings rather than one ratio: a DISCRETE local peak rather than raised energy, a hat-like decay, and whether the cymbal stem carries its own event at that instant.
| verdict | all 286 | of the 46 under 3x contrast |
|---|---|---|
| SUPPORTED | 207, 72.4% | 26 |
| AMBIGUOUS | 8, 2.8% | 4 |
| UNSUPPORTED | 71, 24.8% | 16 |
Nothing was deleted on this reading. The 71 UNSUPPORTED notes carry raised energy with no
discrete peak, and 55 of them sit ABOVE 3x contrast. Full per-note table with bar, beat,
stem seconds, contrast, prominence and both decay figures in
out/AUDITION-hat-notes.csv.
The 0.327 ratio measured each follower against its own cluster leader, so it only ever said the leader is louder. It is blind to which of the two carries the marking. Settling it needs a reference population built independently of the cluster structure, and the tab supplies one: all 193 notated snare events carry ghost false, staccato false, dynamic F and the same lane, with zero accents anywhere on the snare.
| reference class for ORDINARY | leaders | followers | separation |
|---|---|---|---|
| onsets matched one-to-one to notation, n=98 | +2.9 dB | −7.7 dB | 10.6 dB |
| written positions above a histogram trough, n=186 | +11.2 dB | +0.6 dB | 10.7 dB |
| written positions with a discrete attack transient, n=99 | +1.5 dB | −9.2 dB | 10.7 dB |
The separation is 10.7 dB in all three. Only the zero point moved. The middle row put roughly 48 near-silent written positions inside ORDINARY, dragging the reference down about 10 dB and producing a false accent reading. The third row settles membership on an objective criterion: a real quiet stroke has an attack transient, noise floor does not.
| population | dB vs ordinary | percentile in ordinary |
|---|---|---|
| cluster leaders | +1.5 | 64.7 |
| cluster followers | −9.2 | 36.6 |
A written accent normally runs 6 to 10 dB over ordinary. The leaders are 1.5 dB over, so the accent reading is refused. The followers are 9.2 dB under, short of the 15 to 25 dB a textbook ghost implies, so the ghost reading is supported and not proven. What the audio carries is an ordinary leader and a distinctly softer follower, and the parenthesis is the standard way to write a quiet unaccented stroke.
94 of the 193 written snare positions carry no attack transient at all, only noise floor. That agrees with the lane table's 95 unsupported written events, reached by a different route. Roughly half the snare notation on this tab has no audio under it.
He said we are missing some kicks. I ran three grid tests, got 1.00x to 1.32x, and wrote it up as a failed search. A grid test asks whether unnotated onsets land on the 16th grid. Watermelon is rubato and Colaiuta is not locked to a 16th, so real strokes fail that test while being entirely real. It had no power to decide the question either way.
| lane | median offset, written event to nearest detected onset |
|---|---|
| kick | −17.4 ms |
| snare, the lane the clock was fitted on | +11.6 ms |
Centred, both. So 652 kick onsets against 107 written events is a real gap in the notation.
At measured positions on the 64th grid, no quantisation to a musical grid, gated at −6 dB of the unnotated population's own median. 398 placed.
| notation | written | A rate | A ratio | B rate | B ratio | unsupported written |
|---|---|---|---|---|---|---|
| author only | 107 | 0.430 | 3.40x | 0.071 | 3.53x | 61 |
| author + our 398 | 505 | 0.879 | 7.02x | 0.681 | 6.93x | 61 |
It did not move, so not one of the 398 was placed where the kick stem is silent. Direction B goes from 0.071 to 0.681, so the tab now accounts for 68 of every 100 audible kick onsets instead of 7.
| test | ratio |
|---|---|
| candidates vs the 334 notated bass events | 1.02x |
| candidates vs 1,433 isolated bass-stem onsets | 1.00x |
| the author's own written kicks vs the same bass onsets | 1.96x |
Not bass bleed. The author's kicks lock to the bass at 1.96x, which is what a kick part does.
A global 16th quantisation made the page readable and merged 44 evidence-backed events on the way, which changes the performance rather than its display. Replaced with a per-bar adaptive grid: each bar takes the coarsest resolution that loses nothing.
| approach | events kept of 831 | rest beats | ties |
|---|---|---|---|
| original build, 64th throughout | 831 | 574 | 0 |
| tie chains | 831 | 105 | slurs across the bar |
| global 16th | 787 | 86 | 0 |
| per-bar adaptive | 831 | 120 | 0 |
Per-bar grid: 16th on 55 bars, 32nd on 29, 64th on 9. The tie version was rendered with alphaTab and thrown away, because slurs arcing across a bar read worse than the rests they replaced. Look at a notation change before shipping it.
ACCEPTANCE GATE, evidence-backed events must survive notation hat planned 286 placed 286 OK ghost planned 147 placed 147 OK kick planned 398 placed 398 OK PASS, nothing merged away
Voice 0 already had a set-difference-zero check protecting the author's material. The added material now has the same protection, and it runs before the file is written.
Roughly six per bar on a slow ballad. Brandon called it fraud and he was right.
The fault was the gate, not the stem. Kick and snare were scored against the author's own written events. The tom lane had 6, too few for that, so intensity was scored against the candidate population's own median. A self-referential reference cannot reject a population that is mostly artifact, and 650 of 662 candidates passed.
| reference class tried | result |
|---|---|
| candidates' own median | 650 of 662 pass, 5.7 per bar |
| toms-stem level at the author's snare strokes | that level is 0.3, so 662 of 662 pass |
| the author's own 6 written toms | candidates median 44.2 against his 24.8 |
The last row is the answer. The detected candidates are LOUDER than the strokes the transcriber actually called toms, and two of his six read 0.0 and 7.5 in that stem. Drumnet's hand chart of this take, read at native resolution, shows ride with snare and kick underneath and toms only as short runs at phrase ends. Toms stay out.
Asked whether I had taken everything from the chart, the answer was no. I had used it as a yes/no on toms and stopped. Reading it properly changes nothing on the tab and confirms three of the four changes.
| what the chart shows | bearing on this repair |
|---|---|
| ride as continuous 16th X noteheads on the top line | matches the tab, supports one accent per quarter |
| kick written far denser than the tab's 107 | the 398 additions, 505 total, sit in the right range |
| a SECOND row of X noteheads lower in the staff, which the tab has none of | corroborates a hi-hat voice the tab omits |
| no tom noteheads in the sampled systems | agrees with the revert |
Drumnet serves this chart at 595 by 842, the source's own resolution, with no larger version to fetch. Staff spacing is 5 pixels. The notehead reader returns 63 filled heads for a two-bar system that visually holds a handful, because at that spacing an erosion cannot separate a notehead from a beam junction. The chart supports the DIRECTION of each change and cannot supply exact counts. The lane of that second X row stays open: a hand hi-hat sits above the top line and a pedal hi-hat below the staff, and this scan cannot resolve which.
| lane | state | what closes it |
|---|---|---|
| snare, kick, toms | CLOSED | all three clear 1.5x in both directions |
| snare accent-vs-ghost | SETTLED | accent refused at +1.5 dB, ghost supported at −9.2 dB |
| kick | CLOSED | 398 placed, 3.40x to 7.02x, unsupported-written flat at 61 |
| hi-hat | OPEN | audition the 71 UNSUPPORTED notes against the isolated hat stem, keep or pull each |
| cymbal | OUT OF REACH | 1,074 onsets against 1,778 written caps direction A at 0.60; observed 0.204. This method cannot adjudicate a continuously played ride at 16th density |
part name 'Vinnie Colaiuta' 105 measures 85 with 2 voices, 20 with 1
voice 0 ride 1724 snare 193 kick 107 crash 53 pedal hat 6 toms 6 other 2
ghost-flagged 1317
voice 1 pedal hi-hat 286 snare 147, all 147 ghost-flagged
All nine track names survived the import. Both the source and the upload carry 137 CDATA blocks, and that is the variable which decides whether names travel.