summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2015-11-09 02:35:47 +1100
committerDamien Zammit <damien@zamaudio.com>2015-11-09 02:35:47 +1100
commit5f0e180e4ae82e2c780202a7fa158164389cce25 (patch)
tree20f85808990d774f3a3f0e4e409886f8282d1c9d
parent8b2341ca7d04eec562001c806e5d7d98655ed8cc (diff)
Dont filter twice on delay feedback
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--plugins/ZamDelay/ZamDelayPlugin.cpp8
-rw-r--r--plugins/ZamDelay/ZamDelayPlugin.hpp1
2 files changed, 5 insertions, 4 deletions
diff --git a/plugins/ZamDelay/ZamDelayPlugin.cpp b/plugins/ZamDelay/ZamDelayPlugin.cpp
index 1c0d7dc..eeab7ca 100644
--- a/plugins/ZamDelay/ZamDelayPlugin.cpp
+++ b/plugins/ZamDelay/ZamDelayPlugin.cpp
@@ -217,6 +217,7 @@ void ZamDelayPlugin::activate()
posz = 0;
age = 0;
clearfilter();
+ fbstate = 0.f;
}
@@ -305,7 +306,6 @@ void ZamDelayPlugin::run(const float** inputs, float** outputs, uint32_t frames)
{
uint32_t i;
float in;
- float fb = 0.f;
float srate = getSampleRate();
TimePosition t = getTimePosition();
float bpm = 120.f;
@@ -330,11 +330,11 @@ void ZamDelayPlugin::run(const float** inputs, float** outputs, uint32_t frames)
for (i = 0; i < frames; i++) {
filtered = runfilter(getsample(in, &z[0], posz, age, delaysamples));
- in = (1. - feedb) * inputs[0][i] + feedb * -inv * filtered;
+ in = (1. - feedb) * inputs[0][i] + feedb * fbstate;
- fb = ((1. - drywet) * in) + drywet * -inv * filtered;
+ fbstate = ((1. - drywet) * in) + drywet * -inv * filtered;
- outputs[0][i] = fb * from_dB(gain);
+ outputs[0][i] = fbstate * from_dB(gain);
pushsample(in, &z[0], &posz, &age, delaysamples);
}
}
diff --git a/plugins/ZamDelay/ZamDelayPlugin.hpp b/plugins/ZamDelay/ZamDelayPlugin.hpp
index 47465c2..5a652b4 100644
--- a/plugins/ZamDelay/ZamDelayPlugin.hpp
+++ b/plugins/ZamDelay/ZamDelayPlugin.hpp
@@ -124,6 +124,7 @@ private:
int posz, age;
float A0, A1, A2, A3, A4, A5, B0, B1, B2, B3, B4, B5;
float state[4];
+ float fbstate;
};
// -----------------------------------------------------------------------