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:
2026-09-25 14:17:11 -04:00
parent ec60cf78c6
commit 64f314a6a4
24 changed files with 592 additions and 183 deletions
+1 -1
View File
@@ -270,7 +270,7 @@ static SpliceStats spliceGeometry(const std::vector<AudioSample>& src, std::int6
ps.setFeedRate(rate);
ps.setSourcePeriod(sourcePeriod);
StretchCursor cur;
cur.start(window);
cur.start(window, 1.0);
loop::ResolvedLoop lp{}; // inactive: the source is long enough to run straight through
SpliceStats st;