Fix cross-rate Preserve splices, re-stamp on host-rate change, name the rate refusal
The splice crossfade now counts output frames and stops before the ring's far end (this also fixes a lap at matched rate). The search strides by the rate ratio. The editor takes its time base from its own decode. Same-rate output is pinned to hashes from before the change.
This commit is contained in:
@@ -556,9 +556,10 @@ private:
|
||||
shiftL_.setShiftRatio(shift);
|
||||
if (stereoOut) shiftR_.setShiftRatio(shift);
|
||||
|
||||
// 0..kMaxFeedPerFrame source frames fall due this output frame. All but the LAST are
|
||||
// written without producing output; the last rides the ordinary 1-in-1-out
|
||||
// process(), so a rate of exactly 1.0 walks the pre-stretch code path unchanged.
|
||||
// 0..ceil(kStretchRateMax x sourceRatio_) source frames fall due this output frame
|
||||
// (StretchCursor::due). All but the LAST are written without producing output; the
|
||||
// last rides the ordinary 1-in-1-out process(), so a feed of exactly 1.0 walks the
|
||||
// pre-stretch code path unchanged.
|
||||
// Crossfaded on the way IN to the shifter, not on the way out: loop the source,
|
||||
// shift the output.
|
||||
const std::int64_t due = stretch_.due(stretchRate_);
|
||||
|
||||
Reference in New Issue
Block a user