home/ atoms/ sc-bufrd-phasor-arbitrary-pointer

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)?

“you can use ANY audio rate UGen as a frame pointer, so long as that UGen has an appropriate output range.”
corpus · supercollider-tutorials-full-transcripts-and-code-eli-fields · chunk 21