Skip to content

Mild-motion bounded recenter: seam survives sustained rides (Stage 15) - #38

Merged
robmorgan merged 2 commits into
mainfrom
feat/ride-seam-recovery
Aug 6, 2026
Merged

Mild-motion bounded recenter: seam survives sustained rides (Stage 15)#38
robmorgan merged 2 commits into
mainfrom
feat/ride-seam-recovery

Conversation

@robmorgan

Copy link
Copy Markdown
Owner

ROADMAP Stage 15's core item: the crossover seam no longer stays comb-filtered while riding the tempo fader.

Problem (K1, characterized first)

Engine-level probe across ride profiles: sustained mild rides (0.5–1% deviation — the mix-in gesture) let SOLA's drift sawtooth to the full 192-frame trigger, holding the 120 Hz seam at −7 dB for as long as the ride lasts. Rest recovery needs ~150 ms of stillness a moving fader never provides.

Ride profile Worst seam loss While riding
Plateau ladder 0.5–1% −7.2 dB recovers only at rest
Sine micro-ride ±0.6% −7.1 dB −2.5 dB, never recovers
Creep ±0.2% / nudge+park −1 to −2 dB fine (existing rest machinery)

Fix

When transposition deviation is mild (< 1.2%) and settled drift exceeds 96 frames, fire the bounded recenter splice (the rest-splice mechanism, without its dwell). The landing bound is load-bearing: a first attempt that simply tightened the general trigger made the seam worse (−5.5 dB persistent, even in the control profile) — unbounded early splices park drift on the dominant-period grid on periodic content, the same #62 pathology the bound exists to prevent. That negative result is documented in the constants.

Measured after

Profile Before After
Plateau ladder −7.2 dB worst −4.7 dB, full recovery
Sine micro-ride −7.1 / −2.5 riding −4.4 / −1.2
Creep, nudge+park bit-identical

~5 bounded splices/s during mild rides (the shipped ±8% path already carries ~18/s). Cents-wobble and A/B-matrix gates pass unchanged.

Gates

  • New seam_survives_a_sustained_mild_ride (keylock unit tests): worst > −6 dB, riding tail > −3 dB, splice-count bound. Fails pre-fix at −7.14 dB.
  • qa/engine_keylock and qa/engine_transients promoted into the CI quality-gates job (Stage 15 exit criterion).

Remaining stage items (evidence-gated, separate PRs): correlation-reference fractional alignment, strength-aware protection, the modulation_hold wiring experiment, and the owner mix-in listen.

🤖 Generated with Claude Code

robmorgan and others added 2 commits August 6, 2026 18:28
ROADMAP Stage 15 core item. Characterization (engine-level probe):
sustained mild rides (0.5-1% deviation, the mix-in gesture) let SOLA's
drift sawtooth to the full 192-frame trigger, holding the 120 Hz
crossover seam comb-filtered at -7 dB for as long as the ride lasts -
rest recovery requires ~150 ms of stillness a moving fader never
provides.

Fix: when the transposition deviation is mild (< 1.2%) and settled
drift exceeds 96 frames, fire the BOUNDED recenter splice (the rest-
splice mechanism, without the dwell). The landing bound is load-bearing:
a first attempt that simply tightened the general trigger made the seam
WORSE (-5.5 dB persistent) because unbounded early splices park drift
on the dominant-period grid on periodic content (the autoresearch #62
pathology the bound exists to prevent).

Measured on the ride-profile matrix: worst comb -7.1 -> -4.4 dB, riding
steady-state -2.5 -> -1.2 dB, creep/park profiles bit-identical, ~5
bounded splices/s (vs ~18/s the shipped +/-8% path already carries).
Gated by seam_survives_a_sustained_mild_ride (pre-fix: -7.14 dB, 17
splices, fails). Cents-wobble and A/B-matrix gates unchanged.

Also promotes qa/engine_keylock and qa/engine_transients into the CI
quality-gates job (Stage 15 exit criterion).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bass body stable through a sustained gentle ride on the live desktop
deck; mandatory exit criteria met on merge, optional items stay
evidence-gated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@robmorgan
robmorgan merged commit 632e4b3 into main Aug 6, 2026
10 checks passed
@robmorgan
robmorgan deleted the feat/ride-seam-recovery branch August 6, 2026 22:26
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