mirror of
https://codeberg.org/armin/chromaflock.git
synced 2026-09-01 04:10:47 +02:00
Fix delay ping-pong: real stereo bounce + rename LED label to PINGPONG
This commit is contained in:
parent
54c99d90ee
commit
0af34cd89d
2 changed files with 9 additions and 5 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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"),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue