I think my FFT is working in general for analog audio input. I have increased the FFT resolution from 256 points to 512 points, however, I don't seem to notice much difference in the output.
Also, how come for some frequency inputs, I get one pretty clean spike, but for other frequency inputs, the spike fans out at the bottom, with two or more spikes in adjacent bins and/or the amplitude fluctuates a little? My input is always one constant sine wave. For example, at 1335Hz, the spike is very sharp and good, but at 1260Hz, I get two spikes at about 4 bins apart and their magnitudes fluctuate just a little.