Re: [linux-audio-dev] Re: Fixing Freeverb and Denormals

From: Christian Schoenebeck <schoenebeck@email-addr-hidden-engineering.org>
Date: Sat Jan 22 2005 - 16:17:28 EET

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
Received on Sat Jan 22 20:15:20 2005

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