-
fix(foundry): verify-rerank the loop finder against true post-snap seam + robust sparse seam · 791a0d78
Problem — the finder's rank didn't reflect true seam quality. On a real end-to-end run over the Super freak dub kit (Soul Sugar meets Dub Shepherds), several top-scored 2-bar windows CLICKED at the wrap after export while cleaner windows ranked below them. Root cause: analyze_stem scores the seam on the RAW candidate window, but export_take zero-crossing-snaps both boundaries (B1) AND slices at the 3-decimal-rounded start_s/end_s — and both transforms move the wrap. A beat-exact window measuring seam 0.79 read 0.07 once rounded, and that rounded, snapped slice is what actually ships. So the finder's seam proxy diverged from the grader (grade.py), which measures the window that exists on disk — the ground truth. Approach — a verify-rerank pass (loops._verify_rerank) after candidate generation, before dedup/top_n. It re-measures the ~3×top_n survivors' seam on the TRUE post-snap window — the exact zc-snapped, rounded-bounds slice export writes — reusing grade.seam_score (DRY, no duplicated DSP). The proxy seam term is swapped for the true seam in the composite (same weights), and any candidate whose true seam falls below VERIFY_SEAM_FLOOR is hard-demoted so a click can never top the list. Gated behind a new analyze_stem(..., verify=True) kwarg (default on; False reproduces the pre-#19 raw-proxy ranking for autotune baselines). Public signatures (analyze_stem, find_takes, weights dict) unchanged — autotune.py/server.py intact. Also fixed a sparse-material seam false-positive in grade.seam_score: the wrap curvature was normalized by the MEAN |2nd-diff|, which collapses to ~0 on sparse dub percussion (mostly silence + a few hits), blowing the click ratio up (129× on a genuinely clean loop). Now normalized by the 90th-percentile |2nd-diff|, amplitude-floored — 2–3× on the same clean loop. Validation (drums+other stems, bars 1/2/4, shared 132.5 BPM grid, export-faithful grades): drums top-3 BEFORE C 0.65 / C 0.63 / A 0.80 (clicks @93.08s, @24.06s) AFTER S 0.98 / S 0.95 / A 0.81 other top-3 BEFORE B 0.72 / B 0.72 / B 0.70 (bad favorite @56.74s clicks) AFTER S 1.00 / S 0.98 / S 0.99 The known-good drums 4-bar @107.21 (S) and other regions surface; the clicking other @56.74 is demoted out of the top entirely. Tests: +2 verify-rerank regression tests (a proxy-clean but discontinuous wrap that survives the snap is demoted below a seamless one; verify=False leaves the proxy untouched) and +1 sparse-percussion test (a clean sparse loop is NOT flagged clicking). Suite 57 → 60 green.PLN (Algolia) authored791a0d78
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| bridge | Loading commit data... | |
| foundry | Loading commit data... | |
| pulsar-parvagues-hud | Loading commit data... | |
| README.md | Loading commit data... | |
| analyze_samples.py | Loading commit data... | |
| fan_check.sh | Loading commit data... | |
| gen_tokens.py | Loading commit data... | |
| gen_ts_types.py | Loading commit data... | |
| mute.tidal | Loading commit data... | |
| sample_tfidf.py | Loading commit data... | |
| shipowiz.py | Loading commit data... | |
| solo.tidal | Loading commit data... | |
| tools.png | Loading commit data... | |
| unmute.tidal | Loading commit data... | |
| unsolo.tidal | Loading commit data... |