suitable application for 2d FFT
You should consider what you're doing.

Let me draw your audio data in the manner I understood it's in your memory. I'll call your channels A,B,C,D, and number their respective samples increasingly:

A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 …


Now, if you want to apply a 2D FFT, your data needs to have the structure of 2D data – i.e. a matrix. You didn't quite specify, but I assume you've got a matrix

$$
\mathbf S = \begin{pmatrix}
A_0 &amp; B_0 &amp; C_0 &amp; D_0\\
A_1 &amp; B_1 &amp; C_1 &amp; D_1\\
A_2 &amp; B_2 &amp; C_2 &amp; D_2\\
A_3 &amp; B_3 &amp; C_3 &amp; D_3\\
 \vdots &amp; \vdots &amp; \vdots &amp; \vdots\\
A_{N-2} &amp; B_{N-2} &amp; C_{N-2} &amp; D_{N-2}\\
A_{N-1} &amp; B_{N-1} &amp; C_{N-1} &amp; D_{N-1}\\
\end{pmatrix}
$$
And you're applying the $4\times N$ DFT (FFT):

$$\begin{align}
\hat{\mathbf{S}} &amp;= \text{DFT}_{4\times N}\left\{\mathbf S\right\}\\
&amp;= \left(\frac1{\sqrt{4N}}\sum_{n=0}^N\sum_{m=0}^4 S_{n,m}\, e^{j2\pi\left(\frac{nk}N + \frac{ml}4\right)} \right)_{k,l}\tag1\\
&amp;=\left(\frac1{2\sqrt N}\sum_{n=0}^N
A_n e^{j2\pi\left(\frac{nk}N + 0\right)}
+ B_n e^{j2\pi\left(\frac{nk}N + \frac l4\right)}
+ C_n e^{j2\pi\left(\frac{nk}N + \frac {2l}4\right)}
+ D_n e^{j2\pi\left(\frac{nk}N + \frac {3l}4\right)}
 \right)_{k,l}\\
&amp;=\left(\frac1{2\sqrt N}\sum_{n=0}^N
A_n e^{j2\pi\frac{nk}N}
+ B_n e^{j2\pi\frac{nk}N} e^{j\frac12\pi l}
+ C_n e^{j2\pi\frac{nk}N} e^{j\pi l}
+ D_n e^{j2\pi\frac{nk}N} e^{j\pi \frac32 l}
 \right)_{k,l}
\end{align}
$$

Looking at the last line: you've got to ask yourself whether you really want to have the DFT over each of your 4-channel frames – that sounds intuitively wrong.

Look at eq. $(1)$: you can swap the summations; hence, it doesn't matter if you first take the FFT of every channel column vector in "time direction", and then the row-wise FFT of the resulting matrix in "channels direction", or first do the row-wise FFT over all four channels, and then over all times.

I think you really want 4 1D-FFTs of length $N$, and not one $N\times 4$ 2D-FFT.

Luckily, the advanced 1D-FFT real-to-complex API of FFTw makes it really easy to do four identical FFTs on interleaved data. I annotated the API with the values that seem to be apporpriate for your use case:

fftw_plan fftw_plan_many_dft_r2c(int rank, // Dimensionality == 1 
        const int *n,       // FFT input length == N
        int howmany,        // Amount of FFTs == 4
        double *in,     // pointer to A0
        const int *inembed, // pad/truncate input ? No --&gt; NULL
        int istride,        // Distance between input elements that belong to the *same* FFT == 4
        int idist,      // Distance between the first elements of different FFTs == 1
        fftw_complex *out,  // pointer to output space
        const int *onembed, // see above inembed
        int ostride,        // same as above
        int odist,      // same as above
        unsigned flags);    // allow destruction of input buffer? Measure or guess the best algorithm?