linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / BufWr.schelp
blob87a54e1f25f0b3c980d2524db014a9ea67987014
1 class:: BufWr
2 summary:: Buffer writing oscillator.
3 related:: Classes/BufRd
4 categories::  UGens>Buffer
6 Description::
7 Write to a buffer at an index.
9 note:: BufWr (in difference to  link::Classes/BufRd:: ) does not do multichannel expansion, because input is an array. ::
11 classmethods::
12 private:: categories
14 method::ar, kr
16 argument::inputArray
17 Input UGens (channelArray).
19 argument::bufnum
20 The index of the buffer to use.
22 argument::phase
23 Modulateable index into the buffer (has to be audio rate).
24 Warning:: The phase argument only offers precision for addressing 2**24 samples (about 6.3 minutes at 44100Hz) ::
26 argument::loop
27 1 means true, 0 means false. This is modulateable.
29 instancemethods::
30 private:: checkInputs
32 Examples::
34 code::
37 // allocate a buffer for writinig into
38 s = Server.local;
39 s.sendMsg("/b_alloc", 0, 44100 * 2);
43 //write into the buffer with a BufWr
45 y = { arg rate=1;
46         var in;
47         in = SinOsc.ar(LFNoise1.kr(2, 300, 400), 0, 0.1);
48         BufWr.ar(in, 0, Phasor.ar(0, BufRateScale.kr(0) * rate, 0, BufFrames.kr(0)));
49         0.0 //quiet
50 }.play;
53 //read it with a BufRd
55 x = { arg rate=1;
56         BufRd.ar(1, 0, Phasor.ar(0, BufRateScale.kr(0) * rate, 0, BufFrames.kr(0)))
57 }.play(s);
62 x.set(\rate, 5);
63 y.set(\rate, 2.0.rand);
64 x.set(\rate, 2);