"sox spectrogram" has two custom FFT routines, a fast one for power-of-two DFTs (which in pratice is almost never used) and a much slower one for everything else.
FFTW3 is more than ten times as fast as the slower one, and the same speed as the fast one (well, taking 0.5s instead of 0.44s)
Example: src/soc src/monkey.wav -x 10000 -y1024 took 9.63 seconds of CPU
-y1025 took 0.37, -y1026 9.78 and -y1200 13.48.
With FFTW, -y1024 takes 0.94, -y1025 0.47, -y1026 0.48 and -y1200 0.67.
This becomes more important when using higher DFT sizes, not currently testable in mainline because of an arbitrary limit of 1200 on y_size.
Log in to post a comment.