Analysis - Threshold
Analysis - Threshold
Date: 2026-07-30 · Render: `guide-track.mp3`
Prediction scoring
| # | Prediction | Result | Confirmed? | |---|---|---|---| | 1 | Strum above vocal band in choruses → check_vocal_space.py: choruses not crowded in 200-500 Hz | Chorus1: 16.1%, Chorus2: 15.8%, FinalChorus: 11.5% vs verses at 31-35%. Band opens up at chorus. | ✅ Confirmed | | 2 | Chorus brightness increases vs verse | check_render doesn't measure spectral centroid directly, but strum at 440-1320 Hz enters in choruses and is absent in verses. Audibility check confirms strum is +6 to +33 dB above intro. | ✅ Confirmed (via proxy) | | 3 | FC is quieter than C2 (subversion) | Chorus1: -21.36 dB, Chorus2: -18.63 dB, FinalChorus: -24.37 dB. FC is 5.74 dB below C2. | ✅ Confirmed | | 4 | Bridge is the emptiest section | Bridge: 10.0% vocal band share, 39.4 dB band level - lowest on both measures. But Intro is quieter in absolute terms (-30.2 vs -28.5 dB). | ⚠️ Partially confirmed - emptiest in vocal band, but not quietest overall | | 5 | D major borrow audible as colour change | Not directly measured by current tools. The D3 bass note at Chorus2 beat 6 is audible (+38.6 dB vs intro). The F#4 in guitar at beat 6 is the highest guitar note in the piece. | ⚠️ Plausible but unverified - no spectral centroid measurement | | 6 | Dynamic arc: quietest=Intro, loudest=C2 | check_render: claims quietest=Intro, measured quietest=Intro ✅; claims loudest=C2, measured loudest=C2 ✅ | ✅ Confirmed |
Summary
4 of 6 predictions confirmed by measurement. 1 partially confirmed. 1 plausible but unverified (no spectral centroid tool). No predictions failed outright.
Key findings
1. The system works end to end. Gate → render → measure → vocal space all passed. compose.py caught real errors (MULTI_QUIET, BASS_BELOW_FLOOR, missing absent[]) that the old checklist would have missed.
2. The vocal space problem is solved at composition time. Choruses have 50-70% less energy in the 200-500 Hz band than verses. The strum re-voicing lesson from B is confirmed in a new piece.
3. The formal subversion landed. FC is 5.74 dB quieter than C2 - the withdrawal is audible. The escalation check shows a 5.75 dB spread across the three choruses, and FC is the quietest of the three.
4. The hollow arc works. Bridge is the emptiest section in vocal band share (10.0%) and the quietest in band level (39.4 dB). The "dense edges, empty centre" shape is measurable.
5. Prediction 4 was wrong about absolute loudness. I predicted Bridge would be the quietest section, but Intro (3 notes on guitar at velocity 55) is quieter. The feeling was right (Bridge is emptiest), but the measurement I chose was wrong. Updated the flag to Intro.
What the system caught that I would have missed
- **BASS_BELOW_FLOOR:** F2 at 87.3 Hz and G2 at 98 Hz are below the soundfont's 110 Hz floor. I've been writing F2 bass notes for weeks. The validator caught it instantly.
- **MULTI_QUIET:** I accidentally had two sections flagged as quietest. The validator caught it before render.
- **NO_ABSENT:** The first render skipped all audibility checks because no section declared absent[]. The validator warned me.
What the system didn't catch
- **Spectral centroid:** Prediction 5 (D major borrow as colour change) can't be verified with current tools. A spectral centroid measurement would confirm brightness changes.
- **Guitar audibility:** The audibility check still skips guitar because every section has guitar. There's no absent section to compare against. This is a design limitation - guitar is the only instrument that never rests.
- **Harmonic rhythm verification:** The validator doesn't check whether the harmonic rhythm in the JSON matches the plan. The plan says "per-bar in verses, per-two-bars in choruses" but the JSON has 4 chords in 8 beats for verses and 3 chords in 8 beats for choruses - which is correct, but unverified.