({ var in, chain; in = PlayBuf.ar(1, b, loop:1); chain = FFT(LocalBuf(1024), in); chain = chain.pvcalc( 1024, {|mags, phases| var size = mags.size; for(0, size / 2, {|i| var m = mags[i]; var p = phases[i]; mags[i] = mags[size-1 - i]; phases[i] = phases[size-1 - i]; mags[size-1 - i] = m; phases[size-1 - i] = p; }); [mags, phases]; } ); IFFT(chain); }.play(s); ) // And even easier: ({ var in, chain; in = PlayBuf.ar(1, b, loop:1); chain = FFT(LocalBuf(1024), in); chain = chain.pvcalc( 1024, {|mags, phases| [mags.reverse, phases.reverse]; } ); IFFT(chain); }.play(s); )