download graphicalAnalyzer

Graphical 128-band octave-based spectrum-analyzer using MME and ASIO.

Some time in 2008, I had seen a cool tool for mixing and mastering at a friend who is also in music-production.  It was realtime graphical audio-analyzer with 128 bands and octave-based.

So again I rolled up my sleeves and started to create my own analyzer.  First I created a Delphi-component which would display the spectral components.  I took some inspiration for that in the tool that the friend of mine used.

After that I created the actual signal-processing-code.  I’m still not much of a DSP-guru so my code is pretty simple:  128 goertzel-filters for the various frequency-bands.  An FFT was not possible, since with the FFT, all frequency-bins are equi-spaced, but for an octave-based analyzer this would not match the required frequencies.

First I implemented the audio-capture only via MME-extensions.  Later I also incorporated an ASIO-interface to get the latency lower.

As a little sub-project, I even moved my analyzer-code from a standalone-application towards a VST-plugin.  The real challenge there was the lack of a thourough specification on Steinbergs VST-SDK on how to scale VST-Effect/Instrument-windows freely.

I had received some sample code from a nice guy on KVRAudio which worked pretty well.  Unfortunately this code broke as soon as Steinberg had released a new version of Cubase.  So for now I have abandoned this sub-project – possibly I will come back to it at some later time and port my VST to support the VST3 specification.