Prevent denormals in Lua DSP state (LPF, Biquad)
This commit is contained in:
parent
cb6ad45e9d
commit
54ece22efb
@ -20,6 +20,8 @@
|
||||
#include <algorithm>
|
||||
#include <stdlib.h>
|
||||
#include <cmath>
|
||||
#include <boost/math/special_functions/fpclassify.hpp>
|
||||
|
||||
#include "ardour/dB.h"
|
||||
#include "ardour/buffer.h"
|
||||
#include "ardour/dsp_filter.h"
|
||||
@ -125,6 +127,7 @@ LowPass::proc (float *data, const uint32_t n_samples)
|
||||
}
|
||||
_z = z;
|
||||
if (!isfinite_local (_z)) { _z = 0; }
|
||||
else if (!boost::math::isnormal (_z)) { _z = 0; }
|
||||
}
|
||||
|
||||
void
|
||||
@ -178,7 +181,9 @@ Biquad::run (float *data, const uint32_t n_samples)
|
||||
}
|
||||
|
||||
if (!isfinite_local (_z1)) { _z1 = 0; }
|
||||
else if (!boost::math::isnormal (_z1)) { _z1 = 0; }
|
||||
if (!isfinite_local (_z2)) { _z2 = 0; }
|
||||
else if (!boost::math::isnormal (_z2)) { _z2 = 0; }
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user