diff options
author | Ed Kelly <edkelly@users.sourceforge.net> | 2009-08-15 00:34:35 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@iem.at> | 2015-10-14 13:36:00 +0200 |
commit | 274ff10b2f686b3f450103477cd5818860398c8a (patch) | |
tree | 4c15e8fc739470bb9f295f84dcf1d7fcccfc4c64 | |
parent | d4f8c8a4b1897d884e10312f7b6f4e100e8f8a32 (diff) |
Didn't work: try again!
svn path=/trunk/externals/bsaylor/; revision=11917
-rw-r--r-- | svf~.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -18,7 +18,7 @@ #define F_R 3
// Denormalise floats, only actually needed for PIII and very recent PowerPC
-//#define FLUSH_TO_ZERO(fv) (((*(unsigned int*)&(fv))&0x7f800000)==0)?0.0f:(fv)
+#define FLUSH_TO_ZERO(fv) (((*(unsigned int*)&(fv))&0x7f800000)==0)?0.0f:(fv)
/* pd's samplerate */
float fs;
@@ -56,8 +56,12 @@ static inline float run_svf(t_svf *sv, float in) { in = sv->qnrm * in ;
for (i=0; i < F_R; i++) {
// only needed for pentium chips
- in = ((int)in & 0x7f800000)==0?0.0f:in;
- sv->l = ((int)sv->l & 0x7f800000)==0?0.0f:sv->l;
+ // OLD VERSION
+ in = FLUSH_TO_ZERO(in);
+ sv->l = FLUSH_TO_ZERO(sv->l);
+ // new versions, thanks to Damon Chaplin, inserted by Ed Kelly, not yet working!!!
+ //in = ((int)in & 0x7f800000)==0?0.0f:in;
+ //sv->l = ((int)sv->l & 0x7f800000)==0?0.0f:sv->l;
// very slight waveshape for extra stability
sv->b = sv->b - sv->b * sv->b * sv->b * 0.001f;
|