TapN : UGen
{
var signalBuffer;
*ar { arg argSignalBuffer, delaytime
= 0.2, mul = 1.0, add = 0.0;
^this.multiChannelPerform('ar1', argSignalBuffer, delaytime, mul,
add)
}
*ar1 { arg argSignalBuffer, delaytime
= 0.2, mul = 1.0, add = 0.0;
^super.ar1.init(argSignalBuffer, delaytime, mul, add)
}
init { arg argSignalBuffer ...
theInputs;
signalBuffer = argSignalBuffer;
inputs = theInputs;
}
}
TapL : TapN
{ }
TapA : TapN
{ }
DelayWr : UGen
{
var signalBuffer;
*ar { arg argSignalBuffer, in
= 0.0;
^this.multiChannelPerform('ar1', argSignalBuffer, in)
}
*ar1 { arg argSignalBuffer, in
= 0.0;
^super.ar1.init(argSignalBuffer, in)
}
init { arg argSignalBuffer ...
theInputs;
signalBuffer = argSignalBuffer;
inputs = theInputs;
}
}
GrainTap : UGen
{
var signalBuffer;
*ar { arg argSignalBuffer, grainDur
= 0.2, pchRatio = 1.0,
pchDispersion = 0.0, timeDispersion = 0.0, overlap =
2.0, mul = 1.0, add = 0.0;
^this.multiChannelPerform('ar1', argSignalBuffer, grainDur, pchRatio,
pchDispersion, timeDispersion, overlap, mul, add)
}
*ar1 { arg argSignalBuffer, grainDur
= 0.2, pchRatio = 1.0,
pchDispersion = 0.0, timeDispersion = 0.0, overlap =
2.0, mul = 1.0, add = 0.0;
^super.ar1.init(argSignalBuffer, grainDur, pchRatio,
pchDispersion, timeDispersion, overlap, mul, add)
}
init { arg argSignalBuffer ...
theInputs;
signalBuffer = argSignalBuffer;
inputs = theInputs;
}
}
PingPongN : UGen
{
*ar { arg argLeft, argRight,
maxDelayTime, actDelayTime, feedback;
var leftBuffer, rightBuffer,
leftDelayedSignal, rightDelayedSignal, output, dummy;
var bufLength;
bufLength = Synth.sampleRate
* maxDelayTime;
leftBuffer = Signal.new(bufLength); // allocate a buffer for the left delay line
rightBuffer = Signal.new(bufLength); // allocate a buffer for the right delay line
leftDelayedSignal = TapN.ar(leftBuffer,
actDelayTime); // tap the left
delay line
rightDelayedSignal = TapN.ar(rightBuffer,
actDelayTime); // tap the right
delay line
// mix the delayed signal with
the input
output = [leftDelayedSignal + argLeft, rightDelayedSignal +
argRight];
dummy = DelayWr.ar([rightBuffer,
leftBuffer], output * feedback); // feedback
to buffers in reverse order
^output <! dummy; // output
the mixed signal and force the DelayWr into the call graph
}
}
PingPongL : UGen
{
*ar { arg argLeft, argRight,
maxDelayTime, actDelayTime, feedback;
var leftBuffer, rightBuffer,
leftDelayedSignal, rightDelayedSignal, output, dummy;
var bufLength;
bufLength = Synth.sampleRate
* maxDelayTime;
leftBuffer = Signal.new(bufLength); // allocate a buffer for the left delay line
rightBuffer = Signal.new(bufLength); // allocate a buffer for the right delay line
leftDelayedSignal = TapL.ar(leftBuffer,
actDelayTime); // tap the left
delay line
rightDelayedSignal = TapL.ar(rightBuffer,
actDelayTime); // tap the right
delay line
// mix the delayed signal with
the input
output = [leftDelayedSignal + argLeft, rightDelayedSignal +
argRight];
dummy = DelayWr.ar([rightBuffer,
leftBuffer], output * feedback); // feedback
to buffers in reverse order
^output <! dummy; // output
the mixed signal and force the DelayWr into the call graph
}
}
DelayProcessN : UGen {
*ar { arg process, in, maxDelayTime,
actDelayTime, feedback;
var buffer, bufLength,
delayedSignal, output, dummy;
bufLength = Synth.sampleRate
* maxDelayTime;
buffer = Signal.new(bufLength); // allocate a buffer for the left delay line
delayedSignal = TapN.ar(buffer, actDelayTime); // tap the left delay line
output = process.value(delayedSignal) * feedback + in;
// mix the delayed signal with
the input
dummy = DelayWr.ar(buffer,
output);
^output <! dummy; // output
the mixed signal and force the DelayWr into the call graph
}
}
DelayProcessL : UGen {
*ar { arg process, in, maxDelayTime,
actDelayTime, feedback;
var buffer, bufLength,
delayedSignal, output, dummy;
bufLength = Synth.sampleRate
* maxDelayTime;
buffer = Signal.new(bufLength); // allocate a buffer for the left delay line
delayedSignal = TapL.ar(buffer, actDelayTime); // tap the left delay line
output = process.value(delayedSignal) * feedback + in;
// mix the delayed signal with
the input
dummy = DelayWr.ar(buffer,
output); // feedback to buffers in reverse
order
^output <! dummy; // output
the mixed signal and force the DelayWr into the call graph
}
}
This page was created by SimpleText2Html 1.0.3 on 22-Feb-100.