Fix delay ping-pong: real stereo bounce + rename LED label to PINGPONG

This commit is contained in:
Armin 2026-08-13 04:15:42 +02:00
commit 0af34cd89d
2 changed files with 9 additions and 5 deletions

View file

@ -36,10 +36,14 @@ public:
float outR = bufferR[i0] * (1.0f - frac) + bufferR[i1] * frac; float outR = bufferR[i0] * (1.0f - frac) + bufferR[i1] * frac;
if (pingPong) { if (pingPong) {
// Classic ping-pong: each channel's echo bounces to the opposite // Classic ping-pong: the (summed) input enters one line and each
// channel on the next repeat, so the taps alternate L/R. // echo is bounced to the opposite channel on the next repeat, so the
bufferL[writePos] = left + outR * feedback; // taps alternate L/R. Only the cross-coupled echo is fed into the
bufferR[writePos] = right + outL * feedback; // opposite line (never the dry input) so the bounce is audible even
// for a mono source where L == R.
float in = 0.5f * (left + right);
bufferL[writePos] = in + outR * feedback;
bufferR[writePos] = outL * feedback;
} else { } else {
bufferL[writePos] = left + outL * feedback; bufferL[writePos] = left + outL * feedback;
bufferR[writePos] = right + outR * feedback; bufferR[writePos] = right + outR * feedback;

View file

@ -578,7 +578,7 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p)
: processorRef(p), vuMeter(p), waveformDisplay(p), pianoRoll(p), midiLed(p), : processorRef(p), vuMeter(p), waveformDisplay(p), pianoRoll(p), midiLed(p),
arpEnabledLed(p.apvts, "arpEnabled", "ON", "OFF"), arpEnabledLed(p.apvts, "arpEnabled", "ON", "OFF"),
arpDirectionLed(p.apvts, "arpDirection", "ON", "OFF"), arpDirectionLed(p.apvts, "arpDirection", "ON", "OFF"),
delayPingPongLed(p.apvts, "delayPingPong", "ON", "OFF"), delayPingPongLed(p.apvts, "delayPingPong", "PINGPONG", "OFF"),
reverbOnLed(p.apvts, "reverbOn", "ON", "OFF"), reverbOnLed(p.apvts, "reverbOn", "ON", "OFF"),
lfo1SyncLed(p.apvts, "lfo1Sync", "SYNC ON", "SYNC OFF"), lfo1SyncLed(p.apvts, "lfo1Sync", "SYNC ON", "SYNC OFF"),
lfo2SyncLed(p.apvts, "lfo2Sync", "SYNC ON", "SYNC OFF"), lfo2SyncLed(p.apvts, "lfo2Sync", "SYNC ON", "SYNC OFF"),