[linux-audio-dev] Fixing Freeverb and Denormals

From: Neil Klepeis <nklepeis@email-addr-hidden>
Date: Fri Jan 21 2005 - 19:17:43 EET

Hi all,

The denormal problem with freeverb/ardour on P-4's is killing me.

Since CMT plugin development seems to be a little stagnant, I decided
to take it into my own hands a bit, but I might need a little help from
a kind someone out there. Is there anyone who can give me a tip on
proper syntax for changing the denormals.h file in freeverb (assuming
this is where the problem lies)?

Details:

On this list and/or posts elsewhere I found that the denormals.h file
for freeverb doesn't work too well with some newer gcc compilers; one
recommendation was to exchange the first statement below with the second
definition:

#define undenormalise(sample) if(((*(unsigned
int*)&sample)&0x7f800000)==0) sample=0.0f

static inline float
undenormalise(volatile float s)
{
    s += 9.8607615E-32f;
    return s - 9.8607615E-32f;
}

I tried changing it out one-for-one, but.. no good. Ardour still
zombifies after reverb tails die out. Maybe there is somewhere else
that needs changing wrt denormals, or maybe I am just clueless :).

Anyway, I then tried using something like the following....but still no
good, [ardour now doesn't zombify, it's just that freeverb sounds like
@$!&].

#define static inline float undenormalise(volatile float s) { s +=
9.8607615E-32f; return s - 9.8607615E-32f; }

You can probably see that I have no idea what I'm doing, but this seems
like it should be so _simple_. Maybe now is the time to go read up on C++.

Thanks,

Neil
Received on Sat Jan 22 04:15:21 2005

This archive was generated by hypermail 2.1.8 : Sat Jan 22 2005 - 04:15:23 EET