linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / BufSamples.schelp
blob6b23ace3e61ff67ea0d8c8333032215750670f98
1 class:: BufSamples
2 summary:: Current number of samples in buffer.
3 related:: Classes/BufChannels, Classes/BufDur, Classes/BufFrames, Classes/BufRateScale, Classes/BufSampleRate
4 categories::  UGens>Buffer>Info
6 Description::
8 Returns the current number of allocated samples. A sample is not the same as a frame (compare with link::Classes/BufFrames:: ); a frame includes the samples in each channel of the buffer. Only for a mono buffer are samples the same as frames.
9 formula::
10 samples = frames * numChannels
14 classmethods::
16 method::kr, ir
18 argument::bufnum
19 Buffer index.
21 discussion::
22 warning::
23 The  code::.ir::  method is not the safest choice.
24 Since a buffer can be reallocated at any time, using
25 code::.ir::  will not track the changes.
28 examples::
29 code::
30 // example; this buffer is mono, so the number of samples matches the number of frames
31 b = Buffer.read(s, Help.dir +/+ "sounds/a11wlk01.wav");
33 // indexing with a phasor
34 { BufRd.ar(1, b, Phasor.ar(0, BufRateScale.kr(b), 0, BufSamples.kr(b))) }.play;
36 // indexing by hand
37 { BufRd.ar(1, b, K2A.ar(MouseX.kr(0, BufSamples.kr(b)))) }.play;
39 b.free;