PlayBufCF crossfading version of playbuf

part of wslib


PlayBufCF.ar(numChannels, bufnum, rate, trigger, startPos, loop, lag )


Arguments are the same as PlayBuf. But PlayBufCF makes a crossfade every time it is triggered. In order to do so it uses two PlayBufs internally uses equal power crossfades between them. Triggers can be audio or control rate.


lag: the crossfade duration in seconds (default: 0.1)


See also: PlayBuf



b = Buffer.read(s, "sounds/a11wlk01.wav"); // remember to free the buffer later.


(

z = SynthDef(\help_PlayBufCF, {

Out.ar( \out.ir(0), 

PlayBufCF.ar(1, \bufnum.kr(0), BufRateScale.kr(\bufnum.kr), 

Impulse.kr(2), 

WhiteNoise.kr(1).range(0, BufFrames.kr(\bufnum.kr) - (0.5 * 44100) ) )

)

}).play(s, [\bufnum, b]);

)


z.free;


/// compare with PlayBuf:

(

y = SynthDef(\help_PlayBufCF2, {| out = 0, bufnum = 0 |

Out.ar( \out.ir(0), 

PlayBuf.ar(1,  \bufnum.kr(0), BufRateScale.kr(\bufnum.kr), 

Impulse.kr(2), 

WhiteNoise.kr(1).range(0, BufFrames.kr(\bufnum.kr) - (0.5 * 44100) ) )

)

}).play(s, [\bufnum, b]);

)


y.free;

b.free;