Basic implementation of first algorithm

Takes section of audio of length needed to attain specified frequency
resolution.
Takes FFT and filters to specified reasonable BPM range.
Then filters for peaks according to a magnitude percentile threshold.
Counts frequencies above threshold that are within a specified gap range
as the same peak to account for channel mixing and other inaccuracies.
To account for spectral leakage, it also takes values above and below
the peaks within the gap range.
It assumes the peaks are harmonics of the actual beat, and it selects
the lowest frequency peak as the beat's peak.
Finally, it takes an average of the frequencies in the peak, weighted by
their magnitudes.

TODO: Account for phase and figure out how Hanning window affects the
phase.
Try alternative algorithms:
Divide part of audio into really short sections and use the average
power of each to detect beats in the time domain.
Divide part of audio into short sections and take the FFT of each. Does
the STFT help with anything?