missed-songs-audit · six tapes · 2026-09-01

Jam Tape Audit

Every long band tape on this Mac, ranked by how much frequency survived the recorder, then run through the missed-songs audit. One tape carried the same silent failure that cost the 8.28 board tape ninety minutes of playing.

6
tapes audited
19.8 h
total runtime
154
songs now held
+36
songs recovered
24.2 min
gaps recovered
What is on this page
  1. Which tape has no frequency loss
  2. The audit, tape by tape
  3. 7.31.26 carried the 8.28 failure
  4. The 8-14 cut that shipped is short
  5. The two residual gaps, now recovered
  6. The calibration flag decides every lossy tape
  7. Method, controls, and limits

1. Which tape has no frequency loss

Container and bitrate describe a file. They do not measure what reached the disk. The test here samples nine windows spread across each tape, averages the spectrum, and reads the level at 16 kHz against the 1 kHz to 4 kHz band that every one of these recordings has. A codec cutoff shows up as a wall, with energy tens of dB below anything an instrument produces.

Five recordings qualify, and four of them are the 8.28 session. The 8.28 practice has four 24-bit multitrack mic masters, each 5.21 h. mic1_4-40PM.wav reads -32.6 dB at 16 kHz, the highest fidelity anywhere in this set. band-practice-8-14-26.wav reads -38.7 dB. Every AAC tape reads -76.8 dB or lower.

The five AAC files are 23.6 kbps voice recordings, and two more files are decodes of those.

Correction, 2026-09-02. The first version of this page said one tape qualified. The four 8.28 mic masters were written to disk between 17:27 and 01:41, after the sweep behind this page ran at 15:15, so they were absent when the ranking was built. The audit of the 8.28 session below was run against the 23.7 kbps 8.28.26.m4a, and re-running it against mic1 is the open item.

filecodecdB @16kreading
8.28.26 mic1PCM 24-bit 44.1k-32.6real content at 16 kHz
8.28.26 mic2PCM 24-bit 44.1k-52.7real content at 16 kHz
8.28.26 mic4PCM 24-bit 44.1k-52.7real content at 16 kHz
8.28.26 mic3PCM 24-bit 44.1k-57.3real content at 16 kHz
8-14-26PCM 24-bit 44.1k-38.7real content at 16 kHz
5-22-26AAC 23.6 kbps-76.8dead above roughly 12 kHz
8.28.26AAC 23.7 kbps-81.7dead above roughly 12 kHz
7.3.26AAC 23.7 kbps-83.2dead above roughly 12 kHz
5.8.26AAC 23.6 kbps-85.5dead above roughly 12 kHz
7.31.26AAC 23.7 kbps-85.7dead above roughly 12 kHz
~/Downloads/7:14:26.m4acopy of 8-14-26-85.0envelope r = 0.998 at a constant -0.070 s AAC priming delay
~/Desktop/Stems/5.8.26-jam/source.wavcopy of 5.8.26-56.9envelope r = 1.0000 at zero lag

The two greyed rows are copies rather than separate sessions. 7:14:26.m4a matches the 8-14 WAV at an envelope correlation of 0.998 once a constant 70 ms AAC priming delay is removed, so it is a lossy sibling of the same performance under a different date in its name. The 5.8.26 WAV matches its m4a at 1.0000 with no lag at all, so it carries no information the m4a lacks.

2. The audit, tape by tape

Coverage is the share of the tape the detector called a song. On a practice tape, anything under about 40 percent is the alarm. Uncovered regions are stretches of at least 45 seconds that measure as playing and carry no take, each one confirmed by transcription against a talk control from the same tape.

tapefidelitybeforesongs nowcoverageuncoveredverdict
8.28.26
5.21 h
lossy
-81.7 dB @16k
12 @ 10.7% 27
173 min
55.5%
0
0 min
repaired earlier
8-14-26
3.76 h
full band
-38.7 dB @16k
20 @ 65.6% 31
161 min
71.6%
0
0 min
clean run, short cut
5.8.26
2.96 h
lossy
-85.5 dB @16k
no prior run 20
64 min
36.0%
6
10 min
gap remains
7.31.26
2.82 h
lossy
-85.7 dB @16k
10 @ 10.6% 35
108 min
63.6%
0
0 min
was broken, fixed today
5-22-26
2.58 h
lossy
-76.8 dB @16k
no prior run 24
126 min
81.7%
1
2 min
clean
7.3.26
2.46 h
lossy
-83.2 dB @16k
no prior run 17
56 min
38.2%
7
12 min
gap remains

3. 7.31.26 carried the 8.28 failure

The old run kept 10 songs across a 169 minute tape. Song coverage measured 10.6 percent, which is the alarm and almost exactly the 10.7 percent the broken 8.28 run produced. The audit found 21 stretches with no take, totalling 44 minutes.

Ten of those stretches were sampled and transcribed. All ten returned zero words, against a talk control from the same tape that returned 37 words at 0.93 words per second.

Re-running the detector with --calib loudness, the same flag that repaired 8.28, took the tape from 10 songs to 35 songs and coverage from 10.6 percent to 63.6 percent. The audit then reported zero uncovered regions. Thirty of the 35 songs are ones the old run never held in any form.

Two songs from the old run do not appear whole in the new one, and both are accounted for. The take at 1:36:57 is now split across two songs that together cover the same audio. The take at 0:30:08 is a 53 second stretch the new run calls two fragments, which is the one genuine downgrade.

4. The 8-14 cut that shipped is short

The 8-14 detector run is healthy on its own terms. Coverage reads 71.6 percent, 80.3 percent counting every take, and the audit reports zero uncovered regions. The problem sits downstream of the detector.

The cut on disk came from the strict run, which holds 20 songs. The default run on the same tape holds 31. Mapping one onto the other, all 20 strict songs sit inside longer default takes, so the strict pass was clipping songs as well as dropping them.

Eleven songs in the default run have no counterpart in the shipped cut, at 0:10:24, 0:15:58, 0:20:21, 0:33:40, 0:38:39, 1:17:26, 1:25:46, 1:42:20, 2:05:36, 2:28:41 and 3:31:31.

Those eleven were exported by the detector on 2026-08-18 and sit as WAVs in ~/Projects/_outputs/real-song-finder/band-practice-8-14-26/songs/, 210 MB in total. The gap is in the curation step rather than the export.

They were dropped for a reason worth stating. The curated twenty run 74 to 2129 seconds with a median of 274, and score 71.3 to 92.1 with a median of 81.3. The extra eleven run 45 to 146 seconds with a median of 75, and score 59.8 to 72.6 with a median of 63.0. They are short borderline takes sitting just under the strict pass, and the two score bands almost touch at 71.3 against 72.6. Judging them belongs to the ear rather than the detector.

tapelengthscorefile in songs/
0:10:2447s60.401_0-10-24_take11_score60.wav
0:15:5851s59.802_0-15-58_take12_score59.wav
0:20:2186s67.703_0-20-21_take18_score67.wav
0:33:4045s60.805_0-33-40_take27_score60.wav
0:38:39146s67.407_0-38-39_take29_score67.wav
1:17:2684s61.312_1-17-26_take42_score61.wav
1:25:4656s72.614_1-25-46_take48_score72.wav
1:42:2063s68.618_1-42-20_take53_score68.wav
2:05:3691s60.522_2-05-36_take59_score60.wav
2:28:4175s63.026_2-28-41_take73_score63.wav
3:31:3176s66.129_3-31-31_take78_score66.wav

5. The two residual gaps, now recovered

Three tapes had never been through the song detector at all. Two of them came back with playing the new run did not hold, and those stretches are now cut to audio.

All 14 regions were cut on 2026-09-02, 24.2 minutes of audio. They live in songs-audit-recovered/ beside each run, named by their tape position, with a recovered_manifest.json carrying the evidence for each one. Every file decodes clean.

They are labelled as audit-recovered rather than detector-found, because the detector never marked them as playing. The evidence for each is the loudness and mid-band reading plus a zero-word transcription against a same-tape talk control.

On both of the tapes that fire the talk control at 0.0 percent, the audit test rejects conversation cleanly, so the zero-word readings in those regions carry their full weight.

6. The calibration flag decides every lossy tape

The 8.28 repair added --calib loudness, which drops pulse salience from the split that decides playing against not playing. That was treated as a fix for one tape. Running both calibrations across this whole set shows it is the correct setting for every phone recording here.

tapefidelitydefault calibloudness calibgain
5-22-26lossy8 @ 7.1%24 @ 81.7%+74.6 pts
7.31.26lossy10 @ 10.6%35 @ 63.6%+53.0 pts
8.28.26lossy12 @ 10.7%27 @ 55.5%+44.8 pts
5.8.26lossy15 @ 16.9%20 @ 36.0%+19.1 pts
7.3.26lossy13 @ 19.5%17 @ 38.2%+18.7 pts
8-14-26full band31 @ 71.6%not neededdefault is already correct here

5-22-26 is the sharpest case. Under the default calibration it returns 8 songs at 7.1 percent coverage, the worst reading anywhere in this set. Under loudness it returns 24 songs at 81.7 percent, the best. The tape did not change between those two runs.

The split follows fidelity rather than session. Five lossy tapes all improve under loudness, by 19 to 75 percentage points. The one full band master is the only tape where the default calibration already reads correctly, at 71.6 percent. Pulse salience carries information when the recording has real high frequency content, and carries noise when a 23.6 kbps encoder has stripped the transient detail the autocorrelation depends on.

Standing rule this produces: run --calib loudness on any phone or voice memo band tape. Keep the default for full band masters, and check the tape's level at 16 kHz, then choose.

7. Method, controls, and limits

Each tape went through the same four steps. The profile is built from loudness and a mid-band ratio, deliberately not the detector's own feature set, so the audit does not inherit the blind spot it exists to find. Coverage calibrates on the detector's own confirmed songs rather than a hand-picked threshold. Every disputed region is then settled by transcription.

python3 scripts/profile_tape.py --audio TAPE --out profile.npz
python3 scripts/audit_coverage.py --profile profile.npz --manifest MANIFEST.json --talk START END
~/.venvs/rsf311/bin/python scripts/speech_probe.py --audio TAPE --windows windows.json
python3 scripts/compare_runs.py --old OLD.json --new NEW.json

The talk control is the load-bearing part. The first probe on 7.31.26 returned zero words in all eleven windows, including the ones meant to be conversation. The script refused to let that stand, because a batch with no talk control cannot prove that a zero-word reading means music. A 24 window sweep across the whole tape then found speech at 1:48, and the audit was re-run against it.

Three limits belong with these numbers. Recall of the audit test against each detector's own songs runs 80 to 83 percent, so it under-reports rather than over-reports. The talk control fires the test between 0 and 33 percent depending on tape, which is why every region here was transcribed rather than believed on spectrum alone. And each probe samples 75 seconds from the middle of a region, so a long region is confirmed at its centre rather than end to end.