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.