PITCH/RATE deck: Rate and Pitch knobs compounded into one read increment, on a three-state commit predicate and payload v16
This commit is contained in:
@@ -44,6 +44,14 @@ struct LiveValues {
|
||||
AdsrParams adsr{};
|
||||
AhdParams ampAhd{};
|
||||
PitchEnvParams pitchEnv{};
|
||||
// The block's THIRD commit class, and the reason this comment is here rather than at the
|
||||
// predicate: playRate is published like any live control but read ONLY at note-on, by
|
||||
// Voice::start via VoiceEngine::startVoice — never by applyLive on a sounding voice. A live
|
||||
// rate would mean re-folding an already-resolved sustain loop and re-mapping a contour
|
||||
// mid-note, both of which are note-on folds. pitchOffsetSemitones has no such tie and is
|
||||
// ordinarily live.
|
||||
double playRate = 1.0;
|
||||
double pitchOffsetSemitones = 0.0;
|
||||
};
|
||||
|
||||
// The seqlock copies the block as raw bytes, which is only defensible for a plain value type.
|
||||
|
||||
Reference in New Issue
Block a user