feat(audio_lens): reusable spectral "ears" + self-verifying stem mixer
audio_lens.py consolidates the spectral toolbox (profile / stemmap / mix) so the machine catches OBJECTIVE audio defects autonomously, reserving PLN's ears for subjective feel. - profile(file): band-energy % + centroid → is_broadband() gate (centroid >140Hz and >18% energy above 150Hz). A pure-kick mix is centroid ~111Hz, mid<12% → FAIL. - mix(take, --orbits): EXPLICIT numpy sum of local interchange stems (no amix black box, no freebox), peak-normalized, then SELF-VERIFIES the render is broadband and exits non-zero on FAIL. Caught + fixed the kick-clone bug that shipped twice. - stemmap(take): per-orbit activity (driving/sparse/silent) for arrangement reads. Take35 mix rebuilt via the tool (v3): cen 168Hz, mid present, PASS — replaces the two broken kick-clone mixes (deleted). Lesson: measure your own output; extend the toolbox, no /tmp throwaways. EDL: seed_edl_take89.py + master_edl_take89.json (9 typed edits, 3 bad_cut labels) from PLN's WH-1000XM5 review, logged in performance_notes.md. tasks/011 captures the TF-IDF + verify-your-output story. #25 reframed: auto-detect boundary sample-leak.
Showing
armada/tide-table/audio_lens.py
0 → 100644
Please
register
or
sign in
to comment