Objective
Safely replace incompatible patches using a preconstructed dual-engine transition with deterministic linear/equal-power crossfades.
Scope
Build replacement controlled engines entirely outside the audio callback.
Implement transition slots, old/new routing, active-note policy, generation acknowledgement, cleanup, and stale-handle invalidation.
Implement exact-duration linear and equal-power gain curves; default to 20 ms and support validated 0–250 ms configuration.
Route new notes to the new engine at the transition frame and release/migrate old voices according to documented compatibility policy.
Add hard-swap fallback warnings and preserve the old engine on initialization failure.
Record transition traces, render/callback costs, budget utilization, underruns, and strategy statistics.
Add incompatible/compatible fixtures, click metric comparison, finite/silence/clipping checks, race tests, and block-size matrix.
Acceptance criteria
Spec: phase-3.md §§17–19, 25, 27–33, 35–36, 40 (Milestone 7), 42.
Objective
Safely replace incompatible patches using a preconstructed dual-engine transition with deterministic linear/equal-power crossfades.
Scope
Acceptance criteria
Spec:
phase-3.md§§17–19, 25, 27–33, 35–36, 40 (Milestone 7), 42.