object BufRd extends ProductReader[BufRd] with Serializable
A UGen which reads the content of a buffer, using an index pointer.
Warning: if the supplied buf
refers to a buffer whose number of channels
differs from numChannels
, the UGen will fail silently.
An alternative to BufRd
is PlayBuf
. While PlayBuf
plays through the
buffer by itself, BufRd
only moves its read point by the index input and
therefore has no pitch input. PlayBuf
uses cubic interpolation, while BufRd
has variable interpolation. PlayBuf
can determine the end of the buffer and
issue a done-action.
Examples
// Write and read val b = Buffer.alloc(s, numFrames = 32768, numChannels = 1) // write into the buffer with a BufWr val y = play { val in = SinOsc.ar(LFNoise1.kr(2).mulAdd(300, 400)) * 0.1 val rate = "rate" kr 1 BufWr.ar(in, b.id, Phasor.ar(0, BufRateScale.kr(b.id) * rate, 0, BufFrames.kr(b.id))) 0.0 // quiet } // read it with a BufRd val x = play { val rate = "rate" kr 1 BufRd.ar(1, b.id, Phasor.ar(0, BufRateScale.kr(b.id) * rate, 0, BufFrames.kr(b.id))) } y.set("rate" -> 0.5) // notice the clicks when the play head overtakes the write head! x.set("rate" -> 0.5) y.set("rate" -> 1.0)
- Alphabetic
- By Inheritance
- BufRd
- Serializable
- ProductReader
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ar(numChannels: Int, buf: GE, index: GE = 0.0f, loop: GE = 1, interp: GE = 2): BufRd
- numChannels
number of channels that the buffer will be. Since this is an integer constant, a change in the number of channels must be reflected by creating different SynthDefs.
- buf
the identifier of the buffer to use
- index
audio rate frame-index into the buffer. Can be fractional.
- loop
1 to enable looping, 0 to disable looping. this can be modulated.
- interp
1 for no interpolation, 2 for linear, and 4 for cubic interpolation. (init-time only)
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def ir(numChannels: Int, buf: GE, index: GE = 0.0f, loop: GE = 1, interp: GE = 2): BufRd
- numChannels
number of channels that the buffer will be. Since this is an integer constant, a change in the number of channels must be reflected by creating different SynthDefs.
- buf
the identifier of the buffer to use
- index
audio rate frame-index into the buffer. Can be fractional.
- loop
1 to enable looping, 0 to disable looping. this can be modulated.
- interp
1 for no interpolation, 2 for linear, and 4 for cubic interpolation. (init-time only)
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def kr(numChannels: Int, buf: GE, index: GE = 0.0f, loop: GE = 1, interp: GE = 2): BufRd
- numChannels
number of channels that the buffer will be. Since this is an integer constant, a change in the number of channels must be reflected by creating different SynthDefs.
- buf
the identifier of the buffer to use
- index
audio rate frame-index into the buffer. Can be fractional.
- loop
1 to enable looping, 0 to disable looping. this can be modulated.
- interp
1 for no interpolation, 2 for linear, and 4 for cubic interpolation. (init-time only)
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def read(in: RefMapIn, key: String, arity: Int): BufRd
- Definition Classes
- BufRd → ProductReader
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated