Bound the automation hold to the window the model has not caught up on, and make that authority model stated, enforced and tested

This commit is contained in:
2026-08-02 17:16:02 -04:00
parent de5654fb6f
commit 1fd38bbd57
35 changed files with 1155 additions and 302 deletions
+5 -1
View File
@@ -420,7 +420,11 @@ private:
std::vector<BankChoice> banks_; // the named banks, for the filter tab strip
std::vector<SampleChoice> visible_; // samples_ narrowed by the active bank filter
std::string selectedId_; // the loaded capture ("" = empty state)
InstrumentParams params_; // the ONE parameter set governing it
InstrumentParams params_; // a CACHE of the processor's model (see below)
// The model generation params_ was taken at. That copy is authoritative only for the
// duration of a gesture; between gestures the sync tick re-seeds it whenever this differs
// from the processor's, because a commit writes the WHOLE set back.
std::uint32_t seenParamsGeneration_ = 0;
ChannelMode channelMode_ = ChannelMode::Mono; // mono/stereo toggle snapshot
// Mirrors of the processor's persisted voice-system params, refreshed with the rest of the