BufRd reads a Buffer at any frame index, enabling sinusoidal, noise-driven, and custom playback paths
BufRd takes an explicit audio-rate frame pointer rather than advancing automatically. This pointer can be any UGen signal with an appropriate output range. Phasor is the standard choice for looping (linear ramp with configurable rate and bounds, using BufRateScale for speed). SinOsc as a pointer scrubs the buffer forward and backward sinusoidally. LFDNoise1 as a pointer produces a randomized granular-like effect, playing random sections at random speeds. This generality means any signal-shaping idea can be applied to the playback trajectory of a buffer.
Examples
ptr = LFDNoise1.ar(0.75).range(0, BufFrames.kr(buf)-1); sig = BufRd.ar(2, buf, ptr);
ptr = SinOsc.ar(0.2, 3pi/2).range(0, BufFrames.kr(buf)-1); sig = BufRd.ar(2, buf, ptr);
Assessment
Describe what you hear when LFDNoise1 at 0.5 Hz is used as a BufRd pointer vs. at 200 Hz. How would you loop a buffer with BufRd (name the appropriate pointer UGen)?