diff options
| author | Dominik Kaiser | 2025-10-03 21:50:22 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2025-10-03 21:50:56 +0200 |
| commit | 282f670fe24bb772e1eb2929e1cb4c58ca3ad166 (patch) | |
| tree | b50dfdd6f589c6e61606b25b72ddb40439732275 /src/DSP/AllPassFilter.cpp | |
| parent | 59ac3b92d6a7dc7ba29791121be7bcc2dc50aead (diff) | |
| download | SchroederReverb-282f670fe24bb772e1eb2929e1cb4c58ca3ad166.tar.gz SchroederReverb-282f670fe24bb772e1eb2929e1cb4c58ca3ad166.zip | |
Add and apply .clang-format
Diffstat (limited to 'src/DSP/AllPassFilter.cpp')
| -rw-r--r-- | src/DSP/AllPassFilter.cpp | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/src/DSP/AllPassFilter.cpp b/src/DSP/AllPassFilter.cpp index 78af7c9..a051fd4 100644 --- a/src/DSP/AllPassFilter.cpp +++ b/src/DSP/AllPassFilter.cpp @@ -1,30 +1,32 @@ #include "AllPassFilter.h" -void AllPassFilter::prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain) { - int maxDelayTimeMs = 100; - int maxDelaySamples = static_cast<int>(sampleRate * maxDelayTimeMs / 1000.0); +void +AllPassFilter::prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain) +{ + int maxDelayTimeMs = 100; + int maxDelaySamples = static_cast<int>(sampleRate * maxDelayTimeMs / 1000.0); - delayBuffer.resize(maxDelaySamples, 0.0f); - std::fill(delayBuffer.begin(), delayBuffer.end(), 0.0f); - delayBufferWritePos = 0; - this->delayInSamples_ = delayInSamples; - this->gain = gain; + delayBuffer.resize(maxDelaySamples, 0.0f); + std::fill(delayBuffer.begin(), delayBuffer.end(), 0.0f); + delayBufferWritePos = 0; + this->delayInSamples_ = delayInSamples; + this->gain = gain; } -void AllPassFilter::process(float* sample) { - int delayBufferLength = (int)delayBuffer.size(); - int delayReadPos = - (delayBufferWritePos - delayInSamples_ + delayBufferLength) % - delayBufferLength; +void +AllPassFilter::process(float* sample) +{ + int delayBufferLength = (int)delayBuffer.size(); + int delayReadPos + = (delayBufferWritePos - delayInSamples_ + delayBufferLength) % delayBufferLength; + float delayedSample = delayBuffer[delayReadPos]; + float xn = *sample; - float delayedSample = delayBuffer[delayReadPos]; - float xn = *sample; + float bufferInput = xn + gain * delayedSample; + float yn = -gain * xn + delayedSample; - float bufferInput = xn + gain * delayedSample; - float yn = -gain * xn + delayedSample; - - delayBuffer[delayBufferWritePos] = bufferInput; - *sample = yn; - delayBufferWritePos = (delayBufferWritePos + 1) % delayBufferLength; + delayBuffer[delayBufferWritePos] = bufferInput; + *sample = yn; + delayBufferWritePos = (delayBufferWritePos + 1) % delayBufferLength; } |
