fix chorus popSample read pointer drift; show welcome only on first open

This commit is contained in:
Armin 2026-09-14 02:42:22 +02:00
commit d3bf0804e1
3 changed files with 36 additions and 5 deletions

View file

@ -81,10 +81,13 @@ public:
chorusL.pushSample (0, inL);
chorusR.pushSample (0, inR);
const float mL = 0.5f * (chorusL.popSample (0, chBase + chDepth * t1)
+ chorusL.popSample (0, chBase + chDepth * t2));
const float mR = 0.5f * (chorusR.popSample (0, chBase + chDepth * t2)
+ chorusR.popSample (0, chBase + chDepth * t3));
// multi-tap: only the first popSample advances the read pointer,
// otherwise one push + two pops drifts the taps through the whole
// buffer and late-stale echoes of old notes come back (octave up).
const float mL = 0.5f * (chorusL.popSample (0, chBase + chDepth * t1, true)
+ chorusL.popSample (0, chBase + chDepth * t2, false));
const float mR = 0.5f * (chorusR.popSample (0, chBase + chDepth * t2, true)
+ chorusR.popSample (0, chBase + chDepth * t3, false));
outL += mL * wet * 0.8f;
outR += mR * wet * 0.8f;
}