[PD] denormals: svf, freeverb (was Re: bug in freeverb???)
Ed Kelly
morph_2016 at yahoo.co.uk
Fri Aug 14 13:07:31 CEST 2009
We have to sort this out!
The denormals bug in freeverb~ _seems_ to have been fixed by following Julius' advice. I made a makefile with
-fno-trapping-math
as a flag and so far so good. I haven't had a problem with the freeverb~ object pegging the CPU. May I advise that this is implemented in PD-extended, since it causes my patch to NOT WORK AT GIGS! I simply cannot take any more embarrassment. I want to play live, otherwise there's simply no point doing anything!
The second one I have discovered is in bsaylor/svf~ and there's no makefile for this in the subversion repository. I notice in the source code there is a FLUSH_TO_ZERO definition. Interestingly, when I try to compile this external using a bog-standard makefile on Ubuntu 8.10, it causes an error:
cc1: warnings being treated as errors
svf~.c: In function ‘run_svf’:
svf~.c:59: error: dereferencing type-punned pointer will break strict-aliasing rules
svf~.c:60: error: dereferencing type-punned pointer will break strict-aliasing rules
Now, I'm trying to unpick the statement:
#define FLUSH_TO_ZERO(fv) (((*(unsigned int*)&(fv))&0x7f800000)==0)?0.0f:(fv)
which is being called on lines 59 and 60 of bsaylor/svf~.c, causing the compiler to choke, and (perhaps) causing my drumsynths to break!
And by the way, where is the source code for the _other_ svf~ external?
Ed
--- On Wed, 1/7/09, Julius Smith <jos at ccrma.stanford.edu> wrote:
> From: Julius Smith <jos at ccrma.stanford.edu>
> Subject: Re: [PD] bug in freeverb???
> To: "Matt Barber" <brbrofsvl at gmail.com>
> Cc: pd-list at iem.at
> Date: Wednesday, 1 July, 2009, 8:22 PM
> Hmmm, this sounds like underflow
> traps ("denormals"). You should
> also be able to add a small constant to the input signal.
>
> I notice gcc has the option
>
> -fno-trapping-math
>
> which may make the problem disappear if my theory is
> correct. (I
> hope the FPU simply sets underflows quietly to zero when no
> trap can
> be generated.)
> There is also
>
> -ffast-math
>
> which is more aggressive.
>
> - jos
>
> At 11:30 AM 7/1/2009, Matt Barber wrote:
> >We have also had this problem, and have found that
> normally one can
> >avoid it by salting the [freeverb~] object with a
> minuscule amount of
> >noise at all times.
> >
> >Matt
> >
> >
> >
> > > Message: 5
> > > Date: Wed, 1 Jul 2009 09:57:43 -0700 (PDT)
> > > From: Andres Ferrari <anfex at yahoo.com>
> > > Subject: [PD] bug in freeverb???
> > > To: pd-list at iem.at
> > > Message-ID: <166347.29167.qm at web111408.mail.gq1.yahoo.com>
> > > Content-Type: text/plain; charset=iso-8859-1
> > >
> > >
> > > when is connected into freeverb any signal
> multiplied by zero
> > > the CPU usage begin to up and up to the limit,
> and if the patch
> > is heavy by far exceeds the 100%....sound and
> everything becomes a mess.
> > >
> > > This happens to me only in leopard.
> > >
> > > In osx 10.4 (ppc) and windows I've never had that
> problem.
> > > Andr?s Ferrari G.
> > >
> > > http://www.myspace.com/anfex
> > >
> >
> >_______________________________________________
> >Pd-list at iem.at
> mailing list
> >UNSUBSCRIBE and account-management ->
> >http://lists.puredata.info/listinfo/pd-list
>
>
> Julius O. Smith III <jos at ccrma.stanford.edu>
> Prof. of Music and Assoc. Prof. (by courtesy) of Electrical
> Engineering
> CCRMA, Stanford University
> http://ccrma.stanford.edu/~jos/
>
>
> _______________________________________________
> Pd-list at iem.at
> mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
Send instant messages to your online friends http://uk.messenger.yahoo.com
More information about the Pd-list
mailing list