48 lines
1,009 B
Text
48 lines
1,009 B
Text
|
class:: Tap
|
||
|
summary:: Single tap into a delay line
|
||
|
related:: Classes/MultiTap, Classes/PlayBuf
|
||
|
categories:: UGens>Buffer, UGens>Delays>Buffer
|
||
|
|
||
|
Description::
|
||
|
|
||
|
The Tap UGen allows a single tap at a delay into a buffer.
|
||
|
|
||
|
Tap uses the link::Classes/PlayBuf:: UGen internally
|
||
|
|
||
|
classmethods::
|
||
|
private:: categories
|
||
|
|
||
|
method::ar
|
||
|
|
||
|
argument::bufnum
|
||
|
The index of the buffer to use
|
||
|
|
||
|
argument::numChannels
|
||
|
Number of channels of the buffer
|
||
|
|
||
|
argument::delaytime
|
||
|
Tap delay; cannot be modulated
|
||
|
|
||
|
examples::
|
||
|
code::
|
||
|
// Create a buffer.
|
||
|
b=Buffer.alloc(s, s.sampleRate, 1); //enough space for one second of mono audio
|
||
|
|
||
|
// Write to the Buffer with BufWr, read using two Taps, one for each ear!
|
||
|
(
|
||
|
SynthDef(\helpTap, {|bufnum|
|
||
|
var source, capture;
|
||
|
|
||
|
source= SoundIn.ar(0); //use headphones to avoid feedback
|
||
|
capture= BufWr.ar(source, bufnum, Phasor.ar(0,1, 0, BufFrames.ir(bufnum),1));
|
||
|
|
||
|
Out.ar(0, Tap.ar(bufnum, 1, [0.1,0.9])); //multichannel expansion, so one tap each ear
|
||
|
}).add;
|
||
|
)
|
||
|
|
||
|
x=Synth(\helpTap,[\bufnum, b]);
|
||
|
|
||
|
x.free;
|
||
|
::
|
||
|
|