material: verify the three sovereign music masters against the numbers Q9 states - file hashes, LUFS, true peak, decode, container format, engine record, plus a hook-transcription window per candidate
This commit is contained in:
1 parent
30e5ae8b0a
commit
53a5509991
1 file changed
+99
@@ -0,0 +1,99 @@
|
||||
# Music master verification — "RECEIPTS, M'LORD", three candidates
|
||||
|
||||
**Date:** 2026-09-24 · **By:** Timmy · **Status:** pre-verification of the claims stated in `WORK-QUEUE.md` Q9,
|
||||
run before the independent pass was asked for and recorded so that pass has something to contradict.
|
||||
|
||||
**Not the second opinion.** These measurements were taken on the same host, with the same tools that produced the
|
||||
files. They can establish whether the *recorded numbers are true of the delivered files*; they cannot establish
|
||||
that the pipeline is right about anything. The independent pass is still Zeph's to make, or nobody's.
|
||||
|
||||
## What was measured, and with what
|
||||
|
||||
```bash
|
||||
cd /root/sovereign-music-daily/releases/2026-09-24/masters
|
||||
sha256sum *.mp3
|
||||
ffprobe -v error -show_entries stream=codec_name,sample_rate,channels,bit_rate,duration \
|
||||
-show_entries format=duration,bit_rate,size,format_name -of default=noprint_wrappers=1 <file>
|
||||
ffmpeg -nostdin -hide_banner -i <file> -af loudnorm=I=-14:TP=-1.0:print_format=json -f null - # input_i / input_tp / input_lra
|
||||
ffmpeg -v error -nostdin -i <file> -f null - # full decode, rc + stderr
|
||||
ffmpeg -v error -i <file> -f md5 - # decoded-audio identity
|
||||
```
|
||||
|
||||
## Delivered MP3s — claim vs measurement
|
||||
|
||||
| candidate | sha256 (of the 7,801,965-byte file) | matches `STATE.json` | integrated LUFS | true peak dBFS | decode | dur (container) |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `78c3791c` | `75bf91ffc2a141cc564c7cbbba83a8cd82c9685001760d4444f979c6a2ee0bff` | yes | **−14.12** | **−0.94** | clean, rc 0 | 195.024 s |
|
||||
| `a381d8cf` | `c1cc8fda1785502378d78e23a85c7ee81faff325e780ae7f6bdf81e131aa0804` | yes | **−14.00** | **−1.57** | clean, rc 0 | 195.024 s |
|
||||
| `e6d5e7e9` | `ca24d8a2beb8715e501df5218b29dca47e2b7f93ee1747caeefe95623cc6f40d` | yes | **−13.98** | **−0.92** | clean, rc 0 | 195.024 s |
|
||||
|
||||
All three: `mp3`, **48000 Hz, 2 channels, 320000 bps**. Decoded-audio MD5s are three different values
|
||||
(`b57bc3b3…`, `20a02c46…`, `ccef58bc…`), so these are three distinct renditions, not three copies of one.
|
||||
|
||||
## Each Q9 claim, graded
|
||||
|
||||
| claim in Q9 | verdict | measurement |
|
||||
|---|---|---|
|
||||
| integrated loudness −14.0 ± 0.2 LUFS | **holds** | −14.12 / −14.00 / −13.98, max deviation 0.12 from the record |
|
||||
| true peak ≤ −0.9 dBFS | **holds as written, wording should change** | −0.94 / −1.57 / −0.92. Two of three sit **inside 0.02–0.08 dB of the bound**, and `STATE.json`'s own event line states the mastering target as **−1.0 dBTP**, which none of the three meets (−0.92 and −0.94 are *above* it). Quote the measured value; the −1.0 is a loudnorm parameter, not a delivered figure. |
|
||||
| full decode clean | **holds** | `ffmpeg -v error … -f null -` exits 0 with empty stderr on all three |
|
||||
| 195.0 s | **holds, off by the encoder's padding** | FLAC source exactly 195.000 s; MP3 container 195.024 s |
|
||||
| FLAC-source 48 kHz stereo | **holds** | 3 candidate FLACs: `flac`, 48000, 2ch, 195.000 s |
|
||||
| 320 kbps MP3 | **holds** | `bit_rate=320000` (container rate 320041) |
|
||||
| SHA-256s in the manifest | **holds; and "the manifest" is `STATE.json`** | all three match `STATE.json` character for character; no separate manifest file exists. The source FLACs match `logs/generated-files.json` |
|
||||
| "three ACE-Step CPU renders" | **holds** | `logs/ace-result.json`: `engine` ACE-Step 1.5, `model` acestep-v15-turbo, `device` cpu, `inference_steps` 16, `seed` 4421…, `success` true, started 09:50:55Z, finished 12:18:16Z, `wall_seconds` 8840.9 |
|
||||
|
||||
`QC.json` (the source-file measurements) also reproduces: LUFS −13.37 / −13.28 / −13.33 against the recorded
|
||||
−13.3 / −13.3 / −13.3; true peaks −0.87 / −0.74 / −0.93 against −0.9 / −0.7 / −0.9. The only figure with real
|
||||
spread is loudness range — I measure 11.30 / 9.00 / 12.50 against the recorded 11.1 / 9.1 / 12.1, up to 0.4 apart.
|
||||
LRA is the one number here whose definition varies between implementations, so this is recorded as a method note,
|
||||
not as a discrepancy: the recorded values are not contradicted.
|
||||
|
||||
## Hook transcription — my own pass, 50–110 s window
|
||||
|
||||
```bash
|
||||
ffmpeg -loglevel error -ss 50 -t 60 -i receipts-mlord-<tag>.mp3 -ac 1 -ar 16000 -c:a pcm_s16le /tmp/q9win-<tag>.wav
|
||||
python3 -c 'from faster_whisper import WhisperModel; m=WhisperModel("small.en",device="cpu",compute_type="int8",local_files_only=True); \
|
||||
s,i=m.transcribe("/tmp/q9win-<tag>.wav", language="en", beam_size=5, vad_filter=False, condition_on_previous_text=False); \
|
||||
print([(round(x.start+50,2), x.text.strip()) for x in s])'
|
||||
```
|
||||
|
||||
Model `Systran/faster-whisper-small.en` (int8, CPU), one 60 s window starting 50.0 s in each delivered master,
|
||||
raw output kept at `/tmp/q9-transcription.json`. Wall time 96 s for the three.
|
||||
|
||||
**78c3791c** — chorus recovered at 77–91 s:
|
||||
```
|
||||
[77.00] Lord, the receipt is the proof The hats don't care who told you no
|
||||
[82.00] Lord, the receipt is the proof 44 hours of tape in a row
|
||||
[87.00] Say it again, the receipt is the proof
|
||||
[91.00] Root around the door Keep your sure
|
||||
```
|
||||
**a381d8cf** — chorus at 86–105 s:
|
||||
```
|
||||
[86.00] Lord, the receipt is the proof
|
||||
[91.00] The ask or receipt is the no
|
||||
[96.00] Lord, the receipt is the proof
|
||||
[101.00] Rude around the no, keep the show
|
||||
```
|
||||
**e6d5e7e9** — chorus at 75–99 s:
|
||||
```
|
||||
[75.00] Lord, the receipt is approved
|
||||
[78.00] And I don't care who told you not
|
||||
[81.00] The receipt is the proof
|
||||
[83.00] Forty-four hours of tape in a row
|
||||
```
|
||||
|
||||
**Reading it honestly.** The first hook line, "the receipt is the proof", is recovered verbatim in **all three**
|
||||
candidates, in some case three times per window. The second hook line, "the hash don't care who told you no", is
|
||||
recovered in **none** of them: ASR returns "The hats don't care…", "And I don't care…", "The ask or receipt is the
|
||||
no". The word *hash* never survives. Whether the render mangles it or `small.en` simply cannot resolve it over the
|
||||
mix is **not decidable by this method** — that needs a listener, or a lyric-aligned wider model, not a transcript.
|
||||
Verse lines around it come back close to `lyrics.txt` but not exact ("22,000 sets/sides on a dead post",
|
||||
"Recovered from a capture nobody hopes/holds"), which is the normal error rate for sung vocals.
|
||||
|
||||
One artifact to not be fooled by: e6d5e7e9's window ends with a spurious "Thanks for watching!" at 108–110 s. That
|
||||
is a known whisper hallucination on music, not content in the file.
|
||||
|
||||
**Limits:** ASR on singing, one 60 s window per candidate, one model. This says nothing about mix quality,
|
||||
intelligibility to a human ear, or which candidate should be released. It is not the independent pass either — the
|
||||
same host made the files.
|
||||
Reference in new issue
Block a user