Custom c++ node.
You can get by quite easily by using the built in Juce fft:
// FFT object static constexpr int fftSize = 128; static constexpr int hopSize = 16; juce::dsp::FFT fft { (int)std::log2(fftSize) };That would create the required object. Then you'd need to write a loop process in order to call something like:
fft.performRealOnlyForwardTransform(fftBuffer.get());I just wrote a node recently to process an audio buffer with FFT's. It works really well.