If you want to use FFTAnalyzer from ArduinoSound, it will eat your PROGMEM like there is no tomorrow. My went from 9% to 68%.
Program size: 177,348 bytes (used 68% of a 262,144 byte maximum) (4.77 secs) Minimum Memory Usage: 4248 bytes (13% of a 32768 byte maximum)
The culprit is arm_rfft_init_q31 function required for FFT calculations https://raw.githubusercontent.com/ARM-software/CMSIS/master/CMSIS/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c
It contains large precalculated tables (see source), which you dont need. The tables are for the largest FFT size which you never going to use on MCU. It would have been nice if they had a separate function for FFT size. I'm playing with FFT size of 32, the smallest, 2 precalculated tables should be 64+64 ints in size in my case but instead are 8192+8192.
So, the solution is to copy the function and modify it locally. Now I'm down to a reasonable size, not 9% but...
Program size: 47,172 bytes (used 18% of a 262,144 byte maximum) (3.46 secs) Minimum Memory Usage: 4248 bytes (13% of a 32768 byte maximum)
It looks beautiful!