diff options
Diffstat (limited to 'src/DSP/SchroederReverb.cpp')
| -rw-r--r-- | src/DSP/SchroederReverb.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/DSP/SchroederReverb.cpp b/src/DSP/SchroederReverb.cpp index 8bd764d..785e84c 100644 --- a/src/DSP/SchroederReverb.cpp +++ b/src/DSP/SchroederReverb.cpp @@ -1,15 +1,17 @@ #include "SchroederReverb.h" void SchroederReverb::prepare(double sampleRate, int samplesPerBlock) { - combFilter0.prepare(sampleRate, samplesPerBlock); - combFilter1.prepare(sampleRate, samplesPerBlock); - combFilter2.prepare(sampleRate, samplesPerBlock); - combFilter3.prepare(sampleRate, samplesPerBlock); - allPassFilter0.prepare(sampleRate, samplesPerBlock); - allPassFilter1.prepare(sampleRate, samplesPerBlock); + combFilter0.prepare(sampleRate, samplesPerBlock, 4799, 0.742f); + combFilter1.prepare(sampleRate, samplesPerBlock, 4999, 0.733f); + combFilter2.prepare(sampleRate, samplesPerBlock, 5399, 0.715f); + combFilter3.prepare(sampleRate, samplesPerBlock, 5801, 0.697f); + allPassFilter0.prepare(sampleRate, samplesPerBlock, 1051, 0.7f); + allPassFilter1.prepare(sampleRate, samplesPerBlock, 337, 0.7f); } void SchroederReverb::process(float *sample) { + juce::ScopedNoDenormals noDenormals; + float in0 = *sample; float in1 = *sample; float in2 = *sample; @@ -20,8 +22,9 @@ void SchroederReverb::process(float *sample) { combFilter2.process(&in2); combFilter3.process(&in3); - float allPassIn = in0 + in1 + in2 + in3; + float allPassIn = 0.25f * (in0 + in1 + in2 + in3); allPassFilter0.process(&allPassIn); allPassFilter1.process(&allPassIn); + *sample = allPassIn; } |
