[PD-dev] denormals: svf, freeverb (was Re: [PD] 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-dev mailing list