I’m developing multi-channel (up to 16 input) VST plug-ins.To reduce the amount of processing required I’m trying to compute a 2D FFT of all channels simultaneously, rather than a separate FFT for each, using the FFTW library.
My understanding is that each channel of the AudioSampleBuffer is defined as a separate block of contiguous memory, but the 2D FFTW transform requires one large block of contiguous memory for concurrent audio channels in row-major format. Optimistically I tried the starting pointer of the AudioSampleBuffer (using &audioBuffer.getArrayOfChannels() and audioBuffer.getSampleData(0)) but unsurprisingly it isn’t giving the desired results. Has anybody got any direct experience with this kind of thing? Or just some general information about the memory layout of AudioSampleBuffer, and if (with some pointer trickery) it is possible to consider it as one block of memory ?