8.28 tape identification

What the 4.96 GB file actually is, and where the six sliced takes sit inside it · measured 2026-09-06

Kid mode 🧒

Brandon recorded a whole band practice onto one really long sound file, over five hours. Later, someone cut six songs out of it and saved them separately.

The question was: did those six songs come out of this recording? To find out, the computer listened for when the drum hits happen in each one, like a fingerprint made of taps, then slid that fingerprint along the big recording to see where it clicked into place.

It clicked. All six. And now we know something useful, that most of the tape has never been cut up at all, over four hours of it. The rest of the practice is still in there.

The six take folders on the T7 are cut from this tape. That is now measured rather than assumed, and the map below gives the exact second each one starts. The reason it matters: the takes account for 11.0% of the tape. The other 4h 38m 02s has never been cut.

1. What the file is

5:12:25duration, 826,670,972 frames
RF64not plain WAV — a 4 GB-plus container
44.1k / 24same clock as every take stem
dual‑mono2.48 GB of the file is a duplicate

Four things about this file will break a script that assumes an ordinary WAV:

#FindingEvidenceConsequence
1It is RF64, not RIFF/WAV. magic RF64, ds64 chunk,
dataSize 4,960,025,832
Python's stdlib wave and older DAW importers reject or misread RF64. libsndfile and ffmpeg are fine.
2The filename holds a U+202F narrow no-break space before PM, not a normal space. bytes e2 80 af A hand-typed path silently fails to match. Resolve it with a glob, never a literal.
3Dual-mono. The right channel is a byte-exact copy of the left. 0 differing frames in
2,000,000 sampled across 10 offsets;
L−R peak −91.0 dB full-file
Half the 4.96 GB carries no information. A mono copy is the same recording at 2.48 GB.
4It is clipped. peak 0.000000 dBFS,
79,927 samples at full scale,
flat factor 30.34
Explains why kick_mic1_DECLIP-ESTIMATE and bass_mic4_DECLIP-ESTIMATE exist in the take folders. Any new slice inherits it.

2. Where the takes are

10
11
12
13
14
15
0:00:001:00:002:00:003:00:004:00:005:12:25
takestartendlen speak rlag msscaleonsets stem/tapegate
song101:59:58.4312:02:02.931124.50.998-0.81.000000500 / 493CONFIRMED
song112:02:19.4312:11:13.931534.51.000-0.81.0000002262 / 2268CONFIRMED
song122:12:32.4302:14:32.930120.50.984+2.11.000000513 / 508CONFIRMED
song132:21:15.4302:31:50.930635.50.988-0.81.0000002644 / 2662CONFIRMED
song142:46:41.4302:49:25.930164.50.996-0.81.000000583 / 578CONFIRMED
song152:52:00.4293:00:03.929483.50.989+2.11.0000002004 / 1998CONFIRMED

Offsets are seconds into the tape. lag is the residual after cutting at the stated point, measured at 2.9 ms resolution. gate is verdict_gate.py from the notation-evidence-gate skill, run with a block-rotation null.

The cut grid is rigid

Every one of the six offsets sits a constant 430 ms (sd 0.6 ms) above an exact integer second. Six independent takes agreeing to sub-millisecond is not coincidence, it is a fixed registration difference between this tape and whatever copy the slicing was done from. It is reported as a constant rather than absorbed into a wider tolerance, which is the rule the gate exists to enforce.

3. What is not cut

1h 59m 58sbefore the first take — 0:00:00 to 1:59:58
2h 12m 21safter the last take — 3:00:03 to 5:12:25
4h 38m 02stotal unsliced, 89.0% of the tape

The six sliced takes span 1h 00m 05s of a 5h 12m 25s tape and are numbered song10 through song15. Nothing named song16 or above exists on any volume mounted here. The two shaded blocks above are where that material would be, if it was played.

This does not establish that more takes exist. It establishes that four hours of this practice has never been examined, and that the examination is cheap now that the tape is identified and the cut grid is known.

4. Which mic this tape is

Raw-waveform correlation on a 60 s probe inside take 13, against each of that take's mics:

micPearson r vs taperead
gtr1_mic3+0.664carries this signal
gtr2_mic2−0.025unrelated
kick_mic1−0.072unrelated
_kitsource_mic1_presence_lift−0.070unrelated
bass_mic4−0.135unrelated

One mic correlates and three do not, so this tape is the mic-3 channel, not a four-mic sum. It is not bit-identical to gtr1_mic3, so gain or EQ sits between them. The practical consequence: this file alone cannot rebuild the other three lanes. Slicing new takes from it yields mic 3 only, and the multitrack for anything new has to come from wherever the other three channels were captured.

5. How this was established, and what I got wrong first

Two attempts failed before one worked, and both failures are worth keeping because each would have shipped a confident wrong answer.

Attempt 1, RMS envelope — failed its own control

Correlating 100 ms loudness envelopes put the takes at 0.20 to 0.46 against the tape, which read as a clean negative. It was not. The positive control, two different mics on the same performance, only reached 0.465. A method whose known-true case scores 0.465 cannot call 0.34 a negative. Loudness was the wrong feature.

Attempt 2, onset strength — correct feature, broken bookkeeping

Onset strength separated the controls properly (ceiling 0.364 floor, floor 0.095 ceiling). But the streamed envelope discarded overlap frames at every chunk seam, so the tape measured 18,428.5 s against a true 18,745.4 s. Rankings survived that; every timestamp was compressed by 1.7%, which is exactly the number that mattered. Caught by checking the envelope length against the file duration, a check worth doing every time.

Attempt 3, exact framing — stands

With framing pinned so frame i covers samples [i·512, i·512+2048), the frame deficit fell to 1 on every file and peaks rose from 0.11–0.86 to 0.984–1.000.

What the gate required

Final independent check, the one that is hardest to fake: the six offsets come out in ascending order matching the slice numbering, with zero overlaps, and the gaps between them reconcile with the take lengths to the tape's full 18,745.374 s exactly.

6. Screening the unsliced blocks — and why it does not answer the question

With the tape identified, the obvious next move is to screen those four hours for take-shaped activity. It runs off the cached onset envelope, so it costs nothing. The threshold was calibrated on the six known takes rather than picked by eye, set at their interior 10th percentile of onset density.

It recovers 6 of 6 known takes. That is the recall half, and it works.

The discrimination half fails, and that is the result. Onset density inside the known takes has a median of 120.66. Everywhere else on the tape it is 108.66. That is a ratio of 1.11×, under the 1.5× floor that Gate N4 sets for carrying an effect as support. 65% of non-take seconds clear the same threshold.

So the screen is recall-first and cannot discriminate. That is not a disappointing result, it is the expected one: a band practice is mostly a band playing, and what made these six spans takes was a human judging them complete, which loudness and onset rate do not encode.

Reported as a listening worklist, ranked longest first, never as takes. Thirty regions of 60 s or more, 3h 14m 53s in total across both blocks. The longest six:

blockstartendlengthpeak density
tail4:38:314:55:5417m 23s272.6
head0:52:051:07:1715m 12s229.7
head1:31:361:46:3414m 57s236.9
head1:16:141:28:4512m 30s191.3
tail4:09:484:21:0511m 16s165.7
tail3:54:464:05:4410m 57s199.3

For scale, the six known takes run 120, 124, 164, 484, 534 and 636 s. Several candidates are far longer than any real take, which is another sign they are runs of continuous activity rather than song boundaries.

Second attempt: pulse clarity, and it fails too

Density measures whether sound is happening, which is the wrong question. The better one is whether a steady pulse is present, since a take is a song held at a tempo and noodling is not. That is the tempogram family, FMP 6.2–6.3. Measured as the strongest normalised autocorrelation peak of the onset envelope in a 50–210 BPM band, 20 s windows.

Take-interior pulse clarity 0.245, everywhere else 0.207. Ratio 1.18×. At the calibrated threshold, recall 75% against a false-positive rate of 66%, a lift of just 1.14×.

It fails the same 1.5× floor. The script refused to emit candidates on it, which is the correct behaviour.

The per-take medians are worth seeing, because they show why. Take 14 scores 0.148 and take 11 scores 0.401. The known takes are not internally consistent on pulse either, so no threshold drawn from them can be sharp.

The conclusion, which is a negative and is the useful part

Two independent signal-level discriminators both fail on the same tape. Loudness gets 1.11×, pulse gets 1.18×, and the floor is 1.5×. Take boundaries in this recording are not recoverable from signal statistics. Whoever cut song10 through song15 was making a musical judgement about which passes were complete, and neither onset rate nor tempo stability encodes that judgement.

The practical value of a negative result is that it stops you spending effort. Do not build a take detector for this tape. The screen above is still worth having as a listening order, ranked by length of continuous activity, and that is all it is.

7. Takes 17–22 are locatable after all, and the answer was in the filenames

The signal-statistics route failed twice. The answer came from somewhere else entirely. The prior session's audit page carries take ids of the form 10_tape1-59-59, 22_tape4-00-08. Those are not arbitrary labels. They are timecodes into this tape.

Five takes exist both as an id and as audio I measured independently. For all five, id_seconds minus my measured offset is the same constant:

idid secondsmy measured offsetdelta
10_tape1-59-5971997198.431+0.569
11_tape2-02-2073407339.431+0.569
13_tape2-21-1684768475.430+0.570
14_tape2-46-421000210001.430+0.570
15_tape2-52-011032110320.429+0.571

K = 0.5698 s, sd 0.0007 s, total spread 0.002 s across five takes covering 52 minutes of tape. That is the whole proof. If the ids were labels for some other recording, or for four separate tapes, those deltas would scatter. They agree to under a millisecond.

Where 17 through 22 sit

takeidtape offsetactivityin known-take band
song17114513:10:50103.2yes
song18122363:23:55138.6yes
song19129513:35:5092.7below floor
song20136583:47:37113.7yes
song21141093:55:08120.9yes
song22144084:00:07127.5yes

What actually tests this, and what does not

Take 16 does not exist here in any form. No id, no audio, no folder. The sequence runs 10, 11, 12, 13, 14, 15, 17 and up.

Take 12 is the mirror image: it exists as audio on the T7 at 2:12:32.440 and has no id on the audit page. So the id list and the audio set each have a gap the other fills, and neither alone is the inventory.

These are positions, not extractions. Nothing has been cut. And the earlier finding still binds: this tape is mic 3 only, so slicing here yields one lane per take, never the four-mic multitrack the existing six folders hold.

Where they end is a weaker claim than where they start

The ids give six start points and no lengths, so the map was half a map. Estimating the other half from the density curve works, and works unevenly, and the uneven part is the part worth publishing.

Calibrated against the six takes whose lengths are known to 0.1 s, the best setting recovers four of them to within 2.3 s and misses two badly: song12 by +24.0 s and song14 by +65.3 s. The median error of 1.7 s flatters it, so the per-take errors are given instead.

takestart (firm)est. lengthest. endhard upper boundread
song173:10:5042.3 s3:11:323:23:55under known minimum
song183:23:55365.1 s3:30:003:35:50usable
song193:35:50474.2 s3:43:443:47:37usable
song203:47:37201.2 s3:50:583:55:08usable
song213:55:08722.0 s4:07:104:00:07overruns next take
song224:00:07348.4 s4:05:555:12:25usable

Two estimates are flagged and should not be cut on.

Take 21 overruns take 22. Its estimate of 722 s runs 423 s past the point where take 22 starts, which means the estimator found no activity drop between them and merged the two. Read that as 21 and 22 being played back to back, and take 21's real end being at or before 4:00:07.430.

Take 17 comes out at 42.3 s, shorter than the shortest known take (120.5 s). Most likely the estimator stopped at an early pause rather than the end.

What is firm and what is not. The six start points rest on the constant-K timecode mapping and are good to a millisecond. The end points are estimates from a method that demonstrably fails on 2 of 6 known cases. The hard upper bound column is firm, since a take cannot run past the start of the next one.

8. Why everything failed: this practice barely stops

Both flagged estimates turned out to be the same fact wearing two hats, and chasing it down explains every negative result above.

Measuring the longest quiet stretch between each pair of consecutive take starts, across all twelve located takes:

spanroom between startslongest quiet stretchreal gap?
song10 → song11141.0 s3.0 sno, continuous
song11 → song12613.0 s12.0 sno, continuous
song12 → song13523.0 s13.0 sno, continuous
song13 → song141526.0 s15.0 sno, continuous
song14 → song15319.0 s23.0 syes
song15 → song171130.0 s20.0 sno, continuous
song17 → song18785.0 s19.0 sno, continuous
song18 → song19715.0 s45.9 syes
song19 → song20707.0 s10.0 sno, continuous
song20 → song21451.0 s9.0 sno, continuous
song21 → song22299.0 s2.0 sno, continuous

Only 2 of 11 spans contain a quiet stretch of 20 s or more. Between takes 21 and 22 the longest silence is 2.0 seconds. Between 10 and 11 it is 3.0 seconds.

The band essentially does not stop. Take boundaries on this tape are musical judgements about where one piece ended and the next began, and they are not acoustic events at all.

That single fact accounts for every failure earlier on this page, and they stop looking like separate problems:

Six results, one cause. There is nothing at the signal level to find, so no detector tuned on this material can work, and the two flagged end points are not going to be fixed by a better algorithm.

The practical consequence for cutting: use the next take's start as each take's end. That is what the recording supports. Take 21 runs to 4:00:07.430 and take 22 begins there with no pause, so a cut at that instant splits continuous playing, which is what the original six folders did too.

9. What to do with it

Source: 8.28.26 - 9_1_26, 4.53 PM.wav, 4,960,025,948 bytes, on /Volumes/Black. Takes: /Volumes/T7 Shield/untitled folder/song10..song15. Measured on the Dr Wu iMac, whose OS hostname string is still Jacks-iMac (ComputerName "Jack’s iMac", user drwu); Brandon corrected the machine name on 2026-09-06, so both are recorded here rather than one. Gate: notation-evidence-gate/verdict_gate.py. Every figure on this page is emitted by build.py from the measurement JSONs, not typed.