From: Piotr Majdak <piotr@ma...>  20040922 09:19:26

Hi Dominic, Dominic Mazzoni wrote: > Piotr, > > I will take a closer look at some point, but my suspicion is the fact > that Audacity is using singleprecision floating point FFT calculations, > with accumulations in doubles in just a few key places. I did a few > brief experiments and discovered that the difference between > singleprecision and doubleprecision FFT is minimal up to 2048; for > 4096 there are occasional deviations but overall it's stable, and beyond > that there are significant deviations. > > Is that consistent with your observations? I haven't tested single vs. double. All I can tell you, is that increasing the FFTlength the distortions get worse. Assuming that the problem is a too small range of numbers, the behaviour should looks like that you found out. (Computing FFT over longer frames, you must build a sum over more samples) > Perhaps we could add a doubleprecision FFT routine and switch to using > that for FFT sizes of 8192 and higher? Then we could allow much larger > FFTs, too, if you're willing to wait. Why not using a doubleprecision FFT at all? I think, the computation time for frames with 8192 samples or less should be in range of single miliseconds. Consequently, performance difference comparing "double" with "single" should be negligible. If it's not, then we have some problems computing FFT ;) (Do you use LAPACK or own libraries?) And, yes: I think audacity is a *great* thing, so I'm willing to wait :) I use audacity with files with 64 channels that are really huge (>5GB). I already have adapted audacity for our purposes, I hope I get round to write you some code changes I made... Piotr Majdak 