PFFT Maximum FFT size

Alban Bassuet's icon

Anyone knows why PFFT~ won't work above an FFT size of 2048? is it related to Max maximum vector size? the object does not seem to provide audio output above 2,000Hz. I'm looking to use an FFT size of 16,384 to build a 3rd octave FFT filter bank.

Jean-Francois Charles's icon

pfft~ has worked with sizes such as 4096 for a very long time.

Hmm, which version of Max are you using? Current version 8.6.1 supports a FFT size of 16384.

If you think something is not working, please post a patch, so we can test and check.

Not sure it's the best option for a 3rd octave filter bank, but that's another discussion topic!

Alban Bassuet's icon
PFFT_TEST.maxpat
Max Patch
3rd_Oct_FFT_Bank.txt
txt 496.17 KB

Hi Jean-Francois, updating to 8.6.1 did not make a difference. There still seem to be a truncation around 1,000 to 2,000 Hz, which would indicate a max FFT size for PPF object to 2048 or 4096. I was hoping to avoid re-building a STFT from scratch. See test patch and filter bank to read for the coll object. Trying with a simple multislide make its clear.

3rd oct filter - yes I agree, would normally just do this in the time domain, but in this case the patch needs to implement large dB correction and metering (>120dB overall, >60 between bands), which I've already built with very high Q filters (e.g. cheby), but creates big phase shifts, and hoping to upgrade to FFT instead. The patch also receives 3rd oct data points and interpolates for FFT filtering to avoid the band-pass plateaux.

Alban Bassuet's icon

I found the issue. I'm using a previous pfft from Forbidden Planet. I'll make my own.

Roman Thilenius's icon

There still seem to be a truncation around 1,000 to 2,000 Hz, which would indicate a max FFT size for PPF object to 2048 or 4096.

an FFT always goes through the whole spectrum.

Alban Bassuet's icon

@Jean-Francois - have you ever tried to build an inverse FFT filter with PFFT that would subtract a smoothed spectrum of the input from the incoming signal? works easily in Matlab with minimum phase reconstruction applied to the smoothed spectrum, but in Max, not sure how to approach this.