rendered paste body({
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);
)