Max/MSP provides the fft˜ and ifft˜ objects to transform signals to and from the frequency domain.
In music contexts, we typically need to overlap time-domain windows both before and after processing in the frequency-domain.
To simplify this process, Max/MSP provides a specialized object called pfft˜.
The pfft˜ object takes an argument specifying a subpatch that describes the frequency-domain processing to be applied to a signal, as well as arguments controlling the FFT size and the window overlap (the third argument is a factor used to determine the hop size in samples as: hop size = FFT size / factor). The subpatch must contain the fftin˜ and fftout˜ objects.
In the subpatch shown above, the arguments to the fftin˜ and fftout˜ objects are the inlet and outlet number of the pfft˜ object, respectively.
The fftin˜ object provides real and imaginary data vectors on a frame-by-frame basis.
A subpatch that performs an incorrect “convolution” is demonstrated below.