BufWr buffer writing oscillator



write to a buffer at an index

see also BufRd




BufWr.ar(input, bufnum, phase, loop)


input input ugens (channelArray) 

bufnum the index of the buffer to use

phase   modulatable index into the buffer (has to be audio rate). Warning: The phase argument only offers precision for addressing 2**24 samples (about 6.3 minutes at 44100Hz)

loop      1 means true, 0 means false.  this is modulatable.




Note: BufWr (in difference to BufRd) does not do multichannel expansion, because input is an array.





(

// allocate a buffer for writing into

s = Server.local;

s.waitForBoot{

s.sendMsg("/b_alloc", 0, 44100 * 2);

}

)



//write into the buffer with a BufWr

(

y = { arg rate=1; 

var in;

in = SinOsc.ar(LFNoise1.kr(2, 300, 400), 0, 0.1);

BufWr.ar(in, 0, Phasor.ar(0, BufRateScale.kr(0) * rate, 0, BufFrames.kr(0)));

0.0 //quiet

}.play;

)


//read it with a BufRd

(

x = { arg rate=1; 

BufRd.ar(1, 0, Phasor.ar(0, BufRateScale.kr(0) * rate, 0, BufFrames.kr(0))) 

}.play(s);

)




x.set(\rate, 5);

y.set(\rate, 2.0.rand);

x.set(\rate, 2);