aboutsummaryrefslogtreecommitdiff
path: root/src/DSP
diff options
context:
space:
mode:
authorDominik Kaiser2025-10-03 21:50:22 +0200
committerDominik Kaiser2025-10-03 21:50:56 +0200
commit282f670fe24bb772e1eb2929e1cb4c58ca3ad166 (patch)
treeb50dfdd6f589c6e61606b25b72ddb40439732275 /src/DSP
parent59ac3b92d6a7dc7ba29791121be7bcc2dc50aead (diff)
downloadSchroederReverb-282f670fe24bb772e1eb2929e1cb4c58ca3ad166.tar.gz
SchroederReverb-282f670fe24bb772e1eb2929e1cb4c58ca3ad166.zip
Add and apply .clang-format
Diffstat (limited to 'src/DSP')
-rw-r--r--src/DSP/AllPassFilter.cpp44
-rw-r--r--src/DSP/AllPassFilter.h21
-rw-r--r--src/DSP/CombFilter.cpp37
-rw-r--r--src/DSP/CombFilter.h21
-rw-r--r--src/DSP/SchroederReverb.cpp48
-rw-r--r--src/DSP/SchroederReverb.h21
6 files changed, 103 insertions, 89 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;
}
diff --git a/src/DSP/AllPassFilter.h b/src/DSP/AllPassFilter.h
index 0d9a91e..b989122 100644
--- a/src/DSP/AllPassFilter.h
+++ b/src/DSP/AllPassFilter.h
@@ -2,15 +2,16 @@
#include <juce_audio_processors/juce_audio_processors.h>
-class AllPassFilter {
-public:
- void prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain);
- void reset();
- void process(float *sample);
+class AllPassFilter
+{
+ public:
+ void prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain);
+ void reset();
+ void process(float* sample);
-private:
- std::vector<float> delayBuffer;
- int delayBufferWritePos = 0;
- int delayInSamples_ = 0;
- float gain = 0.7f;
+ private:
+ std::vector<float> delayBuffer;
+ int delayBufferWritePos = 0;
+ int delayInSamples_ = 0;
+ float gain = 0.7f;
};
diff --git a/src/DSP/CombFilter.cpp b/src/DSP/CombFilter.cpp
index 3d11f2f..dc4de96 100644
--- a/src/DSP/CombFilter.cpp
+++ b/src/DSP/CombFilter.cpp
@@ -1,22 +1,27 @@
#include "CombFilter.h"
-void CombFilter::prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain) {
- int maxDelayTimeMs = 500;
- int maxDelaySamples = static_cast<int>(sampleRate * maxDelayTimeMs / 1000.0);
+void
+CombFilter::prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain)
+{
+ int maxDelayTimeMs = 500;
+ 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 CombFilter::process(float* sample) {
- int delayBufferLength = (int)delayBuffer.size();
- int delayReadPos = (delayBufferWritePos - delayInSamples_ + delayBufferLength) % delayBufferLength;
- float delayedSample = delayBuffer[delayReadPos];
- float yn = *sample + gain * delayedSample;
- delayBuffer[delayBufferWritePos] = yn;
- delayBufferWritePos = (delayBufferWritePos + 1) % delayBufferLength;
- *sample = delayedSample;
+void
+CombFilter::process(float* sample)
+{
+ int delayBufferLength = (int)delayBuffer.size();
+ int delayReadPos
+ = (delayBufferWritePos - delayInSamples_ + delayBufferLength) % delayBufferLength;
+ float delayedSample = delayBuffer[delayReadPos];
+ float yn = *sample + gain * delayedSample;
+ delayBuffer[delayBufferWritePos] = yn;
+ delayBufferWritePos = (delayBufferWritePos + 1) % delayBufferLength;
+ *sample = delayedSample;
}
diff --git a/src/DSP/CombFilter.h b/src/DSP/CombFilter.h
index 5568fec..4e435cd 100644
--- a/src/DSP/CombFilter.h
+++ b/src/DSP/CombFilter.h
@@ -2,15 +2,16 @@
#include <juce_audio_processors/juce_audio_processors.h>
-class CombFilter {
-public:
- void prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain);
- void reset();
- void process(float* sample);
+class CombFilter
+{
+ public:
+ void prepare(double sampleRate, int samplesPerBlock, int delayInSamples, float gain);
+ void reset();
+ void process(float* sample);
-private:
- std::vector<float> delayBuffer;
- int delayBufferWritePos = 0;
- int delayInSamples_ = 0;
- float gain = 0.7f;
+ private:
+ std::vector<float> delayBuffer;
+ int delayBufferWritePos = 0;
+ int delayInSamples_ = 0;
+ float gain = 0.7f;
};
diff --git a/src/DSP/SchroederReverb.cpp b/src/DSP/SchroederReverb.cpp
index 785e84c..202c24d 100644
--- a/src/DSP/SchroederReverb.cpp
+++ b/src/DSP/SchroederReverb.cpp
@@ -1,30 +1,34 @@
#include "SchroederReverb.h"
-void SchroederReverb::prepare(double sampleRate, int 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::prepare(double sampleRate, int 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;
- float in3 = *sample;
+void
+SchroederReverb::process(float* sample)
+{
+ juce::ScopedNoDenormals noDenormals;
- combFilter0.process(&in0);
- combFilter1.process(&in1);
- combFilter2.process(&in2);
- combFilter3.process(&in3);
+ float in0 = *sample;
+ float in1 = *sample;
+ float in2 = *sample;
+ float in3 = *sample;
- float allPassIn = 0.25f * (in0 + in1 + in2 + in3);
- allPassFilter0.process(&allPassIn);
- allPassFilter1.process(&allPassIn);
+ combFilter0.process(&in0);
+ combFilter1.process(&in1);
+ combFilter2.process(&in2);
+ combFilter3.process(&in3);
- *sample = allPassIn;
+ float allPassIn = 0.25f * (in0 + in1 + in2 + in3);
+ allPassFilter0.process(&allPassIn);
+ allPassFilter1.process(&allPassIn);
+
+ *sample = allPassIn;
}
diff --git a/src/DSP/SchroederReverb.h b/src/DSP/SchroederReverb.h
index 8c4567a..a5b3038 100644
--- a/src/DSP/SchroederReverb.h
+++ b/src/DSP/SchroederReverb.h
@@ -1,16 +1,17 @@
#pragma once
-#include <juce_audio_processors/juce_audio_processors.h>
-#include "CombFilter.h"
#include "AllPassFilter.h"
+#include "CombFilter.h"
+#include <juce_audio_processors/juce_audio_processors.h>
-class SchroederReverb {
-public:
- void prepare(double sampleRate, int samplesPerBlock);
- void reset();
- void process(float* sample);
+class SchroederReverb
+{
+ public:
+ void prepare(double sampleRate, int samplesPerBlock);
+ void reset();
+ void process(float* sample);
-private:
- CombFilter combFilter0, combFilter1, combFilter2, combFilter3;
- AllPassFilter allPassFilter0, allPassFilter1;
+ private:
+ CombFilter combFilter0, combFilter1, combFilter2, combFilter3;
+ AllPassFilter allPassFilter0, allPassFilter1;
};