Decouple the instrument reload from VST3 activation, and make the master meter's accumulate exact
This commit is contained in:
@@ -6,6 +6,24 @@ original Goal, Verify, and checklist points with boxes marked done.
|
||||
This file holds the current (1.x) cycle's landed milestones only. For all
|
||||
pre-1.0 (version-0) history, see `docs/ARCHIVE.md`.
|
||||
|
||||
### Decouple the instrument reload from VST3 activation (filed follow-up, discharged in Γ-W3)
|
||||
|
||||
`ReaSamplerProcessor::setActive` meant two things at once — "the audio thread may run" and "the
|
||||
decoded `SampleData` is (re)built" — so every host-driven activation cycle paid a bridge read
|
||||
and a full WAV decode that nothing about activation required. The two lifetimes are now
|
||||
separate: `setActive(false)` parks the decoded sample and destroys the voice state,
|
||||
`setActive(true)` rebuilds the voices around the parked sample through the drain-slot swap
|
||||
`rebuildVoiceEngine` already used for voice-count edits. A cycle costs no disk I/O and no
|
||||
decode; sounding voices are still destroyed across it (a surviving `live_` would be displaced
|
||||
into the drain slot and resurrect stale sustained voices as ghosts); an instance with nothing
|
||||
decoded still routes through the full reload, which is where the pre-v10 legacy lift lives; and
|
||||
`getLatencySamples()` still answers from the persisted enable, untouched by the cycle. The
|
||||
build shared by the reload, the voice-param rebuild and the reactivation was factored to one
|
||||
site so the three cannot drift on the generation stamp or the ring size. Daniel reversed the
|
||||
deferral (*"I thought we agreed to decouple the unnecessary functions from the reactivation
|
||||
path"*); Γ-F2 and Γ-F6 are untouched — dynamic latency ships, the deactivate/reactivate is
|
||||
still the accepted cost of the toggle, just a much cheaper one.
|
||||
|
||||
### Comment-reduction pass (tree-wide, twelve parallel tracks)
|
||||
|
||||
Cut source comment volume tree-wide: 209 files changed, net **−6,493** lines.
|
||||
|
||||
Reference in New Issue
Block a user