FFTW
-
Does HISE use JUCE FFT or FFTW? I don't know what the difference is but apparently FFTW gives better performance. I was thinking it might be a good alternative to IPP for "open source" projects.
I base my assumptions on this - https://forum.juce.com/t/juce-fft-vs-fftw-benchmarking/18787
-
Yes and the convolution library I am using already has a FFTW wrapper, so the integration is trivial however IPP fully meets my current requirements so I didn‘t bother yet.
-
@christoph-hart I noticed a switch in the projucer to use FFTW, will enabling that do the trick? Or is the more behind the scenes stuff you'd need to do?
-
Hello past Dave. I finally decided to flick that switch and see what it did, I also needed to include
AUDIOFFT_FFTW3=1
in my extra definitions. Build worked and I suppose I now have faster FFT that before... :) -
@d-healey Whoa! What??
-
@d-healey Have you noticed a difference?
-
@Lunacy-Audio Not yet, I haven't tested it :) I never noticed any issues using the fallback (KISSFFT) but I'm working on a project that will have a bit more FFT stuff in it so I figured I should go for the best available.
FFTW3 is only suitable if you'll be releasing your project under the GNU GPL, otherwise stick with IPP or KISSFFT. Also the analyser won't work without IPP still.
-
@d-healey Sir Can You Give A Quick Guide So Ee Can Check How To Run Our Projects Under This FFTW3?
What Changes Needed? -
@Natan I enabled the
JUCE_DSP_USE_SHARED_FFTW
flag and addedAUDIOFFT_FFTW3=1
in the extra definitions. If you're not on GNU/Linux you'll probably need to install FFTW3 on your OS and use theJUCE_DSP_USE_STATIC_FFTW
flag instead. You'll possibly also need to add some header and library search paths and linker flags. -
I'm afraid this won't help too much because I don't use the JUCE FFT wrapperHowever there is a preprocessor macro that directly targets the FFT algorhitm used by the convolution. Try definingAUDIOFFT_FFTW3=1
and check whether it improves the performance. AFAIK the library picks the best available routine, so it should pick FFTW over Ooura or KISS FFT as soon as you compile it with this flag enabled.EDIT: Just read your last post properly, the
AUDIOFFT_FFTW3
flag should do the trick... -
@d-healey Sir, Are you seeing a big difference After using FFTW3, For example In Convolution Reverb,
And I read that you mentioned We still Need IPP, So Can both work together? -
FFTW is only an option if you publish your work under the GPL3 license (also if you have IPP available you won't see any performance benefit).