hi, i can not answer about the mentioned “stock library”
as i never used it, is it good? where you get it from ?
but about FFT
let us just assume you would have imported / use the
http://code.compartmental.net/minim/
sound library,
then there are examples to find like
processing IDE 3.4 / File /Examples /
Contributes Libraries / Minim / Basics /
AnalyzeSound
using that example you could make following changes ( to understand )
in
setup () {
//.. add
println("jingle.bufferSize() "+jingle.bufferSize());
println("jingle.sampleRate() "+jingle.sampleRate());
println("fft.specSize()"+fft.specSize());
}
you could even in the play loop add
//...
for(int i = 0; i < fft.specSize(); i++)
{
// draw the line for frequency band i, scaling it up a bit so we can see it
line( i, height, i, height - fft.getBand(i)*8 );
print(" i: "+i+" "+fft.getBand(i));
}
println("\nnext");
}
ok, when you talk about
512 bands
i think you mean samples ( for the FFT input buffer ) to analyze
see also: song.bufferSize()
so with 512 samples
you would get back a array
fft with 256 +1 “bands”
where [0] is not a frequency, more a average offset
and [1] a sinus what fits inside the 512 samples
and the value is the amplitude of it.
insofar the real frequency is not known, as the samples might be 512 measurements over a month of moonshine intensity…
only the
song.sampleRate()
brings it in relation to the real world.
now what can be in [2]?
amplitude of 2 sinus in the 512 samples…