64 lines
1.1 KiB
Text
64 lines
1.1 KiB
Text
|
#lang scribble/manual
|
||
|
@(require (for-label racket))
|
||
|
|
||
|
@title{Tap}
|
||
|
Single tap into a delay line@section{related}
|
||
|
Classes/MultiTap, Classes/PlayBuf
|
||
|
@section{categories}
|
||
|
UGens>Buffer, UGens>Delays>Buffer
|
||
|
|
||
|
@section{description}
|
||
|
|
||
|
|
||
|
The Tap UGen allows a single tap at a delay into a buffer.
|
||
|
|
||
|
Tap uses the link::Classes/PlayBuf:: UGen internally
|
||
|
|
||
|
@section{classmethods}
|
||
|
|
||
|
@section{private}
|
||
|
categories
|
||
|
|
||
|
@section{method}
|
||
|
ar
|
||
|
|
||
|
@section{argument}
|
||
|
bufnum
|
||
|
The index of the buffer to use
|
||
|
|
||
|
@section{argument}
|
||
|
numChannels
|
||
|
Number of channels of the buffer
|
||
|
|
||
|
@section{argument}
|
||
|
delaytime
|
||
|
Tap delay; cannot be modulated
|
||
|
|
||
|
@section{examples}
|
||
|
|
||
|
|
||
|
@racketblock[
|
||
|
// 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;
|
||
|
::
|
||
|
|
||
|
]
|
||
|
|
||
|
|