Watermelon In Easter Hay: ride-ghost reproduction

Songsterr s35881, drum track "Vinnie Colaiuta", tab PRESWEEP-r7715683.gp. An earlier pass reported that ghost-marked ride positions matched a cymbal-flux criterion 1.45 times as often as a randomised baseline. This page rebuilds that measurement from the hashed inputs with a saved script set, and reports what survives.

Revised 2026-09-06, later the same day. The detector is now reconciled exactly. An earlier version of this page attributed the published threshold 4.41 to a 2000–5000 Hz band. That was wrong. The documented 2000–12000 Hz band was right, and the difference was the flux operator. That version's shared-excursion section is withdrawn. The headline ratio is unchanged.

1,724ride occurrences
2ride note definitions
1AntiAccent element behind 1,316 ghosts
99.9%ghost predicted by metric position
0.98×reproduced ratio, principal config
80.01percentile of 4.41, reconciled
1 / 1,479excursions serving >1 position
5,469held-out alignment tests

The short version

REPRODUCED The tab counts, the alignment constants, the published threshold 4.41 at percentile 80.01, and the finding that no supra-threshold excursion serves more than one scored position.

NOT REPRODUCED The 1.45× result. Three ranges appear on this page and each names a different subset:

RESTATED The 1,316 ghost notations come from one AntiAccent element on one shared note definition, so the file records one labelling decision rather than 1,316 per-stroke judgements.

  1. The matched-control attack test
  2. \n
  3. The definition census
  4. The sweep mechanism
  5. Ghost census reconciled
  6. 1,724 against 596
  7. Detector specification
  8. The detector, reconciled
  9. Alignment, locked
  10. The threshold sweep
  11. Three scramble procedures
  12. Double counting ruled out
  13. Spectral identity of disputed positions
  14. Positive control
  15. The decay-prediction test
  16. The notation-evidence gate verdict
  17. \n
  18. Both tracks reconstructed
  19. \n
  20. The ledger and three corrections
  21. \n
  22. The discrepancy is the null
  23. \n
  24. The observed-rate gap is the window
  25. \n
  26. The 1.19x vs 1.45x gap, reconciled
  27. The eye overrules the detector
  28. Published notation authority
  29. Ghost against staccato
  30. Withdrawn and historical
  31. Inputs and scripts

0. The matched-control attack test, and it is the first positive result

Every earlier test compared ghost positions against OTHER GRID positions

The scramble preserves position within the bar, so it always landed on the same sixteenth lattice. That design could never ask whether the lattice itself carries strokes. This one does.

Design. From each on-beat plain ride at t0 with a log-linear decay fitted over t0+30 ms to t0+250 ms, score the three notated offbeat slots at t0 + 271.1, 542.2 and 813.3 ms against off-lattice controls at t0 + 135.6, 406.7 and 677.8 ms, halfway between them, where the score notates nothing. One detector scores both and it never receives ghost status: sparse log-compressed subband novelty, k=8, 1,322 peaks at 2.42/s, 30 ms tolerance. Controls are matched to slots by nearest predicted decay level, median absolute log-level gap 0.0085, so decay depth is held fixed.

setmatchedrotation-null recallgainzverdict
notated offbeat slots31.2%14.4% ± 4.2%+16.8 pts4.02UNDETERMINED
decay-matched off-lattice4.6%14.6% ± 4.2%-10.0 pts-2.40UNDETERMINED

The asymmetry is the finding. Notated positions sit 16.8 points above their rotation null while decay-matched off-lattice points sit 10.0 points below theirs, a 26.8-point separation between two sets scored by one detector under one null model. For the controls, 99.8 percent of null draws matched as well or better.

Across 563 decay-matched pairs: notated 171 of 563 = 30.4%, control 31 of 563 = 5.5%, difference 24.9 points, paired permutation over the label with 5,000 draws one-sided p = 0.0002.

slotdecay agenotatedcontrolratio
1271 ms26.1%5.8%4.50×
2542 ms34.9%6.2%5.63×
3813 ms30.5%4.3%7.09×

The ratio does not fall as the preceding strike decays, which is the opposite of what residual decay predicts. Five of eleven sections favour the notated position at Benjamini-Hochberg q < 0.05, strongest section 3 at 55.1% against 4.3% with 35 of 35 discordant pairs favouring the notated position.

The gate still returns UNDETERMINED, and that is not a negative

z = 4.02 sits under the 5.0 confirm floor, and under this gate UNDETERMINED is never evidence against a tab. Collapse diagnostics are clean: 1.00 attacks per used onset, busiest onset 1 of 681, residual bias +5.4 ms, median absolute residual 16.8 ms, density CV 0.37 against a 0.6 bar.

Supported: an attack is present at the notated offbeat positions that decay-matched off-lattice points do not carry. Not supported: the identity of the striking instrument. This is evidence of an event, not of a Ride (middle) stroke.

1. The definition census

GPIF deduplicates <Note> definitions, so a ghost flag lives on a definition and one element can produce many notated occurrences. Reading the definition table directly:

definitionoccurrencesAntiAccentdistinct Beat defsbars
id 4311,316Normal91 to 102
id 432408absent91 to 104

id 432 is the property-identical plain counterpart

Every stored property matches id 431 apart from the AntiAccent element: InstrumentArticulation 15, Midi 51, Fret 51, String 5, ConcertPitch and TransposedPitch C-1, and beat Dynamic F on 100 percent of occurrences in both. Definition identity introduces no confounding property.

The confound that does survive is metric position

position in the beatid 432 (plain)id 431 (ghost)
on the quarter-note beat4072
offbeat sixteenth, slot 10405
offbeat sixteenth, slot 21456
offbeat sixteenth, slot 30453

Ride plain on the beat, ride ghosted on the three offbeat sixteenths. Two events out of 1,724 break the rule. Only 2 ghosted ride notes sit on a beat, so a metric-position control is impossible in this tab.

2. The sweep mechanism, established structurally

ride definitionsride occurrencesdrum ghost occurrences
pre-sweep r77156832 (431 ghost, 432 plain)1,7241,317
post-sweep r87684141 (id 418, no flag)1,7240

Definition 431 did not survive with its flag stripped

It does not exist in the post-sweep file at all. The two ride definitions were merged into a single id 418 carrying all 1,724 occurrences and 18 Beat definitions against 9 and 9 before. The note table was renumbered wholesale, which is the signature of an export and import round trip rather than an attribute edit. The one extra Crash high ghost came from id 428.

Restoration consequence. Writing AntiAccent onto id 418 would ghost all 1,724 occurrences, including the 408 that were never ghosted. Copy-on-write is mandatory: the repair splits id 418 back into two definitions by occurrence position, and the ledger records definition changes and expanded occurrence changes separately.

3. Ghost census, reconciled by track and scope

Three figures circulate. All three are correct at different scopes.

scopepre-sweeppost-sweep live
whole file, all 9 tracks1,33316
track 0 "Frank Zappa", guitar1616
track 8 "Vinnie Colaiuta", drums1,3170
track 8, Ride (middle) only1,3160
track 8, Crash high only10
tracks 1 to 700

1,333 = 1,317 + 16. The sweep removed the drum-track flags and left the guitar flags untouched.

4. The 1,724 against 596 question, closed

PRESWEEP-r7715683.gpAI transcription
tracks9, drum track 8 "Vinnie Colaiuta"3, drum track 1 "Drums"
bars105279
meters53× 4/4, 52× 5/4230× 4/4, 48× 2/4, 1× 6/4
tempo56 BPM, one automation135 then 110 BPM
total quarter notes4721,022
notation span3.75 to 500.36 s40.89 to 545.71 s
Ride (middle)1,724596
snare laneElectric Snare MIDI 40, 193Snare MIDI 38, 11
Hi-Hat closed0125
Pedal Hi-Hat60
Kick107475

The snare lane changes MIDI number and drops from 193 to 11. Closed hat goes from 0 to 125. Kick rises from 107 to 475. The bar grid more than doubles. Removing AntiAccent preserves note instances and cannot do any of that. Two independent transcriptions of two different renderings. Deletion, rebar and flag stripping are all excluded.

5. Detector specification, stated completely

elementdefinition
audioone channel, arithmetic mean of the two stem channels, float in [-1, 1]
windownp.hanning(1024), applied unnormalised
hop256 samples at 44,100 Hz = 5.805 ms
magnitudeabs(rfft(frame * window)), no scaling by NFFT or window sum
fluxframe difference, negatives set to zero, then summed (L1) over band bins
frame 0previous frame taken as zeros, so flux[0] = 0
thresholda percentile of the strictly positive flux values
matchpresence: any single frame inside ±45 ms whose flux exceeds the threshold

The match rule is presence, and it is neither a local maximum nor a separately identified onset. Consecutive frames from one excursion can support a match, and one broad excursion can serve more than one window. The correct description of a positive is "matched the flux criterion".

6. The detector, reconciled

The 3.51× threshold gap was an operator difference. The band in the written spec was correct.

operatordefinition80th pct of positive flux, MP3, 2000-12000 Hz
B, the published onesum the band first, then take the positive first difference4.407
A, used in the first version of this pagedifference each bin, rectify, then sum14.303

Operator B puts 4.41 at percentile 80.01

Stereo MP3 read float32, unweighted channel mean to mono, no amplitude scaling, np.hanning(1024), 256-sample hop, frame-start timestamps, summed rFFT magnitude over bins 2000 to 12000 Hz inclusive, positive first difference, threshold at the 80th percentile of strictly positive flux. Operator A rectifies before summing, so nothing cancels and it runs about 3.2 times larger. Every result carrying threshold 15.487 came from operator A and is withdrawn.

A match means the maximum positive flux inside a ±45 ms window exceeds 4.41. It identifies no instrument and no discrete onset, so the wording throughout is "matched the flux criterion".

7. Alignment, locked and exposed

The scoring clock is piecewise-linear through the accepted snare anchors. The global line seeds anchor matching and supplies the pruning residual. No ride event is scored against the global line.

quantitythis reconstructionpublished
offset37.590 s37.60 s
scale1.01221.012
effective tempo55.33 BPM55.34 BPM
snare onsets detected616 (1.13/s)615 (1.13/s)
anchors97137 (not reproducible)

Alignment error against anchor gap, 5,469 held-out tests

"Anchor gap" means distance to the nearer bracketing anchor. Withholding every third anchor from a dense set never creates a large gap, so error at 10 to 20 s needs deliberate thinning.

anchor gapnmedian90th pctmaxover 45 ms
2 to 5 s1,59222.7 ms52.0 ms113.5 ms15.6%
5 to 10 s1,58227.6 ms60.7 ms101.6 ms25.5%
10 to 20 s1,33729.8 ms75.5 ms132.6 ms31.0%
20 to 40 s74027.0 ms70.9 ms152.0 ms27.7%
over 40 s21840.5 ms87.1 ms150.2 ms45.9%

Degradation is gradual. No band keeps its 90th percentile inside the 45 ms detector half-window, so alignment error contributes misses everywhere. The distance filter stays exploratory and a 10 s cutoff does not establish reliable performance across the region it keeps.

8. The coincidence result under the correct detector

quantitythis reconstructionreported
observed ghost61.2%71.3%
observed plain65.9%75.3%
per-note eligible-only null62.2% (sd 0.012, 95% 0.597-0.643)49.0% (sd 0.013, 95% 0.465-0.517)
ratio0.98× (95% 0.95-1.02)1.45× (95% 1.38-1.53)

Alignment cannot account for the gap

A rigid offset sweep from -150 to +150 ms under the reconciled detector peaks at exactly 0 ms with 61.2 percent. So 61.2 percent is the maximum obtained under the tested rigid global offsets, and the 71.3 percent discrepancy cannot be explained by a global timing shift. It does not rule out local alignment differences, a different anchor selection, or the unresolved 97 against 137 anchor discrepancy.

Two numbers reproduce exactly and two do not. The threshold and the no-double-counting result reproduce. The observed rate and the null mean do not, and the residual difference is not yet located.

9. Block-preserving nulls

Contiguous runs displaced together with within-block spacing preserved, alongside the per-note procedure. All under the reconciled detector at threshold 4.41.

null procedureeligiblenull meansd95% intervalratio ghost
per-note eligible-only100.0%0.6220.0120.597-0.6430.98×
block of 498.3%0.6230.0190.586-0.6600.98×
block of 894.4%0.6270.0260.576-0.6740.98×
block of 1694.1%0.6230.0310.566-0.6780.98×

The measured association is stable across the tested per-note and block-preserving randomisations. That is a narrow statement about the procedures tested, and it is not a claim of independence from every possible dependence structure.

Meter eligibility, and what the interval means

A position at or beyond 4.0 quarter notes exists only in 5/4 bars. 200 of 1,724 ride notes (11.6 percent) sit there and are ineligible for every 4/4 destination. Eligibility checks meter and the anchored span together. Instrumentation, arrangement and local cymbal activity stay uncontrolled.

The 95 percent interval is the 2.5th to 97.5th percentile of the null hit rate across randomisation draws. It describes variability under the randomisation only, and carries no uncertainty from alignment, detector validity, extraction quality or recording identity.

10. Double counting ruled out

Under the reconciled detector, supra-threshold excursions run median 6 ms, 90th percentile 17 ms, max 81 ms, and none exceeds 181 ms, so none can span two windows spaced 271 ms apart.

quantityvalue
scored positions, all occupying distinct (bar, position) slots1,724
excursions satisfying at least one scored position1,479
excursions satisfying more than one1

Withdrawn from the first version of this page

That version reported 24.7 percent of ghost hits sharing an excursion against 71.0 percent scrambled, and a 1.47× distinct-excursion ratio which it attributed to scramble clustering by inference. The cause is now demonstrated rather than inferred.

Crossing operator against null, so the cause is shown

Two candidates could produce the 1.47×: the collision structure of the per-note null, or the operator whose long excursions let one run serve several notes. Crossing both settles it.

operatornullcollidedratio, hit rateratio, distinct excursions
A per-binRIGID9.2%0.98×0.97×
A per-binPER-NOTE42.3%0.98×1.50×
A per-binPER-NOTE collision-free11.9%0.98×1.01×
B band-sumRIGID9.2%0.98×0.97×
B band-sumPER-NOTE42.3%0.98×1.54×
B band-sumPER-NOTE collision-free11.9%0.98×1.01×

The collision structure causes it, and the operator does not

The distinct-excursion ratio reaches 1.50 to 1.54× only under the colliding per-note null, and it collapses to 0.97 to 1.01× under both the rigid and the collision-free nulls, in both operators. The hit-rate ratio stays at 0.98× in all six cells.

11. Spectral identity of disputed positions

Reference exemplars are plain ride positions that matched the flux criterion with the nearest anchor inside 3 s, giving 171. The disputed set is ghost positions at the same anchor quality, giving 770. Features measured on the mono MP3 from 30 ms before to 180 ms after each position.

featureplain medianghost medianghost / plain
transient peak0.02540.01020.403
attack-to-floor ratio4.2271.4800.350
post-peak RMS, 30 ms0.02090.00720.346
decay ratio, 100-180 ms over 0-30 ms0.4940.6561.327
pre-window RMS0.00520.00551.049
attack time11.5 ms11.1 ms0.969
spectral centroid9,009 Hz8,138 Hz0.903
share 9 to 16 kHz0.3890.3450.886
share 5 to 9 kHz0.3740.4241.134

Section-matched over 12 equal sections, 9 of which carry at least 5 of each: transient peak lower at ghost positions in 9 of 9 sections, attack-to-floor lower in 9 of 9, decay ratio higher in 7 of 9.

Reading it descriptively

At ghost positions the cymbal band shows a much lower transient peak, a far weaker attack relative to the local floor, a flatter decay profile and a darker spectrum with less 9 to 16 kHz content. Those four together are what residual decay from a preceding strike looks like, since cymbal highs shed fastest.

The design cannot separate decay from a genuinely soft stroke. Ghost positions are always the offbeats immediately after a plain strike, so decay sits there whether or not a soft stroke was also played. No classifier accuracy is claimed and no individual position is adjudicated.

11b. Positive control, under the reconciled detector

An offset sweep from -200 to +200 ms. The snare control uses the snare stem with the same band-sum operator over 200 to 4000 Hz at its own 80th percentile.

setpeakfloorpeak / floor
notated snare in the snare stem66.8% at -60 ms20.7%3.23×
plain ride in the cymbals stem65.9% at 0 ms30.4%2.17×
ghost ride in the cymbals stem61.2% at 0 ms38.8%1.58×

The control recovers real temporal structure, so the method works. Both ride sets peak at 0 ms, which the first version of this page did not show because it used the wrong operator. The ghost set has the shallowest peak-to-floor contrast of the three, consistent with sitting inside a continuously active cymbal texture.

11c. The decay-prediction test

The sharpest question this data can be asked: does a disputed ghost slot carry energy beyond the predicted tail of the preceding verified plain ride strike?

For each strong plain on-beat exemplar at time T, a log-linear decay is fitted to the smoothed envelope over T+30 ms to T+250 ms. That window is clean, because the next notated ride sits at T+271 ms and nothing else is notated inside it. The fit is extrapolated to the notated ghost slot at T+271 ms and to an off-grid control at T+135 ms where the score notates nothing at all.

188 usable exemplars from 224 candidates. Median fitted decay time constant 304 ms.

quantitymedianmeanshare above 1
excess at the notated ghost slot1.1531.48476.1%
excess at the off-grid control slot1.0931.14485.1%
paired difference, ghost minus control0.0590.34056.4%

Sign test on the paired difference: 106 of 188 positive, one-sided p = 0.047, two-sided p = 0.093. Both slots exceed the fitted tail, because real cymbal decay is not a single exponential. The notated slot exceeds it only marginally more than the off-grid control does.

What the flux comparison adds, and how it reconciles the 0.98×

Flux at the notated ghost slot runs 3.11× the flux at the off-grid control (median 9.878 against 3.179). Grid positions carry substantially more transient activity than off-grid positions.

That resolves an apparent tension. The scramble preserves position within the bar, so scrambled positions land on sixteenth-grid slots in other bars. The 0.98× therefore says a ghost slot is no different from other grid slots, and it never tested grid against off-grid. The grid itself is acoustically real. What the null cannot test is whether this particular slot carries a stroke, because every grid slot carries activity.

Spectral centroid is not usable here as stated: the control at 135 ms sits earlier in the decay than the slot at 271 ms, so it retains more high frequency for reasons of elapsed time rather than of a new strike. Plain strike 8,219 Hz, ghost slot 8,486 Hz, control slot 9,016 Hz.

Verdict of the decay test

In the envelope domain the notated ghost slot carries only marginally more excess over the predicted tail than an off-grid control does, at two-sided p = 0.093. That is weak and not significant. It does not demonstrate added strokes, and it does not exclude them.

11z. The notation-evidence gate overrules every rate on this page

/notation-evidence-gate and its verdict_gate.py were run before any done-claim. Both are the authority here, and they reject the rates on density grounds rather than on the cross-window finding.

claimobservedbaselineratioverdict
ghost ride vs grid-preserving null, 45 ms61.9%63.3%0.98×UNUSABLE, baseline over the 35% ceiling
plain ride vs grid-preserving null, 45 ms67.2%68.6%0.98×UNUSABLE
ghost ride, 65 ms window69.9%70.9%0.99×UNUSABLE
ghost ride vs the TIME-SHIFT null, the historical construction61.9%49.0%1.26×UNUSABLE, baseline over the ceiling

The historical 1.45× was unusable on density before any window question

Above a 35 percent chance baseline a small excess goes significant while meaning nothing. The historical 49.0 percent null sits well above that ceiling.

The prescribed repair, run

FMP 6.1.2, a sparser onset representation: log compression Y = log(1 + 100|X|), positive first difference per subband across 2-4, 4-6, 6-9 and 9-12 kHz, summed, local average over 300 ms subtracted, peak-picked with a 50 ms refractory gap.

claimobservedbaselineratiobinomial pverdict
ghost ride, k=8, 30 ms27.7%24.2%1.15×0.00174UNDETERMINED
ghost ride, k=6, 30 ms29.7%26.4%1.13×0.00385UNDETERMINED
plain ride, k=8, 30 ms27.7%24.2%1.14×0.0574UNDETERMINED

UNDETERMINED is the endpoint, and it is never evidence against a tab

Ghost at 1.15× and plain at 1.14× are indistinguishable, which is what the 99.9 percent metric confound predicts. Both sit below the 1.5× floor, so neither is carried as support.

Settled, symbol semantics and lane convention only. Weinberg makes a parenthesised notehead a ghost stroke and extends it to cymbals, so the 1,316 marks on the Ride (middle) lane are well-formed notation. Refused. He does not establish that Vinnie played 1,316 quiet ride strokes on this take. That is performance evidence, and the audio returns UNDETERMINED.

The gated claim set, HARD 0 under the gate, is at claims.md.

11k. Both tracks reconstructed

Numerator: five alignments built without the 97-anchor map

Chart tempo, global fit, kick-anchored and crash-anchored maps, across 240 configurations of source stem, band, operator, window and threshold percentile.

A clamping artefact was caught before publication

np.interp clamps any event outside the anchor span onto the endpoints. The kick map spans 4.3 to 384.6 notation seconds, leaving 390 of 1,724 ride events outside, piling onto two timestamps. Those 390 lifted the rate to 71.7 percent at the documented 45 ms window and briefly looked like a reconstruction at spec. Restricted to the 1,334 genuinely inside, the same configuration gives ghost 63.4 percent against a 64.7 percent null, ratio 0.98×.

With span restriction enforced, every configuration reproducing both reported rates uses a 65 ms window. No 45 ms configuration survives.

Denominator: eight nulls, detector and population frozen

null procedure16th phase keptmeter keptsection keptcollisionnullratio
shift by whole sixteenths100.0%0.0%77.9%37.6%63.7%0.97×
shift by whole beats100.0%0.0%24.4%38.3%62.2%0.99×
bar index, position-in-bar kept100.0%56.6%0.2%39.0%63.1%0.98×
bar index, meter must match100.0%100.0%0.3%39.8%62.4%0.99×
bar index, same section100.0%100.0%100.0%0.0%57.4%1.08×
one offset per source bar100.0%54.5%0.2%26.5%63.1%0.98×
shift by k × mean bar duration in TIME2.8%0.0%0.2%0.0%49.1%1.26×
uniform random notation time3.9%0.0%8.4%0.0%51.5%1.20×

The historical 49.0 percent is reproduced to 0.1 points by a displacement measured in time, with an unambiguous signature: sixteenth-phase preservation falls from 100 percent to 2.8 percent. Every phase-preserving procedure lands between 62.2 and 63.7 percent. Seed spread 0.38 points across three seeds, so it is stable rather than tuned.

The two do not share a window

windowghost observedplain observedtime-shift nullratio
45 ms, the spec61.9%67.2%49.0%1.26×
65 ms69.9%74.0%59.9%1.17×
historical71.3%75.3%49.0%1.45×

The historical 1.45× is a cross-window combination on a phase-destroying null

The numerator matches at 65 ms, the denominator at 45 ms. Taking the numerator from the 65 ms row and the denominator from the 45 ms row gives 1.43× against the historical 1.45×. Measured consistently at one window the ratio is 1.26× or 1.17×, never 1.45×. Both halves are now accounted for and neither survives a single consistent procedure.

11j. The ledger, and three corrections to my own earlier claims

Correction 1: the refined map is NOT independently validated

What I wrote: that the 123-anchor map "agrees with the 97-anchor version at a median difference of 0.0 ms", offered as evidence the refinement is sound.

Why that was wrong: the refinement searched a ±120 to 150 ms window centred on predictions from that same 97-anchor map. Agreement with the map that defined every search neighbourhood is circular. What it does show is stability under denser anchoring, a weaker claim.

Correction 2: the observed-rate gap was called unlocated

What I wrote: "the residual difference is not yet located". Why that was wrong: it is the match window. A 65 ms half-window gives 69.9 and 74.0 percent against the reported 71.3 and 75.3. The documented window is 45 ms.

Correction 3: "not reproducible at any threshold" was too broad

What I wrote: that the 1.45× is "not reproducible at any of 20 threshold and band settings". Why that was wrong: the detector reproduces exactly once the operator is right, and each reported figure is individually reachable. What does not reproduce is the two together.

The 14 unexplained anchors

137 reported minus 123 reached leaves 14 anchors unaccounted for. They are not noise. They could indicate another articulation category used as an anchor, a second stem, a looser tolerance rule, or manual intervention, and any of those would change how the historical map was built.

quantityhistoricalreproducedstatus
observed ghost rate71.3%61.9% at the 45 ms spec windowmechanism identified as window width; 65 ms gives 69.9%. Exact historical implementation unresolved.
null rate49.0%63.3% grid-preservingmechanism demonstrated as rhythmic phase destruction; off-grid gives 52.0%. Exact historical implementation unresolved.
ratio1.45×0.98×not recovered. The two figures need different window widths, so no single procedure yields both.

The 1.45× enrichment is not treated as recovered. Numerator and denominator are tracked as separate forensic problems, because they may come from two separate implementation choices.

11g. The discrepancy is the NULL, and its cause is measured

Anchors: 123 reachable by local-window refinement, and DTW failed

DTW was tried first. Over a sparse impulse reference the cost is near zero wherever both signals are quiet, so the warp slides: unconstrained it disagreed with the validated map by a median of 7.7 s, and inside a ±4 s Sakoe-Chiba band still by 2.1 s. The map was right and the method was wrong.

Local-window onset refinement works. Keeping the validated map and resetting each notated snare inside a ±120 to 150 ms window reaches 123 anchors from 97. All 122 local slopes fall inside 0.918 to 1.103, median residual against the global line is -9 ms, and it agrees with the 97-anchor map at a median difference of 0.0 ms.

Better alignment moves observed and null together

alignmentanchorsghost observedplain observednullratio
97 peak-picked9761.2%65.9%62.3%0.98×
123 window-refined12361.9%67.2%63.3%0.98×
reported13771.3%75.3%49.0%1.45×

Raising anchor density lifted the observed rate 0.7 points and the null 1.0 point. Alignment quality cannot produce the reported ratio, because it moves both terms.

A grid-breaking displacement reproduces the depressed null

The score alternates 4/4 bars of 4,286 ms and 5/4 bars of 5,357 ms, and the ride sits on a 268 ms sixteenth grid. A displacement preserving position within the bar keeps destinations on that grid. A displacement measured in time cannot, since no fixed interval is a whole number of bars in both meters.

displacement proceduredestinationsnullratio
by bar index, position-in-bar preservedon grid63.3%0.98×
by k × 4 quarter notesoff grid in 5/459.5%1.04×
by k × mean bar duration in timeoff grid52.0%1.19×
reportedunstated49.0%1.45×

Off-grid destinations depress the null and inflate the ratio

In the right direction and close to the right size. The measured cause is section 11c: flux at an off-grid point runs 3.11× lower than at a notated grid slot, so a null landing between grid positions samples quieter audio.

What this accounts for. The null gap is largely explained, 63.3 to 52.0 against a reported 49.0. What it does not. The observed-rate gap, 61.9 against a reported 71.3, with alignment now ruled out as the cause.

11h. The observed-rate gap is the WINDOW, and the deviations do not compound

Detector frozen at 2000-12000 Hz, sum before differencing, threshold 4.407, 123-anchor map. Only the rule turning a mapped position into a scored sample varies, applied identically to observed and null.

sampling ruleghost observedplain observednullratio
exact mapped timestamp, nearest frame8.0%10.0%8.1%0.99×
local max within 1 frame, 5.8 ms13.1%13.7%13.3%0.98×
local max within 2 frames, 11.6 ms22.3%24.8%23.2%0.96×
local max within 10 ms19.7%19.6%20.3%0.97×
local max within 45 ms, the spec61.9%67.2%63.3%0.98×
local max within 65 ms69.9%74.0%70.9%0.99×
local max within half a sixteenth, 135.6 ms91.7%94.4%91.4%1.00×
local max within one sixteenth, 271.1 ms97.6%97.5%97.5%1.00×

A 65 ms half-window reproduces both reported observed rates

69.9 against 71.3 and 74.0 against 75.3, each inside 1.4 points. The observed-rate gap is window width, and the documented window is 45 ms. The ratio stays 0.96× to 1.01× at every window, because widening it lifts the null as much as the observed rate.

Crossing the two deviations

windownull constructionghost observednullratio
45 ms, specon grid61.9%63.3%0.98×
45 ms, specoff grid61.9%52.0%1.19×
65 mson grid69.9%70.9%0.99×
65 msoff grid69.9%62.5%1.12×
reportedunstated71.3%49.0%1.45×

They do not compound, and that is the settled statement

The wider window that reproduces the reported observed rate also lifts the off-grid null from 52.0 to 62.5 percent, so the ratio falls from 1.19× to 1.12×. The best reconstruction reached is 1.19×.

Each reported figure is individually reachable: the observed rate under a 65 ms window, the null under an off-grid displacement at 45 ms. No single consistent parameter set produces both at once, because the window that lifts one lifts the other.

11i. The 1.19× against 1.45× gap, reconciled

The reported pair is 71.3 percent observed and 49.0 percent null. The observed figure needs a 65 ms half-window, so the question is what null reaches 49.0 percent at that same window. At 65 ms the observed ghost rate is 69.9 percent, so 1.45× requires a null of 48.2 percent.

null procedurenull at 65 msrationull at 45 msratio
shift by mean bar duration in time62.1%1.13×51.7%1.20×
mean-bar shift plus ±135 ms jitter62.6%1.12×51.8%1.19×
uniform random time in the span62.6%1.12×51.6%1.20×
required for 1.45×48.2%1.45×47.9%1.45×

The published pair requires two different window widths at once

Even a uniform random null, the most extreme grid-breaking possible, reaches only 62.6 percent at a 65 ms window. Nothing gets near 48.2 percent there. The reported observed rate is reachable only near 65 ms and the reported null only near 45 ms, so the two figures cannot both come from one consistent procedure. That is the whole residual, stated as a measurement.

11d. The eye overrules the detector

Read from Watermelon-In-Easter-Hay_p1.jpg as a native-resolution crop of a 595×842 scan, upscaled only for viewing. BartoRomeo, drumnet.ru, "Watermelon In a Easter Hay", From Joe's Garage Act III Record, for Solo Guitar & Drums, section marker (1:20) A.

the chart showsthis reconstruction measuredagreement
tempo mark quarter = 55.47snare-anchored effective 55.33 BPM0.25%
alternating 4/4 and 5/4 within each system53× 4/4 and 52× 5/4exact
ride as a continuous beamed sixteenth stream of X noteheads1,724 ride filling ~94% of eighth positionsexact
dynamic hierarchy written with > accentsDibden writes it with parentheses on offbeatssame content, two conventions

Two independent human transcriptions agree the ride runs continuous sixteenths

They differ only in how the dynamic hierarchy is marked. The detector says ghost positions match at the same rate as other grid positions, and the eye says every grid position is played, so those two statements agree rather than conflict. The eye governs, and the detector does not overturn either transcriber.

11e. Published notation authority

Norman Weinberg, "Guidelines for Drumset Notation", Percussive Notes, June 1994, page 20, section Ghost Strokes, plate Ex. 11 "Parenthetical Notes for Ghost Strokes". Read at 400 DPI from the image-only scan, which carries no text layer.

"It is recommended that parenthetical note heads be used to indicate ghost strokes... Ghost strokes written as parenthetical notes allow the use of this performance technique on any type of instrument (drums, cymbals, cowbells, etc.)"

Ex. 11 draws three parenthesised noteheads and the third is a parenthesised X notehead above the top staff line, a ghosted cymbal. The 1,316 ride ghosts are standard-sanctioned notation, so the sweep removed a convention rather than a defect.

11f. Ghost against staccato, one predicate on both sides

The Montana repair converted ghosts into staccato dots, a substitution a count check cannot see. Tested here with the same predicate applied to both flags in all three files.

fileAntiAccentStaccatoboth on one note
PRESWEEP-r7715683.gp1,31700
r8768414-LIVE-EXPORT.gp000
RESTORED-s35881.gp1,31700

No dot substitution happened on s35881. The sweep deleted flags cleanly, so the restore is a flag restoration plus the definition split, with no dots to remove.

12. Withdrawn, and historical

claimsourcewhy it falls
1.70×, null 42.0%superseded first passfallback contamination, 17.2% of destinations reverted
1.45×, null 49.3%evidence package s3not reproducible at any of 20 settings or under any of 3 procedures; every result lands at 0.95× to 0.99×
filtered 1.55× at 10 sevidence package s4filtered reruns give 1.00× to 1.05×
on-beat 297 ghost, 93 plainevidence package s5the tab holds 2 on-beat ghost notes
sign test 5 of 6 on-beat sectionsevidence package s6rests on that impossible partition
sign test 12 of 12 sectionsevidence package s6recomputed as 9 of 12, one-sided p = 0.073, two-sided p = 0.146
slot table, 257 plain on the beatghost audit s2notation gives 407 plain and 2 ghost
threshold 15.487 and every ratio resting on itthis page, first versionwrong flux operator, per-bin instead of band-sum
"4.41 comes from a 2000-5000 Hz band"this page, first versionthe documented 2000-12000 Hz band was right; the operator differed
"24.7% of ghost hits share an excursion"this page, first versionoperator A artefact; under the published operator, 1 of 1,479
174 duplicate ride timestampsthis page, first versionrounding artefact; all 1,724 slots are distinct
"1,316 separate editorial judgments"carried in the briefone AntiAccent element on definition 431

Historical, and not reproducible

Kept separate because no script on disk regenerates them: 137 anchors split 91 fit and 46 withheld, where the reconstruction reaches 97 and saturates near 116 even at a 250 ms acceptance window; band medians 18.1, 16.9 and 70.4 ms, where 1,337 thinning tests give 29.8 ms for the 10 to 20 s band; max withheld error 107.7 ms across 46 anchors, where the reconstruction gives 32 withheld points with a 55.6 ms max; and 1,626 scored with 98 outside the span, where all 1,724 map inside 59.33 to 506.08 stem seconds.

13. Inputs and scripts

rolebytessha256
PRESWEEP-r7715683.gp51,234687445e3371131fd87070055eb01b43984684d2b02140d0c060510799043a016
r8768414-LIVE-EXPORT.gp51,0285a8de7ebb7577ec8deb6db4397e302614b1df397f2c69e308202a882788abde4
RESTORED-s35881.gp74,93589ebaa33cf652320a0da36b7fd3827c6abda842f31d5ce25834ac03e52018ef1
cymbals stem .wav96,185,11884fd9fd648630c0d65945f7abe6e24994562ddf8d88960ad7dbc90722bade21b
snare stem .wav96,185,118d07d4cf6a91f1a30f0411bfe74df3d8bf52d4372a3f3378d09cd2aab99425062
AI transcription .gp36,190b5a69749c67fbcb5fa49bc78f94b9b0710a1db0efc0f92b0ae662bc3adf42b88

Earlier drafts printed 48 of the 64 hex characters. These are the complete digests. Scripts live at ~/Projects/_outputs/zappa-watermelon-ride-analysis/tools/: gpif_events.py, definition_census.py, onsets.py, align.py, anchor_sensitivity.py, threshold_sweep.py, scramble_variants.py, excursion_taxonomy.py, corrected_null.py, final_measures.py.

What this supports

The old Ride (middle) transcription is extraordinarily dense, filling about 94 percent of available eighth-note positions. Its 1,316 ghost occurrences originate from one shared AntiAccent note definition rather than 1,316 independent editorial decisions.

Under the reconciled detector on this audio with this alignment, ghost positions matched the flux criterion at 0.98× the rate of the tested null procedures, holding across per-note and block-preserving randomisations. The residual gap against the reported 71.3 percent observed and 49.0 percent null is not located, and it is not the threshold and not a global alignment offset.

Section-matched spectral measurement shows lower transient peak and weaker attack-to-floor at ghost positions in 9 of 9 sections, with a flatter decay profile. That is consistent with residual decay and does not exclude a soft stroke.

Individual Ride (middle) strike validity remains unresolved. No deletion revision follows. Failing this detector does not prove Ben Dibden1's transcription wrong, and nothing measured here overturns a transcriber's reading of the record.