so, i don't know too much about fft, but here's what i can gather. hopefully some people who actually understand it can explain where i am wrong:
fft analyzes a 'block' of samples. a block is just a section of consecutive samples. pd's default block size is 64 samples, which is why you get 64 numbers for each FFT analysis in pd with default block size.
the maximum frequency fft analysis will give you is half of your sampling rate.
for a block size of 2, the only frequency FFT tells you about is half the samplerate (SR/2)
for a block size of 4, FFT can then tell you about SR/4 and 2xSR/4..so, for a sampling rate of 44100hz, you'd get info on 11025 and 22050 hz
for a block size of 8, you can now find out about 4 frequencies: SR/8, 2xSR/8, 3xSR/8, 4xSR/8 (ie, 5512, 11025, 16538, 22050)
for a block size of 16, you can find out about SR/16, 2xSR/16, 3xSR/16, 4xSR/16, 5xSR/16, 6xSR/16, 7xSR/16, and 8xSR/16
and so on...always until you reach half the sample rate. ..i think you also get info on 0hz, and i guess that is also somehow important when it comes to resynthesis, but i'm not too sure if or how or why.
once you get up to a block of 64 or 128 samples or more, you start to get pretty good info on the basic waves which make up that block of samples.
i'm really not sure about this next bit...but i think the reason why you get a real part and an imaginary part is because the analysis finds the angle between one sample and the next one. ..if it's a steep angle, then that's a high frequency...if it's a flatter angle, then that's a lower frequency.
and the way to find an angle is derived from pythagoras' equation....a^2+b^2=c^2
so...that works fine when the samples lie above the zero axis...but when they go below the zero axis, then to get the angle you have to take the square route of a negative number. hence the imaginary part.
i could be way off the mark here,.,,,but that's just what i could guess.
pd uber pro's.. how wrong am I?