PV_RandWipe crossfade in random bin order


PV_RandWipe.ar(bufferA,  bufferB,  wipe,  trig)


Cross fades between two sounds by copying bins in a random order.

bufferA - fft buffer A.

bufferB - fft buffer B.

wipe - copies bins from bufferB in a random order as wipe goes from 0 to 1.

trig - a trigger selects a new random ordering.


s.boot;

(

b = Buffer.alloc(s,2048,1);

c = Buffer.alloc(s,2048,1);

)


(

//trig with MouseY

SynthDef("help-randWipe", { arg out=0, bufnumA=0, bufnumB=1;

var inA, chainA, inB, chainB, chain;

inA = Mix.arFill(6, { LFSaw.ar(exprand(400, 1000), 0, 0.1) }); inB = Mix.arFill(6, { LFPulse.ar(exprand(80, 400), 0, 0.2, SinOsc.kr(8.0.rand, 0, 0.2).max(0)) });

chainA = FFT(bufnumA, inA);

chainB = FFT(bufnumB, inB);

chain = PV_RandWipe(chainA, chainB, MouseX.kr, MouseY.kr > 0.5); 

Out.ar(out, 0.5 * IFFT(chain).dup);

}).play(s,[\out, 0, \bufnumA, b.bufnum, \bufnumB, c.bufnum ]);

)