Band Practice 9-11, What the Measurements Found

Five tapes · 4 h 05 m · 44100 Hz PCM_24 · measured 2026-09-13 to 09-14 · companion to the runbook

The session is TWO microphones, not five. Two files are bit-identical duplicates, and a third tape is from a different take entirely: it scores higher against an unrelated practice recording than against the mics it was filed with. The real take is 002 and 003, and the song list is 22 performances, not the 29 a three-mic vote produced.

findingFive files, three distinct, two in the take

Files handed over
5
all 14727 to 14728.5 s
Bit-identical pairs
2
001 == 004, 003 == 005
Actually one take
2
mics 002 and 003
Songs, corrected
22
from 29 on the bad vote

evidenceHow mic001 was caught

Cross-correlation of a 1-second envelope over the full four hours, then the same test against the 8-28 practice, a completely different session.

pairbest lagrreading
002 / 0030 s0.489peak exactly at zero lag, above every control
001 / 0027150 s0.376below the wrong-recording ceiling
001 / 0036400 s0.371below the wrong-recording ceiling
001 / the 8-28 practice5015 s0.394a different session, and it scores HIGHER
002 / 8-28-70 s0.216control
003 / 8-28-1390 s0.313control

A second argument settles it independently. 002 and 003 align at lag 0, so a same-take 001 would have to peak at one common offset against both. Its two peaks sit 750 seconds apart, which one take cannot produce.

The control that failed. A block-shuffle surrogate passed all three pairs as real. Any two band-practice recordings share long-range song-and-gap structure and beat a shuffle easily. Only scoring against a WRONG RECORDING separated them.

costWhat the contaminated map did

with mic001 (2 of 3 vote)the real take (002 AND 003)
songs2922
performance time97.3 min57.3 min
fraction of tape39.7%23.3%

A single 14.10 minute block in the bad map resolves into four separate 3.0 to 4.4 minute songs once the foreign take is removed. Its activity was bridging real gaps and welding distinct performances together.

methodThe song map, and what it actually measures

A volume-drop cull misses drum-driven playing in a near-continuous jam, so the map scores the periodic pulse in the 40 to 110 Hz kick band instead. It carries two controls and exits non-zero if either fails.

controlmic 002mic 003what it proves
A, shuffled surrogate+0.114+0.100the score is periodicity, not density
B, cymbal 6-12 kHz+6.97 dB+2.14 dBcymbals ring during performance

It is a low-band periodicity detector, and that is not the same as a drum detector. Three of the 22 songs turned out to have no drums at all on either mic: guitar and bass fundamentals share the 40 to 110 Hz band with a kick, and they fired the same measure. Control A proved the periodicity was real. It never proved a kick produced it.

gatesThree controls that were wrong, and how

gatereadwhy it was wrong
Performance is louder than talk-1.17 dBGaps measured LOUDER. It encoded the exact assumption the runbook says is false for a continuous jam.
Cymbal FRACTION of total energy0.941xA fraction is forced down whenever low end rises, which is what a band playing does. It measured spectral tilt.
Lane percussive fraction0.853A high ratio on a toms lane sitting at -123.1 dBFS, which is silence. A ratio says nothing about level.

All three are the same defect: a ratio graded without a level arm. No threshold was ever lowered to force a pass; each fix changed the measurement.

pipelineMeasured throughput on this Mac

stagerateresult
Reading tapes off the external drive141x realtime4 h tape streams in 1.7 min
Cutting, 22 songs x 2 micsminutes44 files, 1.96 GB, format matched 44/44
Demucs htdemucs_6s, CPU1.67x realtime264 stems, 7.9 GB, 44/44, zero failures
DrumSep MDX23C, CPU5x SLOWER than realtime118.3 min of drums, about 9.9 hours
MPS is 3.2x faster and produces wrong output. On an identical file the drums stem correlated 0.333 with the CPU result at 0.5 dB SNR, and bass 0.769. torch.backends.mps.is_available() returns True on this Intel iMac with a Radeon Pro 570, so availability is not a safety signal. Every run must pass -d cpu.

openWhat is still unresolved

itemmeasurementstatus
Songs 03, 11, 18r -0.165 to -0.284The two mics ANTI-correlate. Song18's spectra are similar and it still anti-correlates, which is not explained by mic placement.
Two guitaristsmax|L-R| = 0.0The tapes are dual-mono, so a channel-asymmetry split has zero information. Room-position separation is untested.
11 cut edges of 444.7 to 11.7 dBNo qualifying valley inside a 60 s radius. Flagged UNRESOLVED, never forced.
Songs 04, 07, 09drums silentNo drum signal on either mic. Excluded from DrumSep rather than splitting guitar into a kit.

shippedThe deliverable

/Volumes/Black/band-practice-9-11-DELIVERABLE/ · all 22 songs, 11 GB, with a README. Written to the external drive because the boot volume reached 98% during this work.

Cuts, both take mics
44
1.96 GB, format matched 44/44
Demucs stems
264
7.9 GB, 44/44, zero failures
Mic start spread
0.000 s
sample-aligned
Recon SNR, median
19.8 dB
stems sum back to the mix

Per song: both mics, the lossless cut untouched, six Demucs stems, present drum lanes as mono 24-bit with no gain, and a manifest carrying levels, reconstruction SNR, and flags. An absent lane is not written at all, because a silent file beside real ones invites being treated as a part that was played.

gateA fourth ratio caught without a level arm

The DrumSep lane verifier grades three things: the canonical percussive floor, a level arm, and reconstruction. On the first six tracks it found the toms lane ABSENT on 4 of 6 while those lanes scored 0.901 percussive. On the canonical single-arm gate all four would have read PASS.

lanepercussive, medianabsent on
snare0.9680 of 6
kick0.9420 of 6
hh0.8870 of 6
toms0.9014 of 6
cymbals0.4391 of 6

Reconstruction across those six tracks ran 28.0 to 33.6 dB, so each lane set is a real decomposition of its own drums stem.

Method

Every figure is observed command output. Nothing here is an estimate. The one estimate this project did produce, a 151 to 284 GB disk requirement computed from format assumptions, was wrong by an order of magnitude: the equivalent prior run on disk measured 33 GB, and Demucs writes 1-channel PCM_24 rather than the float32 stereo that was assumed.

Tooling in ~/Projects/_outputs/band-practice-9-11/: dup_test.py · kick_pulse_map.py · cross_mic_agreement.py · consensus_songmap_v2.py · cut_songs_v6.py · boundary_audit.py · run_demucs_v6.py · verify_demucs_v6.py · run_drumsep_v6.py