Smooth spectrogram in log scale


#1

Hi there,

In the Simple FFT Tutorial, we can clearly see that lower frequencies are less detailed than the higher ones because of the logarithmic scale:

So how can you generate a smooth result no matter what the frequency is? Is it only simple interpolation? Thanks.

This is an example of a smooth spectrogram (Signalizer plugin):


#2

Quick answer (not much time):
When doing short-time Fourier transforms (which is what is typically done for spectrograms), you calculate an FFT over sliding overlapping windows of samples.
You typically have 2 parameters: a window size and a step size (AKA hop size).
In principle, you could calculate a new FFT for each sample, but that will be very slow… So, you typically do it once every say 128 or 256 samples (that is your step/hop size).
Then for the window size, if you select a large one (say 16384), you will have a lot more detail for the lower frequencies, but the results will not be nicely “localized” in time, as your results cover a time period of 16384 samples.
Try with window size 4096 and step/hop size 256 or 512 and see if that’s more like what you expect.