Web Audio high quality spectogram from biquad bandpass filters
This is a complete demo of a high quality spectogram built out of the Web Audio biquad bandpass filters.
The demo contain code for up to 96db bp rolloff by simple biquad filters cascade, this may improve quality considerably however it is not perfect due to filter design thus it may cause ringing issues as order increase (spectrum may look delayed / smoothed), one can only reduce this by slightly increasing the bandwidth
The bank filters default rolloff is 12db by default, a function argument name must be changed to select rolloff (24db, 48db, 96db)
The example code is straightforward and support both linear and logarithmic rendering.
The output values are normalized.
The custom_biquad directory contain an example which use a custom biquad audio worklet node with support for multiple orders.
Using a custom biquad node allow to specify each filters coefficients (not possible with Web audio biquad filter) which allow wide possibilities such as multi-resolution by combining filters, this should accomodate most needs.
The example generate a high quality spectogram from filter bank biquad coefficients generated by a Matlab / GNU Octave script which allow elliptic / chebyshev / butterworth and many other type of filter to be specified with any orders
By default it use coefficients from an elliptic filter of order 4
See also the real-time version which compare Web Audio analyzer node to this method.