summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2014-04-22 00:44:59 +1000
committerDamien Zammit <damien@zamaudio.com>2014-04-22 00:44:59 +1000
commita59bad182f67e496f977bf2d4e02995e58aa59b3 (patch)
tree6b3d41628f00d49f474a36ef724aa7b53ea77dfb
parent2bc767b9fd761abf9cfa2750a3c0b3c007f62b50 (diff)
Fixed denormals on ZamEQ2
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--plugins/ZamEQ2/ZamEQ2Plugin.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/ZamEQ2/ZamEQ2Plugin.cpp b/plugins/ZamEQ2/ZamEQ2Plugin.cpp
index cf98ec3..05e2d5d 100644
--- a/plugins/ZamEQ2/ZamEQ2Plugin.cpp
+++ b/plugins/ZamEQ2/ZamEQ2Plugin.cpp
@@ -379,12 +379,14 @@ void ZamEQ2Plugin::peq(int i, int ch, float srate, float fc, float g, float bw)
float ZamEQ2Plugin::run_filter(int i, int ch, double in)
{
double out;
+ in = sanitize_denormal(in);
out = in * b0[ch][i] + x1[ch][i] * b1[ch][i]
+ x2[ch][i] * b2[ch][i]
- y1[ch][i] * a1[ch][i]
- y2[ch][i] * a2[ch][i] + 1e-20f;
- x2[ch][i] = x1[ch][i];
- y2[ch][i] = y1[ch][i];
+ out = sanitize_denormal(out);
+ x2[ch][i] = sanitize_denormal(x1[ch][i]);
+ y2[ch][i] = sanitize_denormal(y1[ch][i]);
x1[ch][i] = in;
y1[ch][i] = out;