fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] FPE Exceptions (was Re: Problem in fluidsynth (Ubuntu 11


From: Pedro Lopez-Cabanillas
Subject: Re: [fluid-dev] FPE Exceptions (was Re: Problem in fluidsynth (Ubuntu 11.10) still in Ubuntu 12.04)
Date: Wed, 30 May 2012 18:45:10 +0200
User-agent: KMail/1.13.5 (Linux/2.6.34.10-0.6-desktop; KDE/4.4.4; i686; ; )

On Wednesday 30 May 2012, David Henningsson wrote:
> 2012-05-28 15:56, Pedro Lopez-Cabanillas skrev:
> > Hi,
> >
> > On Wednesday 23 May 2012, David Henningsson wrote:
> >> FluidSynth upstream) didn't make a bug fix release either. Perhaps we
> >> should do that some time soon...so that the fixes will go into 12.10 at
> >> least...
> > I'm not sure if only fixing that particular bug justifies a release. It
> > doesn't harm to do it, of course. But we may face very similar bugs in the
> > future. Let me explain.
> >
> > I've found the bug you are talking about some time ago, while I was 
working
> > with fluidsynth for a Nokia device having an ARM processor:
> > http://sourceforge.net/apps/trac/fluidsynth/ticket/100
> >
> > This bug was solved by David with this patch:
> > http://sourceforge.net/apps/trac/fluidsynth/changeset/435
> >
> > The problem was very specific to lowering the polyphony, but the cause was 
not
> > uncommon and had plagued FluidSynth for a long time. The root problem is
> > denormals in floating point calculations:
> 
> When you hit an "overflow" situation, i e, when we start to kill voices, 
> the engine starts swapping rvoice and overflow_rvoice pointers. This is 
> because we can't kill the rvoice directly in the synth thread, because 
> it might be currently used by the rendering thread. So we have an 
> additional rvoice for every "standard" rvoice, which is only being used 
> in overflow situations.
> 
> Now, as the overflow_rvoices were not initialised correctly, so they 
> could contain garbage, invalid volume envelopes, and so on. This in turn 
> could very well have caused denormal number problems (as the garbage 
> could have contained denormal numbers), but I don't see the denormal 
> numbers as being the root cause for this particular bug.

Denormals are a very common source of problems, but you are right: lack of 
proper initialised variables means garbage thrown to FP calculations, and that 
may trigger all kind of FPE exceptions, not only denormals. Or when these 
random numbers don't produce exceptions, they still can produce more or less 
audible artifacts.

Regards,
Pedro



reply via email to

[Prev in Thread] Current Thread [Next in Thread]