class:: PV_BinWipe
summary:: Combine low and high bins from two inputs.
categories:: UGens>FFT

Description::

Copies low bins from one input and the high bins of the other.


classmethods::

method::new

argument::bufferA

FFT buffer A.


argument::bufferB

FFT buffer B.


argument::wipe

Can range between -1 and +1.


If
code::wipe::  == 0, then the output is the same
as
code::bufferA:: .


If
code::wipe::  > 0, then it begins replacing
with bins from
code::bufferB::  from the bottom up.


If
code::wipe::  < 0, then it begins replacing
with bins from
code::bufferB::  from the top down.


Examples::

code::
s.boot;
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");

(
SynthDef("help-binWipe", { arg out=0;
	var inA, chainA, inB, chainB, chain;
	inA = WhiteNoise.ar(0.2);
	inB = LFSaw.ar(100, 0, 0.2);
	chainA = FFT(LocalBuf(2048), inA);
	chainB = FFT(LocalBuf(2048), inB);
	chain = PV_BinWipe(chainA, chainB, MouseX.kr(-1, 1));
	Out.ar(out, 0.1 * IFFT(chain).dup);
}).play(s);
)

(
SynthDef("help-binWipe2", { arg out=0, soundBufnum=2;
	var inA, chainA, inB, chainB, chain;
	inA = WhiteNoise.ar(0.2);
	inB = PlayBuf.ar(1, soundBufnum, BufRateScale.kr(soundBufnum), loop: 1);
	chainA = FFT(LocalBuf(2048), inA);
	chainB = FFT(LocalBuf(2048), inB);
	chain = PV_BinWipe(chainA, chainB, MouseX.kr(-1, 1));
	Out.ar(out, 0.1 * IFFT(chain).dup);
}).play(s, [\soundBufnum, b]);
)
::
