Fine Spectrum Analyzer

Visualization Plugin for XMMS (finespectrum)

Spectrum analyzers the author (wigy) met before did not "visualize" the sound accurately enough for his luxurious needs, so he tried to make some improvements on "Simple Spectrum Analyzer" distributed with XMMS.

First of all, all the 256 points of the spectrum provided by XMMS API are drawn, no grouping is made on them.

The originally hyperbolic envelop of the spectrum got is compensated, so the bass and treble voices have nearly the same amplitude, when they have the same loadness.

The next trick made is that a special logarithmic amplitude scale is used, that gives 0 for 0, max for max, but the value given at half amplitude can be set (compile-time option yet).

Some dynamics added to the spikes instead of the constant falling speed used before. It is made by a simple IIR digital low-pass filter. This avoids the fast flickering of the bands. The method seems more natural, and the CPU usage is nearly the same.

Some diffusion is allowed among the bands, so if a spike runs high, the neighbouring bands also increase a bit. This recovers some distorsions made by MP3 encoders for example. The effect is made by a simple FIR digital low-pass filter.