Details of the audio analyzer

This is about the analyzer thing both in the projucer (I came here through chataigne) as well as in the tutorials: my intention is to alter the x-scale to be logarithmic (as it is the case on all software and equipment). I have the formulas laid out and am now trying to implement this, and of course I have some little questions.

  • can someone explain the input and output formats, i.e. with the ‘standard’ settings fftOrder = 11, fftSize = 1 << fftOrder, is it possible to determine which index belongs to which frequency?
  • where are min and max frequency determined?
  • essentially I need to skew the line skewedProportionX = 1.0f - std::exp (std::log (1.0f - (float) i / (float) scopeSize) * 0.2f); I guess, and i am struggling whether I should do the skewing before the signal is sent to the dsp, or after this when it’s being displayed…

If someone chimes in: THANKS in advance.

Sebastian

binFrequency = binIndex * (sampleRate / fftSize);

Ah, thanks. So the full fftSize refers to the sampleRate (which would explain that only the lower half of the reply would have sensible results, see Shannon)?

Hi, I’m looking to do exactly the same modification to the Spectrum Demo. Any advice on how to skew the spectrum properly? Did you change the skewedProportionX calculation?