Keep It Greasey: the tempo, measured

Keep It Greasey: the drum staff, validated in both directions

Frank Zappa, Joe's Garage, 1979. Songsterr s604777, live tab r8852151 by Ben Dibden1, part 8 "Vinnie Colaiuta", 248 bars, 4,948 drum events, 629 ghost flags. Re-pulled and re-verified at the start of this pass and again at the end.

Eight procedures now place bar 102's downbeat, seven of them between 197.88 and 198.20 s, beside the printed 3:18 marker. They are not independent: all eight read the same score and the same recording, and six read the same fifteen-stem separation, so their agreement is partly shared method. Only the printed marker is free of the stems. One of them passed a gate written down before it ran. The five drum lanes then tested that map from outside. Snare, hat and tom are clearly better under a window slid one bar later, kick leans the same way by one unit, and cymbal is flat.

Session of 2026-09-07. Nothing here has been uploaded to Songsterr. The tab is unchanged: 4,948 notes, 629 ghost, 0 of 629 positions moved.

4,948drum events inventoried
9,757stem onsets detected
5 of 5lanes tested both directions
0resolved through audio alignment
0 of 248bars surviving their own check
682unresolved events listed one by one
0repairs applied
4bugs found in my own work

1. The inventory, and the 22 events the old census missed

Every drum event in the live tab now has a stable id, a bar, a position in sixteenths, a subdivision, a score time, a lane, a staff line, ghost and accent flags, a voice, a duration and a count of simultaneous events. After three parser corrections all 248 bars balance exactly against their own time signature.

LaneEventsGhostAccentFamily
snare, GM 381,4236290snare
kick, GM 351,31100kick
closed hat, GM 4253300hat
open hat, GM 4642800hat
ride bell, GM 5328200cymbal
pedal hat, GM 4419500hat
crash, GM 4917300cymbal
low-mid tom, GM 47170029tom
floor tom, GM 4311200tom
hi-mid tom, GM 48109020tom
ride, GM 518700cymbal
low tom, GM 4585011tom
hand clap, GM 392100on the snare line
low floor tom, GM 411400tom
hi tom, GM 50300tom
splash, GM 55100cymbal
high timbale, GM 65100on the kick line

The project record listed fifteen lanes and 4,926 events.

It omitted GM 39 and GM 65, which is 22 events. Both are on this page as findings.

2. Both directions, every lane

Direction one asks whether each notated lane has audio that can hold it. Direction two asks whether each stem carries reliable events the score omits. The audio count is a detector setting rather than a fact, so it is swept instead of quoted once.

LaneNotatedδ 0.01δ 0.03δ 0.05δ 0.08δ 0.12Where the notated count falls
kick1,3111,3741,3431,3401,3351,324below every setting, by 13 to 63
snare1,4231,9521,6241,4261,179926within 3 events at δ 0.05
hat1,1562,1461,6991,2821,102974between δ 0.05 and δ 0.08
cymbal5431,7801,134684541411within 2 events at δ 0.08
tom4931,6161,3171,154892633between δ 0.08 and δ 0.12

For every lane there is a setting where the two counts nearly meet. A threshold can be tuned to any target, so that alone settles nothing. The next section is the part that cannot be tuned.

3. Is the surplus a real stroke or residue

Take the loudest N detections, N being the notated count, and ask two questions about the rest.

Test A, the histogram

A stem carrying two real dynamic populations is bimodal. Residue is one mode with a quiet tail.

LaneOnsetsValleyDipReading
kick1,343none—one population, no quiet class
snare1,624-18.63 dB0.302two populations
hat1,482-28.74 dB0.009one mode with a quiet tail
cymbal875-40.17 dB0.041one mode with a quiet tail
tom1,154-35.49 dB0.446two populations

The snare valley reproduces an earlier result from a fresh run.

The 2026-09-06 arbitration found the valley at -19 dB with a different picker. This run, independent of it, puts it at -18.63 dB.

Test B, the grid

Do the events land on a sixteenth at the measured 136.7 BPM? The phase-uniform baseline is 0.4557 at 25 ms tolerance. A jitter null lands at 0.433 to 0.491, so two independent baselines agree.

LaneNotated-count setSurplus setVerdict on the surplus
kick1.889x1.646xclears 1.5x candidate missing notation
snare1.887x1.501xat the line the quiet population
hat1.694x1.369xbelow reads as residue
cymbal1.782x1.223xbelow reads as residue
tom1.289x1.706xinverted the stem is contaminated

The tom row is upside down.

Its loudest 493 detections are less grid-locked than its quiet 661. That is what a contaminated stem looks like, and it is why no tom claim appears anywhere on this page.

4. What the notation says about itself

The file stores loudness twice, as a ghost bracket and as a sticky beat dynamic. Resolving the dynamics in notated order needs no audio at all.

ppppppmpmfffffff
629 flagged129437633114000
794 unflagged003107541845

Mean dynamic rank 2.227 against 4.031, a gap of 1.804 ladder steps. Mann-Whitney z = -30.58, effect A = 0.0907.

Within-bar spacings: the flagged set sits 1 or 2 sixteenths apart on 62.89% of its gaps, the unflagged set on 35.88%. Permuting the ghost label among snare events inside each bar, 2,000 draws, gives a null mean of 0.5391. Observed is 1.167x the null with 0 exceedances of 2,000 draws, which is p = 0.00050 under the same finite-sample estimator. The ratio is modest, so the right reading is strong evidence under this within-bar permutation model rather than certainty.

Two constructions agree without ever meeting.

The 2026-09-06 stem arbitration found the quiet snare population at 1 and 2 sixteenths and the loud at 3 and 5, from audio alone. The notation says the same thing from its own side, with no alignment between the two.

5. The anchor, four procedures

Whole-song kick-sequence DTW, criteria fixed before the run

CriterionDeclaredObserved
coverage85% within 50 ms88.5%pass
slope0.98 to 1.020.9938 to 1.0257fail
stability6 of 8 blocks within 100 ms1 of 8invalid test
held-out cymbal1.5x over chance2.80xpass

The stability criterion was invalid as written. Fixed-endpoint DTW forces the remaining score across the same audio when an interior block is removed, which is why it reported 60 to 87 second disagreements. It is reported as a failure rather than quietly redesigned.

Split-half independent fits

Two maps fitted on overlapping halves disagree by 11.6 s across their 60 s overlap, with a range of only 441 ms. One fit has slipped by a near-constant lag. At 2.7 kick onsets per second that lag is about 31 events, close to the 32-event surplus.

18a2dd, the slope-gated chroma DTW

Bar numbers here are read from the Songsterr part JSON for revision 8852151, saved as raw/8.json and inventoried in score_event_inventory.csv.

The earlier chroma DTW failed, and every disagreeing run also had a broken warp slope. That filter was chosen after seeing the results, so it was selection. This run declared it first, then ran three band radii against three windows, nine cells of nine runs each.

CriterionDeclaredObserved
within-cell stability7 of 9 cells under 100 ms9 of 9, ranges 0 to 23.2 mspass
across-cell agreementmedians span under 100 ms0.4 mspass
not a band artifactunder 0.60 of its own bandmax 0.427pass
survivorship4 of 9 runs kept per cell4 or 5pass

All four pass. Bar 102's downbeat maps to 197.880 s.

This is the first anchor procedure on this song to clear a gate declared in advance.

04ae20, the three parts that were skipped

PartStemLandmarksModelHeld outChanceOver
Frank Zappa sololead17constant0.8750.4292.04x
Ike and Denny harmoniesbacking_vocals20constant0.9000.9600.94x
Warren Cuccurullo part 1rhythm6constant0.0000.4110.00x
Arthur Barrow, controlbass183affine0.4950.3071.61x
Ike Willis, controlvocals27affine0.6150.6880.89x

The lead part clears, which gives the second passing external source the earlier run said it lacked. The two then disagree: lead puts bar 102 at 198.197 s and bass at 200.870 s. The harmonies row is unevaluable, since a chance rate of 0.960 leaves no room for a result.

02a84f, the calibrated null

The 1.5x rule compares an observed rate to an analytic baseline and says nothing about what the fitting procedure manufactures on its own. Each draw destroys the correspondence, then reruns the whole procedure including the train and test split.

SourceObservedIOI-shuffle p95Reverse p95Null maxp
Frank Zappa solo1.750x1.4581.4582.0410.0300
Arthur Barrow bass1.826x1.3250.5371.5400.0017
Ike Willis vocals1.231x1.1191.2311.4540.0549
Peter Wolf wurlitzer0.459x2.2943.6704.5880.9201
Warren Cuccurullo part 70.992x0.9750.6311.1720.0266

Every p is the finite-sample estimator (r + 1) / (n + 1) over 600 draws. A permutation p of exactly zero is not a possible value, so bass with 0 exceedances of 600 reads 0.0017 rather than 0.

The 1.5x rule is not calibrated.

On the piano source the offset scan manufactures 3.670x from scrambled data. Part 7's small p sits beside an observed ratio of 0.992, which is the baseline itself, so that p carries no alignment signal.

6. Why a passing gate still places no note

All four of 18a2dd's criteria measure whether the retained runs agree with each other. None of them measures whether the runs are right.

Extending the same procedure across the song exposes it. Evaluating the identical slope gate at each window's centre instead of at bar 102 drops two windows to 0 of 9 retained and leaves one window keeping seven runs that span 2,066 ms. The gate is location-dependent.

Holding it to its own survivorship floor across a 110 s window leaves 14.0 s of usable map, which is 2.8% of the song, in two stretches: 193.50 to 197.00 s and 254.25 to 264.75 s. Six bars fall inside. The five contiguous ones were then scored under a window slid by minus one, zero and plus one bar, every shift measured on the same three interior bars so that no shift wins by dropping one.

Laneshift -1shift 0shift +1Best
kick432+1 by one unit only
snare20174+1
hat192511+1
cymbal131414flat, votes for nothing
tom23204+1

The drum lanes never entered this map, so they are an outside check.

Three lanes clear a margin of 2 or better for the later window: snare 17 to 4, tom 20 to 4, hat 25 to 11. Kick leans the same way by a single unit, 3 to 2, which is inside the noise of three bars. Cymbal is flat at 13, 14 and 14, so it votes for nothing. The sample is 3 bars, which makes this indicative rather than settled. It is enough to stop any instance-level claim.

Corrected 2026-09-07. This card first said all five lanes preferred the shift, then four of five. Both came from a summary line that counted any non-zero best shift as an improvement, which swept in cymbal's flat row because its minimum sits at -1 by one unit. Caught on review of this published page.

7. The four findings

KIG-M001, bar 231, position 7 sixteenths: GM 65 on the kick staff line

One event in 4,948. It sits inside a repeating hat-plus-kick figure whose other string-4 events are all GM 35. The numbers 35 and 65 differ by one character. This needs no audio and no anchor, and it is the one candidate ready to apply.

KIG-M002, 21 GM 39 hand claps drawn at the snare position

Bars 22 to 32, 42 to 44, 65 and 82. All sit on staff line 1.5, so they draw as snare and sound as a clap. GM 37 side stick appears nowhere in the file, so GM 39 is this tab's only alternative snare-line articulation. The placement is certain and the intent is not recoverable.

KIG-M003, 114 ghost flags whose resolved dynamic is mf

Bars 104 to 105, 107 to 111, 119 to 122, 124 to 127, 130 to 142, 145 to 147, 186 to 187, 201, 227 and 231. The mark mf is the unflagged population's own, carried by 754 of its 794. The two encodings disagree and no evidence on disk says which is meant.

KIG-M004, 32 kick onsets with no notation

They sit 7.66 dB below the notated set's median, the smallest gap of any lane, and land on the grid at 1.646x baseline. That roughly 32 kick events are unnotated is supported. Which ones is not, because the anchor does not convert an audio time to a bar.

8. Bugs found in my own work

  • Dot and tuplet double-count. Songsterr's duration array already carries both, so applying them again pushed 88 of 248 bars past their own signature. After the fix all 248 balance.
  • A null that could not fail. The first grid test rotated onset times circularly, which preserves every inter-onset interval and returns the data. It scored 1.001x on every set including the loud ones.
  • A leave-one-out that could not work. Fixed-endpoint DTW cannot hold out an interior block.
  • A shift test biased by its own edges. Scoring shift +1 over one fewer bar lowered its total mechanically. Rescored on the interior bars only.

9. Completion

One frozen file fails the prose gate on purpose.

PREREGISTRATION_kick_dtw.md repeats a sentence opener. It is left exactly as written, because its sha256 2d7aa32c…1cdaf9a is the evidence that its criteria predate its run. Editing a pre-registration afterwards to improve its prose destroys the only thing it is for.

MeasureResult
lanes with an isolated stem5 of 5 kit families
lanes tested in both directions at passage level5 of 5
events covered by passage-level adjudication4,926 of 4,948
events resolved through audio alignment0
score-internal exact repair candidates1, KIG-M001
bars with a surviving two-direction result0 of 248
reliable audio events found with no notation32 kick
repairs applied0
unresolved events listed one by one682 = 629 + 21 + 32
final revision8852151, unchanged

Why zero repairs is the correct number here.

Two findings are unresolvable at instance level without an anchor. Two sit on another author's published tab, and the standing rule is that a revision never goes onto an original: open it, create a copy to edit, rename the copy with Brandon edit, and revise that. Publishing is an outward action and it waits on Brandon's word.

10. The gate the next attempt has to pass

18a2dd passed four criteria fixed in advance and was still a bar out, because all four asked whether the retained runs agreed with each other. The next pre-registration needs a criterion that measures absolute identity instead, and it is written and hashed already: PREREGISTRATION_absolute_bar_identity.md, sha256 da96a659…05d71847.

Frozen landmarks, before any fitting

At least twelve landmarks from two source families, both excluded completely from the fitting, at least six per family, covering before, inside and after the passage. Every row records score bar, subdivision, audio timestamp, annotation uncertainty, source family, and the evidence that its phrase is unique within two neighbouring bars. Fewer than that returns UNEVALUABLE, never a negative.

The integer-shift contest

Score the fitted map against shifts of minus two through plus two bars on identical landmarks and identical assignment rules. Zero shift passes only when it uniquely minimises error inside each family, its median absolute residual is under 75 ms, its ninetieth percentile is under 150 ms, the nearest competing shift is at least 250 ms worse, and at least eleven of twelve landmarks prefer it.

The target-excluded drum check

Kick, hat and cymbal only, since snare carries the disputed flags and the tom stem is contaminated. Twelve consecutive interior bars, identical events under every shift, and zero shift must win separately for every retained lane and for their pooled cost, with a block bootstrap interval favouring it. Any source family choosing another bar returns FAIL.

This gate rejects the current map.

Lead and bass, the only two external sources that survive the calibrated null, disagree by 2.673 s, so the external-family requirement fails outright. Kick, snare, hat and tom all lean towards plus one bar and cymbal is flat. The 197.880 s map has internal stability with no verified absolute identity.

A pass would validate only the span between the first and last frozen landmark. Every individual flag needs anchors bracketing its own score location, so a whole-song result needs the gate run again over every flagged region.