A UGen to stream in a signal from an audio file with variable playback speed. Continuously plays a longer audio file from disk. This requires a buffer to be preloaded with one buffer size of sound. If loop is set to 1, the file will loop.
'''Note''': The buffer size must be a multiple of (2 * the server's block
size). See Buffer#cue
for details.
If the speed is too high, the UGen will not execute, posting a warning.
- Value Params
- buf
the id of the buffer with the correct number of channels and frames
- loop
whether the file should loop when its end is reached
- numChannels
the amount of channels the file and the buffer will have. This is an Int and hence must be pre-determined. Different SynthDefs must be created for different numbers of channels
- sendId
If a value other than zero is used, the UGen sends an OSC message with this id and the file position each time it reloads the buffer:
OSCMessage("/diskin", nodeId, sendId, frame)
- speed
controls the speed of playback. The buffer is always streamed at a frequency of
SampleRate.ir * speed
, so the buffer's own sample rate is irrelevant. Factors below 4 are probably fine, but the higher the value, the more disk activity there is, and the more likelihood there will be a problem. The following must be true:rate < bufFrames / (2 * blockSize)
, e.g with typical default values, this will be32768 / (2 * 64) = 256
.
- See also
- Companion
- object