----- Original Message -----
From: "Fons Adriaensen"
<fons(a)linuxaudio.org>
I don't think that the DSP code is doing what the parameters
would suggest - the visual results don't match.
Could it be that 'l' sets the window size ? It shouldn't,
the window size should be the fft size. Then, if you have
both 'l' and 's', then both together determine the overlap,
so this can't be a separate parameter.
Also, with just a 1 kHz sine as the input, I'd expect all
spectra to be identical, but they are not...
that's a bit unfortunate...
I'll have a look at all this, thanks to report.
for s, l and overlap:
s is the fft size (let's say 1024 for an example)
l is the sample count, if set at 512 we compute an fft
each 512 samples. Since fft size is 1024, we append with 512 zeros.
Overlap is how much we advance the input to compute the
next fft. In our example: set to 0, at time 0 we compute with input[0..511]
and next iteration we compute with x[512..1023].
Set to 0.5, next iteration is computed with x[256..767].
Set to 1, next iteration would compute with x[1..512] (normally it should
not advance at all, so setting to 1 is in fact setting to 1-epsilon with
epsilon such that we advance by 1 sample)
The window is computed on the l samples.
I guess all this is not done the standard way... (and I hope
the code does what I say above...)
For your 1k sine, I'll have a look. If you have some time,
it would be great to have a screenshot just
to be sure I see the same thing than you?
And thanks for the testing. The code does not crash on at least
three and half computers! that's great.
Regards,
Cédric.