[linux-audio-dev] Re: Fixing Freeverb and Denormals
Christian Schoenebeck
schoenebeck at software-engineering.org
Sat Jan 22 14:17:28 UTC 2005
Es geschah am Freitag 21 Januar 2005 18:17 als Neil Klepeis schrieb:
> 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 have to admit that I have not yet looked on the freeverb code, but seeing
that, I assume it's a pure C implementation.
I think for such an important piece like freeverb it might be worth to add
architecture dependant assembly optimizations. E.g. with SSE(1) you simply
have to change the SSE control register to get rid of the denormal problem.
With that no denormal fixes for individual sample points are necessary
anymore which definitely pays off in performance.
Es geschah am Samstag 22 Januar 2005 02:36 als Erik de Castro Lopo schrieb:
> There's never a good time to read up on C++
>
> Erik
lol
CU
Christian
More information about the Linux-audio-dev
mailing list