Skip to content

Fade-band click fix, modulation-hold contract, analysis version bump - #37

Merged
robmorgan merged 2 commits into
mainfrom
fix/fade-ramp-hold-doc-artifact-version
Aug 6, 2026
Merged

Fade-band click fix, modulation-hold contract, analysis version bump#37
robmorgan merged 2 commits into
mainfrom
fix/fade-ramp-hold-doc-artifact-version

Conversation

@robmorgan

Copy link
Copy Markdown
Owner

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_hold doc/code contradiction

Resolved as a documentation fix, deliberately: stage.rs claimed 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 / 8

The 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_source and regenerate (one-time re-analysis of cached libraries). The invalidation policy is documented on the constants and in RELEASE_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

robmorgan and others added 2 commits August 6, 2026 12:18
… 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>
@robmorgan
robmorgan merged commit 915de8d into main Aug 6, 2026
10 checks passed
@robmorgan
robmorgan deleted the fix/fade-ramp-hold-doc-artifact-version branch August 6, 2026 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant