Skip to content

Commit a25a0f0

Browse files
tucktuckg00seclaude
andcommitted
fix: replace seam resets with exact virtual loop feeding for stretch engines
Feed Signalsmith and Bungee a mathematically continuous virtual loop source instead of padding/reseeking at boundaries. Adds wrapLoopPosition, reflectPingPongPosition, readExactLoopSample, and advanceStretchSrcPos helpers. Removes stretchRestartPending, Bungee ping-pong crossfade fields/helpers, and all seam-reset logic from loop/ping-pong playback. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent e592f10 commit a25a0f0

3 files changed

Lines changed: 222 additions & 233 deletions

File tree

src/audio/Voice.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,4 @@ struct Voice
6767
double bungeePitch = 1.0;
6868
double bungeeSpeed = 1.0;
6969
bool bungeeResetNeeded = false;
70-
71-
// Bungee ping-pong crossfade fields
72-
int bungeePPFade = 0; // remaining fade samples
73-
int bungeePPFadeLen = 64; // configured fade buffer size, updated from sample rate
74-
int bungeePPFadeActiveLen = 0;
75-
std::vector<float> bungeePPFadeL, bungeePPFadeR;
7670
};

0 commit comments

Comments
 (0)