Fix spline-drag rollback, bake contour leak, held-note live miss, amp clamp
Editor close mid-drag now rolls back published contours like capture-loss does; bake detaches liveContours so a printed capture can't observe a live drag; a held note now receives a live publish that lands in the same block as a note-on; amp spline read clamped to [0,1].
This commit is contained in:
@@ -302,10 +302,16 @@ private:
|
||||
// Early-free at a genuine permanent terminus (the spline analogue of a staged AHD's
|
||||
// finished()) — onFinalSegment()/segmentEndValue()'s own doc comments own the why.
|
||||
amp = readSpline(ampSplineCur_, ampSplineSmooth_);
|
||||
// A swap-step absorbed by ampSplineSmooth_ can briefly push the sum outside [0,1]
|
||||
// (a contour's own points are drawn in-range, but the smoother's addend isn't); the
|
||||
// filter clamps its own read for the same reason (below). The finished-check reads
|
||||
// the PRE-clamp value so a genuine zero-terminus isn't masked by the clamp itself.
|
||||
if (amp == 0.0 && ampSplineCur_.onFinalSegment() &&
|
||||
ampSplineCur_.segmentEndValue() == 0.0) {
|
||||
amplitudeDone_ = true;
|
||||
}
|
||||
if (amp < 0.0) amp = 0.0;
|
||||
else if (amp > 1.0) amp = 1.0;
|
||||
} else if (playMode_ == PlayMode::Gate) {
|
||||
amp = env_.tick();
|
||||
if (env_.finished()) amplitudeDone_ = true;
|
||||
|
||||
Reference in New Issue
Block a user