Fade-band click fix, modulation-hold contract, analysis version bump - #37
Merged
Conversation
… bump Three items from the 2026-08-05 quality review (D6, D7) plus the artifact-invalidation footgun from the beat-grid diagnosis: - Keylock extreme-rate correction weight now chases its per-block target per sample at the toggle-fade slew bound. The fade crossfades two differently-pitched copies of the high band, so the old per-block step spliced between unrelated waveforms under fast tempo gestures. New fade-band rate-step click test: per-block steps measured ~3.5x the tone-slew bound, the chase ~0.9x. - modulation_hold's doc (stage.rs) now matches the code: the wide keylock stage is its sole consumer. SOLA deliberately does not read it - its discretionary work is gated by stricter rest-dwell machinery, and suppressing opportunistic splices during rides would push drift into forced onset-unprotected splices. Wiring it into SOLA stays a ROADMAP Stage 15 experiment, gated on seam/click measurements. - PREANALYSIS_VERSION and MIN_COMPATIBLE_VERSION -> 8: the rigid-grid fit (v0.10.0) materially changed beat positions without a bump, so v7 artifacts are ambiguous between old wandering and new rigid grids; forcing regeneration disambiguates. The invalidation policy is now documented on the constants and in RELEASE_CHECKLIST.md (rebuilt - it still referenced the pre-cutover engine surface). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The bump-when rules live in CLAUDE.md ("Analysis Version Policy") so
they load into every session; the preanalysis.rs constant docs and the
release checklist now point there instead of restating them.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two review items (D6, D7) plus the artifact-invalidation footgun from the 2026-08-03 beat-grid diagnosis.
D6 — per-sample extreme-rate fade ramp (
keylock.rs)The correction fade crossfades two differently-pitched copies of the high band; stepping its weight once per 32-frame block spliced between unrelated waveforms under fast tempo gestures beyond ±20.5% deviation. The weight now chases its target per sample at the toggle-fade slew bound. New fade-band rate-step click test (square-waving 1.22↔1.34): per-block steps measured ~3.5× the tone-slew bound, the chase ~0.9× — verified to fail against the reverted variant.
D7 —
modulation_holddoc/code contradictionResolved as a documentation fix, deliberately:
stage.rsclaimed stages suppress "discretionary splices" during rides, but the wide keylock stage is the flag's sole consumer. Wiring it into SOLA would be counterproductive — SOLA's discretionary work is already gated by stricter rest-dwell machinery, and suppressing its opportunistic splices during rides would push drift into forced onset-unprotected splices. The doc now records the real contract and the rationale; wiring remains the evidence-gated ROADMAP Stage 15 experiment.PREANALYSIS_VERSION/MIN_COMPATIBLE_VERSION→ 8 / 8The rigid-grid fit (v0.10.0) materially changed beat positions without a version bump, so v7 artifacts are ambiguous between old wandering and new rigid grids — they now fail
matches_sourceand regenerate (one-time re-analysis of cached libraries). The invalidation policy is documented on the constants and inRELEASE_CHECKLIST.md, which was rebuilt — it still referenced the pre-cutover engine surface deleted at Stage 9. The v5/v6 compat tests now assert "readable but regenerates".All CI checks green locally: full suite (debug + release), clippy
-D warnings, fmt, docs, desktop, qa-harnesses build.🤖 Generated with Claude Code