-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDelay.cpp
More file actions
20 lines (16 loc) 路 783 Bytes
/
Copy pathDelay.cpp
File metadata and controls
20 lines (16 loc) 路 783 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "Delay.h"
Delay::Delay(int maxDelaySamples) {
delayBuffer.resize(maxDelaySamples, 0.0f);
}
void Delay::process(juce::AudioBuffer<float>& buffer, float feedback, float delayTime, float sampleRate) {
int delaySamples = static_cast<int>(delayTime * sampleRate);
for (int channel = 0; channel < buffer.getNumChannels(); ++channel) {
auto* data = buffer.getWritePointer(channel);
for (int i = 0; i < buffer.getNumSamples(); ++i) {
float delayedSample = delayBuffer[(bufferIndex - delaySamples + delayBuffer.size()) % delayBuffer.size()];
delayBuffer[bufferIndex] = data[i] + delayedSample * feedback;
data[i] += delayedSample;
bufferIndex = (bufferIndex + 1) % delayBuffer.size();
}
}
}