Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / SCClassLibrary / Common / Audio / Delays.sc
blobe1a8c860f773e83b2c8a069d98550d343eb448f2
1 Delay1 : PureUGen {
3         *ar { arg in = 0.0, mul = 1.0, add = 0.0;
4                 ^this.multiNew('audio', in).madd(mul, add)
5         }
6         *kr { arg in = 0.0, mul = 1.0, add = 0.0;
7                 ^this.multiNew('control', in).madd(mul, add)
8         }
11 Delay2 : Delay1 { }
13 ///////////////////////////////////////
15 // these delays use real time allocated memory.
17 DelayN : PureUGen {
19         *ar { arg in = 0.0, maxdelaytime = 0.2, delaytime = 0.2, mul = 1.0, add = 0.0;
20                 ^this.multiNew('audio', in.asAudioRateInput, maxdelaytime, delaytime).madd(mul, add)
21         }
22         *kr { arg in = 0.0, maxdelaytime = 0.2, delaytime = 0.2, mul = 1.0, add = 0.0;
23                 ^this.multiNew('control', in, maxdelaytime, delaytime).madd(mul, add)
24         }
27 DelayL : DelayN { }
28 DelayC : DelayN { }
31 CombN : PureUGen {
33         *ar { arg in = 0.0, maxdelaytime = 0.2, delaytime = 0.2, decaytime = 1.0, mul = 1.0, add = 0.0;
34                 ^this.multiNew('audio', in.asAudioRateInput(this), maxdelaytime, delaytime, decaytime).madd(mul, add)
35         }
36         *kr { arg in = 0.0, maxdelaytime = 0.2, delaytime = 0.2, decaytime = 1.0, mul = 1.0, add = 0.0;
37                 ^this.multiNew('control', in, maxdelaytime, delaytime, decaytime).madd(mul, add)
38         }
41 CombL : CombN { }
42 CombC : CombN { }
44 AllpassN : CombN { }
45 AllpassL : CombN { }
46 AllpassC : CombN { }
48 ///////////////////////////////////////
50 // these delays use shared buffers.
52 BufDelayN : UGen {
54         *ar { arg buf = 0, in = 0.0, delaytime = 0.2, mul = 1.0, add = 0.0;
55                 ^this.multiNew('audio', buf, in.asAudioRateInput, delaytime).madd(mul, add)
56         }
57         *kr { arg buf = 0, in = 0.0, delaytime = 0.2, mul = 1.0, add = 0.0;
58                 ^this.multiNew('control', buf, in, delaytime).madd(mul, add)
59         }
62 BufDelayL : BufDelayN { }
63 BufDelayC : BufDelayN { }
66 BufCombN : UGen {
68         *ar { arg buf = 0, in = 0.0, delaytime = 0.2, decaytime = 1.0, mul = 1.0, add = 0.0;
69                 ^this.multiNew('audio', buf, in.asAudioRateInput(this), delaytime, decaytime).madd(mul, add)
70         }
73 BufCombL : BufCombN { }
74 BufCombC : BufCombN { }
76 BufAllpassN : BufCombN { }
77 BufAllpassL : BufCombN { }
78 BufAllpassC : BufCombN { }
80 ///////////////////////////////////////
83 GrainTap : MultiOutUGen {
84         *ar { arg grainDur = 0.2, pchRatio = 1.0,
85                         pchDispersion = 0.0, timeDispersion = 0.0, overlap = 2.0, mul = 1.0, add = 0.0;
86                 ^this.multiNew('audio', grainDur, pchRatio,
87                         pchDispersion, timeDispersion, overlap).madd(mul, add)
88         }
92 ///////////////////////////////////////
93 DelTapWr : UGen {
94         *ar {arg buffer, in;
95                 ^this.multiNew('audio', buffer, in)
96         }
98         *kr {arg buffer, in;
99                 ^this.multiNew('control', buffer, in)
100         }
103 DelTapRd : UGen {
104         *ar {arg buffer, phase, delTime, interp = 1, mul = 1, add = 0;
105                 ^this.multiNew('audio', buffer, phase, delTime, interp).madd(mul, add)
106         }
108         *kr {arg buffer, phase, delTime, interp = 1, mul = 1, add = 0;
109                 ^this.multiNew('control', buffer, phase, delTime, interp).madd(mul, add)
110         }