Restore the bank fold and usage publish to the resume path, guard setActive against repeats, and make the meter fold's bound literal
The resume also hands back to a full reload when the fold moves the loaded capture's decode source, so the refs table and the audio cannot skew.
This commit is contained in:
+13
-14
@@ -63,9 +63,8 @@ change, then advancing at 1/newDuration). **Phase Γ opened six [Daniel]-class f
|
||||
tracks below and indexed in `docs/product/instrument-control-surface.md` §8. **Γ-F6 closed
|
||||
with a correction to the analysis, not merely a ruling**: dynamic reported latency is routine
|
||||
for VST3 instruments and REAPER handles it as a matter of course; what makes the mandated
|
||||
restart expensive *here* is self-inflicted (`setActive(true)` calls `reloadInstrument`), so
|
||||
the cost is ours to reduce and the reduction is filed in `docs/TODO.md` rather than designed
|
||||
around.
|
||||
restart expensive *here* was self-inflicted (`setActive(true)` called `reloadInstrument`), so
|
||||
the cost was ours to reduce. **That reduction landed in Γ-W3** — see `docs/COMPLETED.md`.
|
||||
|
||||
**Γ-F3 was subsequently REVERSED and a seventh fork opened AND CLOSED, all by Daniel's later
|
||||
rulings of 2026-08-01.** Γ-F3 (*"the stage-time ceiling stays 2.0 s"*) is replaced by *"extend
|
||||
@@ -651,14 +650,15 @@ every parameter's **plain unit, range and display precision** (§6.7). Today the
|
||||
**What the Γ-F6 ruling changed in the analysis, not just in the plan.** Dynamic latency
|
||||
reporting is **routine** for VST3 instruments and REAPER handles it as a matter of course;
|
||||
the SDK's deactivate/reactivate requirement (`pluginterfaces/vst/ivsteditcontroller.h:105-108`)
|
||||
is the normal contract, not an exotic one. What makes the cycle expensive **here** is entirely
|
||||
our own doing: `ReaSamplerProcessor::setActive(true)` calls `reloadInstrument()` — a bridge
|
||||
read plus a full WAV re-decode (`reasampler_processor.cpp:89-97`) — where a typical plugin's
|
||||
`setActive` only allocates and frees buffers, and the deactivate side's freeing of
|
||||
`live_`/`draining_`/graveyard (`:98-107`) is likewise our own design. **The cost is therefore
|
||||
ours to reduce if it ever matters, and the reduction is decoupling reload from activation —
|
||||
not abandoning dynamic latency.** That improvement is filed as a `docs/TODO.md` entry with its
|
||||
trigger condition; it is not scheduled in this phase.
|
||||
is the normal contract, not an exotic one. What made the cycle expensive **here** was entirely
|
||||
our own doing: `ReaSamplerProcessor::setActive(true)` called `reloadInstrument()` — a bridge
|
||||
read plus a full WAV re-decode — where a typical plugin's `setActive` only allocates and frees
|
||||
buffers. **The cost was therefore ours to reduce, and the reduction was decoupling reload from
|
||||
activation — not abandoning dynamic latency.** **Landed in Γ-W3**: the activate branch
|
||||
(`reasampler_processor.cpp:86-132`) now resumes the voice state around a parked `SampleData`
|
||||
and reloads only when there is nothing to resume from or a bank refresh moved what the park was
|
||||
decoded from; the deactivate branch parks the PCM and frees everything else. Narrative and
|
||||
consequences are in `docs/COMPLETED.md`.
|
||||
|
||||
**Sequencing against Phase Ξ — the ordering claim is RETIRED and replaced by an owned
|
||||
correction.** This plan previously asserted that Γ must run before Ξ-W2 and called it *"a
|
||||
@@ -1421,9 +1421,8 @@ value semantics, any deck geometry, or the bake's reset *membership* (W3-T2's).
|
||||
nothing new is persisted and therefore it should not; if the `setState` verification says
|
||||
otherwise, it takes the reserved rung and says so.
|
||||
- **Closed, do not reopen:** Rate lifted from latched to live (§3.5 records the cost); the
|
||||
limiter enable made automatable (§3.8 — its one reopening condition is the `docs/TODO.md`
|
||||
reload/activation decoupling, and the answer is to do that first, not to re-litigate the
|
||||
classification).
|
||||
limiter enable made automatable (§3.8 — its one reopening condition was the reload/activation
|
||||
decoupling, which landed in Γ-W3, so the condition is discharged rather than pending).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user