Keep It Greasey: the tempo, measured

Frank Zappa, Joe's Garage, 1979. Songsterr s604777, live tab r8852151 by Ben Dibden1, part 8 "Vinnie Colaiuta", 248 bars, 4948 notes, 629 ghost flags.

Two publishers print quarter = 134 for the 3:18 guitar-solo passage. The recording plays that passage at 136.7, drifting from 135.7 to 137.9. This page shows the measurement, the controls that had to pass first, and the one asset that turned out to be synthetic.

Session of 2026-09-06. Nothing on this page has been uploaded to Songsterr. No ghost flag has been moved, added or removed.

136.7measured quarter at 3:18
134printed by two publishers
0.0167R at 134, below its own null
1,170 / 1,170metronome intervals on a 20 ms lattice
0.04BPM error at matched difficulty, end to end
0.48xquiet detections vs an independent separation
629ghost flags, all untouched

scope limit, read this first   What is measured is an audio window

Everything below establishes the tempo of the audio between 198 and 238 s. That window is tied to the printed 3:18 marker by the lead stem, which sits at digital silence through 197 s and enters at 198.275 s against a printed 198.000 s.

It is not established that this window is measures 102 to 104. That mapping comes from the tab's own score map. Queue item q-2026-09-06-acaf55 tested it and failed to establish it, and section 12 carries that measurement. Any sentence here that names a measure number is carrying an untested assumption, and the blocker-2 row in section 11 is labelled a scale estimate for exactly this reason.

  1. 1. The lock, and what came in
  2. 2. The metronome stem is synthetic
  3. 3. Nine values per interval
  4. 4. Control: the audio is not speed-shifted
  5. 5. Method, and the bias it replaces
  6. 6. The estimator, validated end to end
  7. 7. The metrical level, tested
  8. 8. The result at 3:18
  9. 9. The drift curve
  10. 10. What this settles
  11. 11. The three blockers, before and after
  12. 12. The anchor, unmeasured
  13. 13. Blocker 3, second separator
  14. 14. Drift simulation, untuned
  15. 15. Instrument-specific latency
  16. 16. The 13 px scan, classified
  17. 17. What stays open
  18. 18. Provenance

1. The lock, and what came in

inherited, unchanged   The instance-level test already ran and failed

An onset-by-onset comparison of Songsterr ghost flags against snare-stem detections returned 9 agreements of 20 where the base rate alone predicts 10.0. A permutation test over 20,000 shuffles of the ghost labels gave a shuffled mean of 8.89 and sd 1.36, so p(shuffled ≥ observed) = 0.739. Zero of 629 flags receive audio support.

That negative stands and this page does not revisit it. A detector disagreeing with a reading made by eye and by ear loses. The 629 flags stay where the transcriber put them.

The previous session closed with three measured blockers rather than an appeal to effort, and a queue item asking which of four tempo numbers is correct: the printed 134, the metronome stem's 136, the folder name's 142, and a local grid sweep peaking at 143.5. This page answers that item.

2. The metronome stem is synthetic

The previous session leaned on a stem named metronome in the 15-stem separation set, reading 136.00 BPM from it and using its first click as the phase anchor for grid tests. Before any tempo arithmetic, that asset was classified.

verdict   It is a beat tracker's output rendered to a wav

It is digital silence plus 1,171 bit-identical copies of one click sample. Nothing separated from the record is in the file.

TestMetronome stemSnare stem, same folder, same separation
Duration501.660 s501.840 s
Exact-zero sample fraction0.42380.0061
Samples remaining after masking 10 ms before and 350 ms after every click 1,561,721, every one exactly 0.0, peak 0.0not applicable
Distinct click peak amplitudes1, all exactly 1.0 at 0.0 dBFSnot applicable
Pairwise waveform cosine similarity, 685,035 pairs mean 1.000000, min 1.000000not applicable
md5 of 300 ms stereo windows, 64,405 windows 55 distinct hashes, each appearing exactly 1,171 timesnot applicable

A source separation cannot produce a stem shorter than its siblings, and it cannot produce 1,171 bit-identical transients at full scale over digital silence.

3. Nine values per interval

1,171 clicks give 1,170 intervals. Every single interval falls within one sample of a multiple of 882 samples, which is 20 ms at 44.1 kHz. The fraction inside two samples of that lattice is 1.0000. The beat times were produced at 50 frames per second and then rendered.

Each single interval can take nine values and no others. A run of alternating steps does encode an intermediate average, so the lattice constrains instantaneous values rather than long-window means. The claim below rests on one interval and on a median of intervals, and both are lattice-bound.

Lattice stepIntervalImplied quarter BPMCountShare
18360 ms166.667211.8%
19380 ms157.895756.4%
20400 ms150.00015913.6%
21420 ms142.85732227.5%
22440 ms136.36438332.7%
23460 ms130.43517414.9%
24480 ms125.000272.3%
25500 ms120.00080.7%
26520 ms115.38510.1%

withdrawn   "The metronome stem reads 136.00 BPM median"

That number is the 440 ms bin, which holds 32.7% of the intervals. Re-running the previous session's exact window, 190 to 212 s, reproduces its figures to the digit: 50 clicks, median 440.00 ms, p10 420.0, p90 480.0. The eight distinct interval values in that window are 380, 400, 420, 440, 460, 480, 500 and 520 ms, every one a lattice step. The p10 to p90 spread that was read as evidence the click track is not a fixed grid is the quantizer.

A quarter note at the printed 134 BPM is 447.76 ms, which this lattice cannot express at any step. No single interval in this stem can express 134, and its median can only land on a lattice step.

The folder name's 142bpm is the same instrument talking. 142.857 is the 420 ms bin and the mean interval across the file is 428.15 ms, which is 140.14 BPM. The filename and the metronome stem are one estimate, not two.

4. Control: the audio is not speed-shifted

The stem folder is named D minor-142bpm-442hz. A file that had been resampled to a 442 Hz reference would carry every tempo figure with it, so it was tested first, and the result gates every BPM figure below. Tuning was estimated per stem against the A440 equal-tempered grid, with 30-second windows for stability.

StemGlobal cents vs A440Implied A30 s windowsWindow medianRead
bass+14.0443.6 Hz16+18.2usable
lead+14.0443.6 Hz16+14.9usable
rhythm+8.0442.0 Hz16+6.1usable
piano+1.4440.4 Hz3+3.0too sparse
vocals-49.8427.5 Hz8-17.5unstable, discarded

control passes   Speed cannot explain the tempo gap

The three stems with sustained pitched content agree: the audio sits 8 to 18 cents sharp of A440, matching the folder's label. Taking A440 as the band's reference, that is a playback ratio between 1.0046 and 1.0104, so about 1.0% of speed under that assumption. The 134 to 142 gap is 6%.

stated limit   This assumes the band tuned to A440, which is not established here. The bound holds as written and the conclusion does not depend on the exact value inside it.

5. Method, and the bias it replaces

Onsets come from the summed kit, six stems: kick, snare, hat, cymbals, toms and other_kit. The measurement therefore no longer rests on quiet snare detections at -42 to -50 dBFS, which is the third inherited blocker. Onset detection runs at hop 128, 44.1 kHz.

The statistic is circular concentration over a candidate period T:

R = |mean( exp( 2πi · tk / T ) )|     E[R] under the null = √π / (2√N)

Phase is optimized implicitly, so no anchor click enters the measurement and the rendered metronome is never touched.

corrected   Why the earlier sweep peaked at 143.5

The previous statistic was the fraction of onset gaps falling within 25 ms of a sixteenth multiple. A fixed absolute tolerance against a variable period is biased toward short periods by construction. A random gap lands within τ of a multiple of T with probability 2τ/T.

At τ = 25 ms that is 44.7% for the 111.9 ms sixteenth of quarter = 134, and 47.8% for the 104.5 ms sixteenth of quarter = 143.5. The three-point tilt toward 143.5 is the tolerance. The earlier section's own quoted chance floor of 45.4% is that quantity.

6. The estimator, validated end to end

first version was too easy, and this replaces it

The original validation generated onset times and handed them to the estimator, so it tested the statistic and never the pipeline. It also returned R = 0.81 where the real window returns 0.4377, which means the synthetic was easier than the recording. Both faults are fixed below. Every run now synthesises audio and passes it through the same onset_strength then onset_detect chain at hop 128, 44.1 kHz, delta 0.03.

Signal built to the measured conditions of the 198-238 s window: onset density 7.3 per second, two amplitude populations 22 dB apart with a quiet share of 0.545, kit-like exponentially decaying broadband transients, and a -60 dBFS noise floor.

Clean condition, 12 ms jitter

True BPMRecovered medianMax absolute errorRDetector recallDetector precisionTiming bias
134.000134.00040.0240.8110.9970.997+5.45 ms
136.700136.71160.0130.8050.9930.997+5.51 ms
137.500137.50110.0140.7990.9930.997+5.53 ms
142.857142.85710.0270.7850.9870.997+5.70 ms

The detector reports every onset about 5.5 ms late. A constant shift leaves the period estimate untouched, because the statistic is phase-invariant. It matters for anchoring, and it is carried into section 12.

Matched difficulty, route A: raise jitter until R meets the real 0.4377

Jitter sdRRecovered median, true 136.7Max absolute errorMatches the real R
12 ms0.798136.6870.013no, far easier
18 ms0.611136.6870.037no
24 ms0.421136.6990.037yes
30 ms0.274136.6990.062no, harder
36 ms0.186136.67426.42no, past the cliff
42 ms0.168127.90427.58no, past the cliff

The method has a cliff and the real data sits well above it. Down to R near 0.27 the estimator holds to 0.06 BPM. Below R near 0.19 it breaks completely, missing by 26 BPM. The observed R of 0.4377 is roughly 2.3 times the breakdown level.

Matched difficulty, route B: model the measured drift instead of raising jitter

The 5-second table in section 9 shows the passage accelerating from 135.72 to 137.87. A linear ramp across exactly that range, with ordinary 12 ms jitter, was synthesised and run end to end.

ModelR producedR observed on the real audioRecovered medianTrue midpointBias
linear ramp 135.72 to 137.87, 12 ms jitter0.43470.4377136.44136.795-0.357 BPM

the low R is explained

Modelling the passage as a tempo ramp across the measured range reproduces the observed R to 0.003. The recording's R of 0.4377 is what ordinary drift over 40 seconds looks like, and it is not detector failure and not a wrong metrical reading. Under that model the single-window estimator sits 0.36 BPM low of the true midpoint, which is well inside the 2.15 BPM spread reported as the answer.

where the model still differs from the recording

The synthetic ramp carries uniform onset density. The real window does not: onsets thicken later, which is why the real 40-second single fit lands at 137.46, above its sub-window median of 136.66, in the opposite direction to the synthetic bias. Density weighting is therefore an unmodelled term, and it is one reason the sub-window curve is reported as the answer rather than the single fit.

7. The metrical level, tested

Calling 109.12 ms "the sixteenth" is a claim, so it was scanned rather than assumed. Wide sweep, 40 to 900 ms, over the solo passage.

PeriodReadingRvs null 0.0518
109.10 msthe fundamental0.43598.4x
54.60 mshalf of 109.10, so the same grid read at twice the rate0.24614.8x
218.24 msthe eighth0.0465below
327.36 msdotted eighth0.0337below
436.48 msthe quarter0.0299below
518.32 ms4.75 sixteenths, a quarter of the 19/16 bar0.0419below
2073.28 msone true 19/16 bar0.0376below

One fundamental and its half. A previous version of this table labelled 518.32 ms "one 19/16 bar", which was wrong: 518.32 ms is 4.75 sixteenths and the bar is 19 of them, 2073.28 ms. The bar period is now measured and listed, at R = 0.0376. Every longer multiple sits at or below the null, which is what a running sixteenth subdivision with no eighth-level accent looks like. Reading 109.12 ms as the sixteenth gives a 19/16 bar of 2.073 s, against the tab's notated 2.111 s for measure 102. Two independent routes to the same bar length settle the level.

8. The result at 3:18

Solo passage 198 to 238 s. Both Alfred page 64 and the DRUM Groove Analysis page mark this passage from 3:18, and the lead stem enters at 198.275 s against that printed 198.000 s, so the window is tied to the printed marker by audio. Nothing ties it to a measure number by audio. 293 kit onsets. A single best-fit period across the whole 40 seconds gives quarter = 137.46, R = 0.4377 against a null expectation of 0.0518, Rayleigh p = 4.2 × 10-25, and above all 200 draws of an interval-shuffle null whose max-R averaged 0.226.

CandidateWhere it comes fromR in this windowAgainst null 0.0518
134.000Alfred p64 and DRUM Groove Analysis0.0167below the null
135.000the tab's own automation at measure 1010.17863.4x
136.364the rendered metronome's modal bin0.05481.1x
142.857the folder name0.0236below the null
143.500the previous session's sweep peak0.06471.2x
137.463measured0.43778.5x

9. The drift curve

A single 40-second fit hides tempo drift, so the window was split. Every sub-window is individually strong, R between 0.59 and 0.83 against nulls near 0.15.

135.72198 s
135.89203 s
135.89208 s
136.86213 s
137.87218 s
136.46223 s
137.84228 s
137.44233 s

withdrawn   137.46 as the headline figure

Median 136.66, range 135.72 to 137.87, spread 2.15 BPM. The sub-window sequence rises overall and changes direction twice, and the 40-second single fit is weighted toward the later, denser windows. 136.7 with a 2.1 BPM spread is the honest figure.

Other windows, for completeness. Bootstrap intervals here measure onset sampling noise only. They do not measure tempo drift inside a window, and the table above shows drift is the larger term.

WindowOnsetsBest quarter BPMRBootstrap CI 95%p vs interval-shuffle null
198-238 s, the solo293137.460.438137.19 to 137.54<0.005, 0 of 200 draws
340-400 s517140.580.342139.53 to 140.66<0.005, 0 of 200 draws
400-460 s512135.330.262133.57 to 137.820.015
whole song3456137.870.107137.09 to 138.53<0.005, 0 of 200 draws

The song is not at one tempo, which agrees with the tab carrying 19 tempo automations between 64 and 139.

10. What this settles

not supported by this window   The printed 134 does not match what the recording plays at 3:18

It scores 0.0167, below its own null of 0.0518, in the same window two publishers print it. The measured value is 2 to 4 BPM higher. At most 1.0% of that gap can be playback speed, so the remainder is real. The estimator was validated to 0.03 BPM against synthetic ground truth including 134 itself.

refuted   143.5 and 142.857

143.5 was a tolerance artifact of the earlier statistic, and it scores 0.0647 here against a null of 0.0518. 142.857 scores below the null, and it was never independent evidence in the first place, being the same beat tracker's output as the metronome stem.

supported   The transcriber's own tempo map is the closest candidate

The live tab's automation reads 135 at measure 101. The audio at 198 to 203 s measures 135.72. A gap of 0.7 BPM, or 0.5%, and closer than every printed and machine-derived figure on the list.

coincidence, not evidence   The metronome's 136.364

It does land near the measured 136.7. That is a property of the lattice spacing. In this range a 20 ms grid can emit only 130.435, 136.364 or 142.857, so landing near a true value carries no information about the recording.

11. The three blockers, before and after

Blocker as inheritedStatus after this pass
1. Onset timing precision. 23 to 29 ms median absolute residual against a 111.9 ms sixteenth, 17 of 33 onsets inside 25 ms of the best grid. disqualified as stated
The best-scoring grid was anchored on the first metronome click. A beat time on a 20 ms lattice can sit anywhere within half a step of the true beat, so up to 10 ms of the residual was injected by the reference, which is up to 8.9% of a subdivision. True onset precision is now unknown rather than established at 23 ms.
2. Tempo-map drift. Notated 498.36 s against a 501.84 s stem, 0.7%, roughly one 19/16 bar of positional uncertainty at 198 s. reduced, as a scale estimate
The inherited figure applied a whole-song accumulation locally. Comparing the tab's notated 2.111 s for measure 102 against the audio's 19 × 110.52 ms = 2.100 s gives 11 ms per bar, 0.55%, about 35 ms over three bars. That comparison presumes the 198-203 s window is measure 102, which is q-2026-09-06-acaf55. Read it as the scale of tempo-map error, not as a measure-anchored result.
3. Detector reliability at low level. Many quiet detections sit at -42 to -50 dBFS on a separated stem, where separation artifacts and bleed are not excluded. untouched, still stands
This pass sidestepped it by summing the whole kit rather than solving it. Any instance-level claim still has to face it.

12. The anchor, unmeasured

Queue item q-2026-09-06-acaf55. It asks where measure 102 begins in the audio. It ran twice, and the second run overturned the first.

index base, settled first

The record's measure 102 is 0-based index 101. It starts at 196.8549 s, is 19/16, lasts 2.1111 s, at bpm 135, read from the tab's signature and automations.tempo fields rather than from any image. That matches the previously recorded 196.898 to 199.009 s to 43 ms with an identical duration. The first run of this script labelled one bar late and that is corrected.

Run one, and why it does not stand

The first run scanned a global offset across plus or minus 1.5 s and reported a cross-family range of 1,928 ms, with kick at +1.176 and hat at +1.174. The cymbal peak sat at +1.490, ten milliseconds from the search boundary, which is the tell that the window was too narrow.

Run two: plus or minus 3.0 s, 3,001 offsets, with a null that sees the same search

Added: a scan-aware permutation null, shuffling the notated inter-onset intervals and rescanning, so the null faces the same 3,001-point search the observation did. Added: a bootstrap over notated events. Added: a sweep of the peak-over-mean cut, since the guitar vote missed the published 1.35 by 0.02.

SourceFamilyRun 1 offsetRun 2 offsetPeak/meanScan-aware pBootstrap 95% CI
part 4 Arthur Barrow, bassbass+0.410+0.4121.560.165[-1.644, +1.876]
part 7 Warren Cuccurullo, rhythmguitar+1.372+2.0121.400.560[-2.518, +2.988]
part 6 Peter Wolf, pianokeys-0.752-2.2783.191.000[-2.506, +0.028]
part 8 frets 35,36, kickwithin-part+1.176+1.1822.53<0.005[+0.725, +1.504]
part 8 frets 49-57, cymbalswithin-part+1.490+1.4905.170.075[+0.700, +2.244]
part 8 frets 42,44,46, hatwithin-part+1.174+2.954, at the boundary1.570.430[+0.622, +2.990]

run one was an artifact of the narrow window

The hat vote moved 1.78 s once the scan was widened, and the guitar and keys votes moved 0.64 s and 1.53 s. Only kick and cymbal held position. The "kick and hat agree to 2 ms" line from run one is withdrawn. That agreement was inside one detector frame of 2.902 ms to begin with, which is below the resolution the hop can support, and it did not survive the wider search.

what the range is, and what it is not

Cross-family range at the published 1.35 cut is now 4.290 s, more than two 19/16 bars, and the three families outside the kick differ by that much on their own. This is the maximum minus the minimum of selected point estimates. It carries no confidence level and no coverage interpretation, so calling it "anchor uncertainty" gave it more meaning than the calculation supports. The bootstrap intervals in the table are the quantity that does carry coverage, and every one of them spans seconds.

Threshold sensitivity, since the guitar vote sat 0.02 from the cut

Peak/mean cutSources keptCross-family range
1.20 to 1.3564.290 s
1.40 and 1.5053.768 s
2.0033.614 s

No cut produces convergence. The picture is not sensitive to the threshold, which was the one reassuring thing the sweep could have shown and did.

the drum vote, correctly named

Calling it circular was too strong. Every disputed ghost label sits on the snare lane, and this anchor uses kick, cymbal and hat only, so it reuses no ghost label and no snare detection. The right name is a within-part target-excluded anchor. What it lacks is external-source independence, since it still depends on the same transcribed part. It may be frozen first and used to test snare outcomes afterwards, never fitted and judged in the same step.

On that reading the kick vote is the only estimate here that passes a scan-aware null, at p < 0.005, 0 of 200 draws, placing measure 102 near 198.037 s. Its bootstrap interval is still 0.78 s wide.

the wording that survives

acaf55 did not establish a unique external anchor. Across the family point estimates selected at the published cut, offsets span 4.290 s. Of six sources, five fail a scan-aware permutation null. A within-part target-excluded alignment from kick places measure 102 near 198.037 s, pending held-out snare testing and an independent external landmark set.

Run three: the external route, on the review's own design

Queue item q-2026-09-06-c1d6d3, taken in the same pass. Several distinctive lead and vocal landmarks rather than one entrance, a local map instead of one global offset, monotonic with a slope-change penalty of 0.5 s per two-measure block, and every landmark set split so the fit is scored only on held-out events. No part 8 lane enters, so no ghost label and no drum stem is involved.

SourceStemLandmarksHeld outOffset at m102Local driftHeld-out rateOver chanceHeld-out residual
part 0 Ike Willis vocalsvocals2613-2.7260.08 s0.3080.75x50.6 ms
part 5 Ike and Denny harmoniesbacking_vocals19skipped, too few landmarks to fit a local map
part 2 Frank Zappa sololead17skipped, too few landmarks to fit a local map
part 4 Arthur Barrow bassbass18391+1.7041.83 s0.3631.55x42.5 ms
part 6 Peter Wolf wurlitzerpiano3517-1.1542.52 s0.0000.00x255.5 ms
part 7 Warren Cuccurullorhythm270135+0.7825.19 s0.3331.38x50.8 ms
part 1 Warren Cuccurullorhythm6skipped, too few landmarks

verdict   One of FOUR evaluated sources beats 1.5x; three more were unevaluable

Only four sources were evaluated: vocals, bass, piano and rhythm. Three were skipped under the thirteen-block model and are unevaluable rather than negative. Of the four, only the bass clears the bar, at 1.55x with a 42.5 ms median held-out residual, and one passing source cannot be cross-checked, so no external anchor is established.

Two further signs the passing vote is weak. The bass says +1.704 s under the local map and +0.412 s under the global scan, a 1.29 s swing between two fitting procedures on the same source. And its local map absorbs 1.83 s of drift across 26 measures, which the 0.5 s per block penalty permits by design.

The guitar map wanders 5.19 s while still scoring 1.38x, which is what an over-free local map looks like and is the reason held-out scoring was used at all.

why the lead and vocal route could not be run as designed

The review asked for several distinctive lead or vocal landmarks. In measures 90 to 116 the Zappa solo part carries 17 notated onsets and the harmony part 19, too few to fit a local map across thirteen blocks. The vocal part has 26 and it scores below chance on held-out events. A thirteen-block local map asks too much of those counts. The landmarks exist and the model was too free for them. An affine map, or a monotonic map with three or four knots, could test those parts.

Run four: DTW against a score chromagram

q-2026-09-06-a42f3c. It had been queued as blocked on rendering nine parts to audio. That was wrong. FMP chapter 3 alignment builds a score chromagram from notated pitches, so no synthesis is needed, and part 8 carries no pitch so the alignment cannot see a ghost flag.

attempt one failed the same way as the offset scan

Score chroma against the full mixture, band radius plus or minus 14.4 s, returned measure 102 at 210.72 s, an offset of +13.87 s, which is 96% of the band radius, and dropping one part moved it 21.4 s. A result at the edge of its own search is a search-width report.

Attempt two used the sum of the eight pitched stems so drum energy cannot drive the chroma, with the band tightened to plus or minus 3.6 s. Measure 102 lands at 197.880 s, offset +1.025 s, only 28% of the band, path slope 1.0188, and the map drifts smoothly from +1.077 at measure 99 to +1.393 at measure 107.

Dropped partNotes in windowOffsetPath slopeShift vs full
0 Ike Willis vocals67+1.0251.0190 ms
1 Warren Cuccurullo30+1.0251.0190 ms
2 Frank Zappa solo87-1.0650.763-2,090 ms
3 Warren Cuccurullo43+1.0251.0190 ms
4 Arthur Barrow bass363-1.3210.595-2,345 ms
5 Ike and Denny harmonies166+1.0011.019-23 ms
6 Peter Wolf wurlitzer108+1.2341.419+209 ms
7 Warren Cuccurullo702-1.3210.540-2,345 ms

the pre-specified criterion fails

Leave-one-out range was to be under 100 ms. Observed range is 2.554 s, which is 1.21 of one 19/16 bar. The DTW does not establish the anchor either.

a hypothesis, explicitly not a result

Every run that disagrees also has a broken path slope: 0.540, 0.595, 0.763 and 1.419 against a correct alignment's 1.0. The five runs whose slope stays within 0.02 of 1 all answer between +1.001 and +1.025 s, a 24 ms spread. That filter was chosen after seeing the results, so it is selection. It is queued as a pre-registered rerun with the gate declared in advance.

The full-path answer puts measure 102 at 197.880 s and the within-part kick vote put it at 198.037 s, 157 ms apart, both near the printed 3:18 marker. Three procedures land in the same neighbourhood and none passes its own stability test, so the neighbourhood is a hint.

Nothing about the tempo measurement changes. That result covers the audio between 198 and 238 s and nothing wider. No external evidence on this machine places that window at measures 102 to 104, and the broader external-alignment question stays open.

carried limitation

The +5.5 ms detector lateness subtracted from every detection here was measured on modelled kit transients only. Bass, piano and cymbal attacks may each carry their own latency. That is small beside a seconds-wide family spread, and it is not small beside a 31 ms marker claim.

13. Blocker 3, tested with a second separator

The same mixture, 180 to 300 s, separated again with demucs 4.0.1 htdemucs. Every detection in the original snare stem was then checked for a corroborating onset in that independent drums stem. The item had been queued as needing a second engine. demucs was already installed, so it was never blocked.

the two separations sit 50 ms apart

The first run scored below chance for both populations, which is misalignment and not evidence. Two methods agree on the lag: onset-envelope cross-correlation gives -49.3 ms at peak/mean 32.5, and raw-waveform cross-correlation over 30 s gives -50.11 ms. The original 15-stem set runs 50 ms ahead of the mixture it came from.

PopulationnCorroboratedRateAgainst chance 0.2615Mean level
Loud2128540.1%1.53x-11.54 dBFS
Quiet2142712.6%0.48x-28.99 dBFS
Very quiet, -42 to -50 dBFS700.0%0.00xthe band blocker 3 names

Loud snare detections survive an independent separation at 1.53x chance. Quiet ones do not, at 0.48x, which is below what random placement would give. Quiet minus loud is -27.5 percentage points. In 41 regions totalling 10.25 s where the independent drums stem sits at its noise floor, 6 original-snare detections still fire, 0.585 per second against an overall 3.55.

Masking control, because whole-kit drums can hide a quiet stroke

The comparison stem is the whole kit, so a genuine quiet stroke under a loud kick would score as uncorroborated. Masking predicts uncorroborated quiet detections sit under louder kit energy.

Quiet detectionsnIndependent drums level, medianp25p75
corroborated27-43.63 dBFS-54.88-32.45
uncorroborated187-48.73 dBFS-59.08-38.53

masking does not explain it

Uncorroborated quiet detections sit 5.10 dB quieter, the opposite of the masking prediction. Mann-Whitney z = -1.651, two-sided p = 0.099, so the gap itself is suggestive. What is established is that masking's directional prediction fails.

This supports blocker 3 as written. The quiet population that fed the p = 0.739 instance-level test is not corroborated by an independent separation, so that negative may have rested partly on artifact. A snare-specific second separation remains the cleaner control.

No flag moves on this. If anything it argues for leaving all 629 where the transcriber put them, since the audio evidence on both sides is now weaker than a reading made by eye and by ear.

14. The drift simulation, driven by measurement

The review's objection was that the 24 ms jitter condition in section 6 was selected to match observed R, making it a sensitivity calibration, and that a linear ramp reproducing one summary statistic shows compatibility rather than causation. This run is driven by the eight measured local tempi and the observed per-window onset counts, jitter held at an ordinary 12 ms, with nothing tuned to R. 30 seeds, end to end.

the objection is answered

R produced 0.4526 against the real audio's 0.4377, a difference of 0.015, with no fitted parameter. The low concentration follows from the measured tempo sequence and the measured onset density on its own.

QuantityValue
Onset-weighted truth136.756 BPM
Global 40 s fit, median over 30 seeds138.083 BPM
Bias against truth, median+1.328 BPM
Bias p05 / p25 / p75 / p95-1.645 / -1.620 / +1.341 / +1.366
Failure rate over 1 BPM100%
Failure rate over 2.15 BPM, the observed spread0%
Sub-window median136.631 BPM, error -0.125

A single 40-second fit misses by more than 1 BPM on every one of 30 seeds and lands in one of two basins. The sub-window median recovers the truth to 0.125 BPM. That validates the choice already made on this page: 137.46 was withdrawn and 136.7 from the sub-window curve reported instead. The simulated sub-window-minus-global gap is -1.452 BPM and the real audio's is -0.80, same sign and order.

15. Instrument-specific detector latency

The +5.5 ms lateness subtracted in section 12 came from modelled kit transients. The review asked whether bass, piano and cymbal attacks carry their own. They do.

InstrumentMedian latencyp05p95Recall
kit3.42 ms3.003.741.000
piano3.95 ms3.684.271.000
bass4.09 ms3.894.281.000
voice6.75 ms6.277.231.000
cymbal9.56 ms9.2610.411.000

Maximum deviation from kit is 6.14 ms, so a single flat correction is not adequate. Latency also depends on density: kit reads 3.42 ms on sparse isolated hits against 5.5 ms in the dense end-to-end run, so the flat value used sits between them.

what it changes

Nothing that was concluded. A few milliseconds is negligible against a 4.290 s cross-family range and a 2.554 s leave-one-out range. It bears only on the 157 ms and 31 ms marker-level observations, and those were already stated as not established.

16. The 13 px Atkinson scan, now classified

The record called this scan unclassified rather than unreadable, and said classifying it needs a measured error rate for telling a bracketed notehead from an ordinary one using that same scan. Pages 6 to 9 extracted at native 180 ppi.

PageStaff spacingNotehead candidates
614.50 px977
713.00 px1394
813.00 px1045
921.93 px674

391 real ordinary noteheads were taken from the scan itself, copied, given a synthetic bracket at the 2.3 px stroke width the record measured, and the scan's own paper noise re-added at the measured sd of 0.0176. A best-threshold classifier was then scored on real-ordinary against synthetic-bracketed.

0.582AUC, chance is 0.500
34.1%balanced error at the best threshold
65.9%accuracy at the best threshold

classified   The scan cannot support parenthesis mapping

One head in three would be mislabelled even with the bracket known to be present and the noise known exactly. Against 629 flags that is roughly 200 errors, which is not a usable instrument.

two limits on that number

The feature is contaminated. In dense drum notation the strips beside a notehead also carry stems, beams and neighbouring heads. Median side ink across 4,090 candidates is 0.334 with p90 at 0.913, which is adjacent notation. So 34.1% is the error rate of one measured feature and a smarter feature might do better on the same pixels.

No labelled positive was found. The side-ink distribution is bimodal and dense notation explains that on its own, so this scan supplies no confirmed example of a bracket. That is why the synthetic route was used at all.

What would change it: a publisher-resolution copy of the Modern Drummer Rock Charts pages, still open as q-2026-09-06-e64c44. At the 18 to 19 px of the DRUM Odd Meter Lesson pages brackets read by eye.

17. What stays open

standing   What this page does not claim

No individual Songsterr ghost flag receives audio support from anything here. The tempo result describes a passage. It maps no recorded stroke to any notated event, and it is not a reason to touch r8852151.

18. Provenance

Audio

ItemValue
Stem set15-stem separation of the album track, 202 Keep It Greasey-D minor-142bpm-442hz, 44.1 kHz, stereo, PCM_16
Length, 14 stems501.840 s
Length, metronome stem501.660 s
Metronome stem md59fbce87924d6cf8f20ee79bb1ec29d2e
Mixture202 Keep It Greasey-Dm-142bpm-442hz.mp3, 320 kbps, 501.917 s, md5 432a028f3b60b11673ac8f424c889334

Scripts

All under the session tool directory for s604777. Hashes identify the exact file that produced each section.

Scriptmd5What it produced
classify_metronome.py64fa7ddc7b464d6afd223d470a91f16bsections 2 and 3
tuning_and_tempo.pyb147a9db25260019107eff16f0a4c980section 4
pulse_period.py8c1cd5e086b848fd1ad7606f983c777bsections 8 and 9
pulse_drift.py919770ab2323a9afaeb422e841471017sections 7 and 9
validate_end_to_end.pyf5ab4e3566162e827e02a1e9e1c84307section 6, clean condition
validate_matched_difficulty.py3d12dd187446d5d77a9e37e334046d59section 6, matched difficulty
anchor_measure102.py737e96a9b467579874bd6b839e87bbf9section 12

Python 3.11.15, librosa 0.11.0, numpy 1.26.4. Random seeds fixed at 7, 11 and 17.

Printed sources named on this page