diff options
| author | Dominik Kaiser | 2025-10-06 16:30:31 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2025-10-06 16:31:36 +0200 |
| commit | 5795493239b56a3b8a6d93b8861c1f7259f92896 (patch) | |
| tree | 0683476fc86347ff26a6c6dd512566e89443c326 /src/DSP/AllPassFilter.cpp | |
| parent | 1861458f4fa4647379d372858222d6481beaa015 (diff) | |
| download | SchroederReverb-5795493239b56a3b8a6d93b8861c1f7259f92896.tar.gz SchroederReverb-5795493239b56a3b8a6d93b8861c1f7259f92896.zip | |
Cleanup
Diffstat (limited to 'src/DSP/AllPassFilter.cpp')
| -rw-r--r-- | src/DSP/AllPassFilter.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/DSP/AllPassFilter.cpp b/src/DSP/AllPassFilter.cpp index a051fd4..f250656 100644 --- a/src/DSP/AllPassFilter.cpp +++ b/src/DSP/AllPassFilter.cpp @@ -9,24 +9,20 @@ AllPassFilter::prepare(double sampleRate, int samplesPerBlock, int delayInSample delayBuffer.resize(maxDelaySamples, 0.0f); std::fill(delayBuffer.begin(), delayBuffer.end(), 0.0f); delayBufferWritePos = 0; - this->delayInSamples_ = delayInSamples; + this->delayInSamples = delayInSamples; this->gain = gain; } void -AllPassFilter::process(float* sample) +AllPassFilter::process(float& sample) { int delayBufferLength = (int)delayBuffer.size(); int delayReadPos - = (delayBufferWritePos - delayInSamples_ + delayBufferLength) % delayBufferLength; - + = (delayBufferWritePos - delayInSamples + delayBufferLength) % delayBufferLength; float delayedSample = delayBuffer[delayReadPos]; - float xn = *sample; - - float bufferInput = xn + gain * delayedSample; - float yn = -gain * xn + delayedSample; + + delayBuffer[delayBufferWritePos] = sample + gain * delayedSample; + sample = -gain * sample + delayedSample; - delayBuffer[delayBufferWritePos] = bufferInput; - *sample = yn; delayBufferWritePos = (delayBufferWritePos + 1) % delayBufferLength; } |
