Also try using the Wavelet-Transform instead of short time FFT (with overlapping windows).<p>It is easier to configure (less parameters, there is no need for a window function), offers more flexibility (exponential frequency band; e.g. for music scales) and can reach the Gabor-Heisenberg uncertainty limit without artifacts.<p>The only downside is that you need to know the entire signal in advance, so it can only be used for recordings.<p>Shameless self-promo of my implementation: <a href="https://github.com/Lichtso/CCWT" rel="nofollow">https://github.com/Lichtso/CCWT</a>