Why does FFT generate a jaggedy signal I have an application that fills a buffer from my computer's microphone and does an FFT. My objective is to figure out what frequencies are in the sample. 

I've tested the application by whistling as well as by playing this video from my cellphone into my computer's mic (I've tried two different mics to be sure). What I expect (taking the absolute frequency) is a smooth Gaussian-like curve with a mean at the frequency of the incoming tone, but what I'm getting is this:



What is the cause for the jaggedness of the signal's frequency spectrum? And what technique can be used to reliably identify the main frequencies present in the signal while filtering out the unwanted bumps?
What you are seeing is a peak from sinusoid convolved with a spectrum of rectangular window sinc function. That is due to property:

$$x(t)\star w(t) = X(f)\cdot W(f) $$

Where your signal $x(t)$ is a sinusoid with a spectrum being a Kronecker (Dirac) Delta function, $w(t)$ is a rectangular window function. In DFT by default we are using rectangular window (taking a time snippet of a signal). Please check out this paper for more info: A Comprehensive Window Tutorial