Result from audio FFT function makes it near impossible to inspect low/mid frequencies
What you are seeing is indeed the expected outcome of an FFT (Fourier Transform). The logarithmic f-axis that you're expecting is achieved by the Constant-Q transform.
Now, the implementation of the Constant-Q transform is non-trivial. The Fourier Transform has become popular precisely because there is a fast implementation (the FFT). In practice, the constant-Q transform is often implemented by using an FFT, and combining multiple high-frequency bins. This discards resolution in the higher bins; it doesn't give you more resolution in the lower bins.
To get more frequency resolution in the lower bins of the FFT, just use a longer window. But if you also want to keep the time resolution, you'll have to use a hop size that's smaller than the window size. In other words, your FFT windows will overlap.
Single Precision math slower than Double Precision in FFTW?
Assuming Intel CPUs - It all depends on the compiler. Compiling for 32 bit applications , you can use normal i87 floating point where single and double precision are the same speed. Or you can select SSE for SP and SSE2 for DP, where SSE (4 words in registers) is twice as fast as SSE2 (2 words per register). Compiling for 64 bits, i87 instructions are not available. Then floating point is always compiled to use SSE/SSE2. Either due to the compiler or the particular program, these can be compiled as SIMD (Single Instruction Multiple Data - 4/2 words at a time) or SISD (Single Data using one word per register). Then, I suppose, SP and DP will be of a similar speed and the code can be slower than 32 bit compilations.
Using data from RAM, and possibly cache, performance can be limited by bus speed, where SP will be faster than DP. If the code is like my FFT benchmarks, it depends on skipped sequential reading and writing. Then speed is affected by data being read in bursts of at least 64 bytes, where SP is likely to be a little faster.
Such as trig functions are often calculated in DP. Then SP is a bit slower due to DP to SP conversion.
Related Topics
Hard Time Installing Ia32-Lib on MAC Osx
Docker in Wsl2 Alpine Without Docker Desktop
How to Use the Parallel Command to Exploit Multi-Core Parallelism on My MACbook
Shell Script Won't Recognize Heredoc Delimiter
Shell Script to Check If Process Is Running
Linux Command Ambiguous Redirect
Resolve Relative Relocations in Partial Link
Preventing to Bash Script from Running in Parallel or Overlap Using Cron
Nasm Gcc Command Error with Subprogram as Seperate File
Rsync, 'Uid/Gid Impossible to Set' Cases Cause Future Hard Link Failure, How to Fix
Docker-Compose Stop Working After Docker Desktop Installation on Debian 11
Create a Sudo User in Script with No Prompt for Password, Change to User Without Interrupting Script
Overriding the Variable in Distro.Conf Config File in Custom Image Recipe Yocto
Reading Input from Keyboard with X64 Linux Syscalls (Assembly)
Compile Git for 32-Bit Linux on Shared Hosting
Comparison of Cat Pipe Awk Operation to Awk Command on a File