This week I'm working on spectral analysis, and it's coming along. I'm using Kiss FFT to do the real transform, but that only gets me about half the way there; the rest is all scaling issues, window functions, plumbing, wrapping, etc. The goal is a Spectrum dialog with a graph, similar to the existing RMS statistics/histogram dialog. Parameters should include:
Window size (droplist: 256/512/1024 etc.)
Window function (droplist: Bartlett, Welch, Hann, Hamming, Blackman, Blackman Harris)
Frequency scale (droplist: linear vs. log)
Separate channels (checkbox: if checked, show one spectrum for each channel, else channels are averaged together to yield a single spectrum)
Supporting both mono (averaged) and separate channels without excessive code duplication is going to require a bit of creative thinking. More extra credit: additional control over the plotting, e.g. lines versus filled area, cubic splines, etc.
After this gets done, I might take a stab at a real-time spectrum analyzer window. Between the newly-added peak meters and the Spectrum dialog I'll have most of the needed bits and pieces. It's really kind of a fusion of the two. Might be interesting to show a real-time spectrum for each channel of a surround file... This is clearly a case where efforts to make the code reusable will pay off big tim