1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
class:: PingPong
summary:: Stereo ping-pong delay.
related:: Classes/SinOsc
categories:: UGens>Delays>Buffer
Description::
Bounces sound between two outputs… Like a ping-pong ball. PingPong is
actually a compound built upon link::Classes/RecordBuf:: and
link::Classes/PlayBuf:: .
classmethods::
method::ar
argument::bufnum
First index of a multi channel buffer.
argument::inputs
An array of audio inputs, the same size as your buffer.
argument::delayTime
Delay time in seconds.
argument::feedback
Feedback coefficient.
argument::rotate
Which rotates the inputArray by one step. (left → right, right →
left). Rotation of 0 (or 2) would result in no rotation to the
inputArray. You cannot modulate this number by assigning it to a control in a SynthDef.
Examples::
code::
(
s = Server.local;
s.waitForBoot({
b = Buffer.alloc(s, 44100 * 2, 2);
SynthDef("help-PingPong", { |out = 0, bufnum = 0, feedback = 0.5, delayTime = 0.2|
var left, right;
left = Decay2.ar(Impulse.ar(0.7, 0.25), 0.01, 0.25,
SinOsc.ar(SinOsc.kr(3.7,0,200,500)));
right = Decay2.ar(Impulse.ar(0.5, 0.25), 0.01, 0.25,
Resonz.ar(PinkNoise.ar(4), SinOsc.kr(2.7,0,1000,2500), 0.2));
Out.ar(out ,
PingPong.ar(bufnum, [left,right], delayTime, feedback, 1)
)
}).play(s, [\out, 0, \bufnum, b.bufnum, \feedback, 0.5, \delayTime,0.1]);
})
)
b.free;
(
s = Server.local;
s.waitForBoot({
b = Buffer.alloc(s, 44100 * 2, 2);
SynthDef("help-PingPong", { |out = 0, bufnum = 0|
var left, right;
left = Decay2.ar(Impulse.ar(0.7, 0.25), 0.01, 0.25,
SinOsc.ar(SinOsc.kr(3.7,0,200,500)));
right = Decay2.ar(Impulse.ar(0.5, 0.25), 0.01, 0.25,
Resonz.ar(PinkNoise.ar(4), SinOsc.kr(2.7,0,1000,2500),
0.2));
Out.ar(out,
PingPong.ar(bufnum, [left, right] * EnvGen.kr(Env([1, 1, 0], [2, 0.1])),
0.1, 0.8, 1)
)
}).play(s, [\out, 0, \bufnum, b.bufnum]);
});
)
b.free;
::
|