BufferOps

final class BufferOps(b: Buffer) extends AnyVal
class AnyVal
trait Matchable
class Any

Value members

Concrete methods

def alloc(numFrames: Int, numChannels: Int, completion: Optional[Packet]): Future[Unit]
def allocRead(path: String, startFrame: Int, numFrames: Int, completion: Optional[Packet]): Future[Unit]
def allocReadChannel(path: String, startFrame: Int, numFrames: Int, channels: Seq[Int], completion: Optional[Packet]): Future[Unit]
def cheby(amps: Seq[Float], normalize: Boolean, wavetable: Boolean, clear: Boolean): Future[Unit]

Fills the buffer with a series of Chebyshev polynomials. The formula of these polynomials is

Fills the buffer with a series of Chebyshev polynomials. The formula of these polynomials is

cheby(n) = amplitude  * cos(n * acos(x))

To eliminate a DC offset when used as a wave-shaper, the wavetable is offset so that the center value is zero.

Value Params
amps

amplitudes for the harmonics. amplitudes for the harmonics. The first value specifies the amplitude for n = 1, the second float value specifies the amplitude for n = 2, and so on.

clear

if set, the previous content is erased, otherwise the new waveform is added to the existing content

normalize

if set, the peak amplitude of the generated waveform is normalized to 1.0

wavetable

if set, the format of the waveform is chosen to be usable by specific UGens such as such as Shaper or Osc

def close(completion: Optional[Packet]): Unit
def fill(value: Double): Unit
def fill(data: FillRange*): Unit
def free(completion: Optional[Packet]): Unit
def gen(command: Command): Future[Unit]
def get(indices: Int*): Future[IndexedSeq[Float]]
def getData(offset: Int, num: Int): Future[IndexedSeq[Float]]

Retrieves the entire buffer contents. This is similar to getToFloatArray in sclang. If multiple packets must be sent due to the size, they will be scheduled strictly sequentially. This is safe but potentially slow for large buffers.

Retrieves the entire buffer contents. This is similar to getToFloatArray in sclang. If multiple packets must be sent due to the size, they will be scheduled strictly sequentially. This is safe but potentially slow for large buffers.

Value Params
num

the number of samples to get; for multi-channel buffers to indicate a specific number of frames, the number must be multiplied by the number of channels. The special value -1 means that all samples should be retrieved

offset

offset into the buffer in samples; for multi-channel buffers to indicate a specific frame the frame index must be multiplied by the number of channels

def getn(pairs: Range*): Future[IndexedSeq[Float]]

Gets ranges of the buffer content and returns them as a future flattened collection.

Gets ranges of the buffer content and returns them as a future flattened collection.

def play(loop: Boolean, amp: Double, out: Int): Synth
def read(path: String, fileStartFrame: Int, numFrames: Int, bufStartFrame: Int, leaveOpen: Boolean, completion: Optional[Packet]): Future[Unit]
def readChannel(path: String, fileStartFrame: Int, numFrames: Int, bufStartFrame: Int, leaveOpen: Boolean, channels: Seq[Int], completion: Optional[Packet]): Future[Unit]
def set(pairs: FillValue*): Unit

Sets the contents of the buffer by replacing individual sample values. An error is thrown if any of the given offsets is out of range.

Sets the contents of the buffer by replacing individual sample values. An error is thrown if any of the given offsets is out of range.

Value Params
pairs

a list of modifications to the buffer contents, each element being a sample offset and the sample value. The sample offset ranges from zero to the number of samples in the buffer (exclusive), i.e. numChannels * numFrames. For instance, in a stereo-buffer, the offset for the right channel's fifth frame is (5-1) * 2 + 1 = 9.

def setData(values: IndexedSeq[Float], offset: Int): Future[Unit]

Transmits a collection to fill the entire buffer contents. This is similar to sendCollection in sclang, If multiple packets must be sent due to the size, they will be scheduled strictly sequentially. This is safe but potentially slow for large buffers.

Transmits a collection to fill the entire buffer contents. This is similar to sendCollection in sclang, If multiple packets must be sent due to the size, they will be scheduled strictly sequentially. This is safe but potentially slow for large buffers.

Value Params
offset

offset into the buffer in samples; for multi-channel buffers to indicate a specific frame the frame index must be multiplied by the number of channels

values

the collection to copy into the buffer; values are assumed to be de-interleaved if the buffer has multiple channels.

def setn(v: IndexedSeq[Float]): Unit

Sets the entire contents of the buffer. An error is thrown if the number of given values does not match the number of samples in the buffer.

Sets the entire contents of the buffer. An error is thrown if the number of given values does not match the number of samples in the buffer.

Value Params
v

the new content of the buffer. the size of the sequence must be exactly the number of samples in the buffer, i.e. numChannels * numFrames. Values are channel-interleaved, that is for a stereo-buffer the first element specifies the value of the first frame of the left channel, the second element specifies the value of the first frame of the right channel, followed by the second frame of the left channel, etc.

def setn(pairs: (Int, IndexedSeq[Float])*): Unit

Sets the contents of the buffer by replacing individual contiguous chunks of data. An error is thrown if any of the given ranges lies outside the valid range of the entire buffer.

Sets the contents of the buffer by replacing individual contiguous chunks of data. An error is thrown if any of the given ranges lies outside the valid range of the entire buffer.

Value Params
pairs

a list of modifications to the buffer contents, each element being a sample offset and a chunk of values. The data is channel-interleaved, e.g. for a stereo-buffer, the offset for the right channel's fifth frame is (5-1) * 2 + 1 = 9. Accordingly, values in the float-sequences are considered channel-interleaved, i.e. for a stereo buffer and an even offset, the first element of the sequence refers to frame offset / 2 of the left channel, the second element to frame offset / 2 of the right channel, followed by frame offset / 2 + 1 of the left channel, and so on.

def sine1(partials: Seq[Float], normalize: Boolean, wavetable: Boolean, clear: Boolean): Future[Unit]

Fills the buffer with a series of sine wave harmonics using specified amplitudes.

Fills the buffer with a series of sine wave harmonics using specified amplitudes.

Value Params
clear

if set, the previous content is erased, otherwise the new waveform is added to the existing content

normalize

if set, the peak amplitude of the generated waveform is normalized to 1.0

partials

amplitudes for the harmonics. The first value specifies the amplitude of the first partial, the second float value specifies the amplitude of the second partial, and so on.

wavetable

if set, the format of the waveform is chosen to be usable by interpolating oscillators such as Osc or VOsc

def sine2(partials: Seq[(Float, Float)], normalize: Boolean, wavetable: Boolean, clear: Boolean): Future[Unit]

Fills the buffer with a series of sine waves using specified frequencies and amplitudes.

Fills the buffer with a series of sine waves using specified frequencies and amplitudes.

Value Params
clear

if set, the previous content is erased, otherwise the new waveform is added to the existing content

normalize

if set, the peak amplitude of the generated waveform is normalized to 1.0

partials

pairs of frequencies and amplitudes for the partials. Frequencies are given as in cycles per buffer.

wavetable

if set, the format of the waveform is chosen to be usable by interpolating oscillators such as Osc or VOsc

def sine3(partials: Seq[(Float, Float, Float)], normalize: Boolean, wavetable: Boolean, clear: Boolean): Future[Unit]

Fills the buffer with a series of sine waves using specified frequencies, amplitudes, and phases.

Fills the buffer with a series of sine waves using specified frequencies, amplitudes, and phases.

Value Params
clear

if set, the previous content is erased, otherwise the new waveform is added to the existing content

normalize

if set, the peak amplitude of the generated waveform is normalized to 1.0

partials

triplets of frequencies, amplitudes and initial phases for the partials. Frequencies are given as in cycles per buffer. Phases are given in radians.

wavetable

if set, the format of the waveform is chosen to be usable by interpolating oscillators such as Osc or VOsc

def write(path: String, fileType: AudioFileType, sampleFormat: SampleFormat, numFrames: Int, startFrame: Int, leaveOpen: Boolean, completion: Optional[Packet]): Future[Unit]
def zero(completion: Optional[Packet]): Future[Unit]