4 WhiteNoise.ar(mul, add)
5 BrownNoise.ar(mul, add)
7 Crackle.ar(chaosParam, mul, add)
8 LFNoise0.ar(freq, mul, add)
9 LFNoise1.ar(freq, mul, add)
10 LFNoise2.ar(freq, mul, add)
11 Dust.ar(density, mul, add)
12 Dust2.ar(density, mul, add)
14 White, Brown, Pink generators have no modulatable parameters
15 other than multiply and add inputs.
17 The chaos param for ChaosNoise should be from 1.0 to 2.0
21 RandSeed : WidthFirstUGen {
22 *ar { arg trig = 0.0, seed=56789;
23 this.multiNew('audio', trig, seed)
24 ^0.0 // RandSeed has no output
26 *kr { arg trig = 0.0, seed=56789;
27 this.multiNew('control', trig, seed)
28 ^0.0 // RandSeed has no output
30 *ir { arg trig = 0.0, seed=56789;
31 this.multiNew('scalar', trig, seed)
32 ^0.0 // RandSeed has no output
36 RandID : WidthFirstUGen {
37 // choose which random number generator to use for this synth .
39 this.multiNew('control', id)
40 ^0.0 // RandID has no output
43 this.multiNew('scalar', id)
44 ^0.0 // RandID has no output
50 // uniform distribution
51 *new { arg lo = 0.0, hi = 1.0;
52 ^this.multiNew('scalar', lo, hi)
57 // uniform distribution of integers
58 *new { arg lo = 0, hi = 127;
59 ^this.multiNew('scalar', lo, hi)
65 // uniform distribution
66 *ar { arg lo = 0.0, hi = 1.0, trig = 0.0;
67 ^this.multiNew('audio', lo, hi, trig)
69 *kr { arg lo = 0.0, hi = 1.0, trig = 0.0;
70 ^this.multiNew('control', lo, hi, trig)
75 // uniform distribution of integers
76 *kr { arg lo = 0, hi = 127, trig = 0.0;
77 ^this.multiNew('control', lo, hi, trig)
78 } *ar { arg lo = 0, hi = 127, trig = 0.0; ^this.multiNew('audio', lo, hi, trig) }
84 // linear distribution
85 // if minmax <= 0 then skewed towards lo.
86 // else skewed towards hi.
87 *new { arg lo = 0.0, hi = 1.0, minmax = 0;
88 ^this.multiNew('scalar', lo, hi, minmax)
93 // sum of N uniform distributions.
94 // n = 1 : uniform distribution - same as Rand
95 // n = 2 : triangular distribution
96 // n = 3 : smooth hump
97 // as n increases, distribution converges towards gaussian
98 *new { arg lo = 0.0, hi = 1.0, n = 0;
99 ^this.multiNew('scalar', lo, hi, n)
104 // exponential distribution
105 *new { arg lo = 0.01, hi = 1.0;
106 ^this.multiNew('scalar', lo, hi)
111 // uniform distribution
112 *ar { arg lo = 0.01, hi = 1.0, trig = 0.0;
113 ^this.multiNew('audio', lo, hi, trig)
115 *kr { arg lo = 0.01, hi = 1.0, trig = 0.0;
116 ^this.multiNew('control', lo, hi, trig)
123 ^this.multiNew('audio', prob, in)
126 ^this.multiNew('control', prob, in)
132 arg in, array, normalize=0;
133 ^this.multiNewList(['audio', in, normalize] ++ array)
136 arg in, array, normalize=0;
137 ^this.multiNewList(['control', in, normalize] ++ array)
143 *ar { arg mul = 1.0, add = 0.0;
144 // support this idiom from SC2.
146 ^{ this.multiNew('audio') }.dup(mul.size).madd(mul, add)
148 ^this.multiNew('audio').madd(mul, add)
151 *kr { arg mul = 1.0, add = 0.0;
153 ^{ this.multiNew('control') }.dup(mul.size).madd(mul, add)
155 ^this.multiNew('control').madd(mul, add)
161 BrownNoise : WhiteNoise {
164 PinkNoise : WhiteNoise {
167 ClipNoise : WhiteNoise {
170 GrayNoise : WhiteNoise {
174 //NoahNoise : WhiteNoise {
179 *ar { arg chaosParam=1.5, mul = 1.0, add = 0.0;
180 ^this.multiNew('audio', chaosParam).madd(mul, add)
182 *kr { arg chaosParam=1.5, mul = 1.0, add = 0.0;
183 ^this.multiNew('control', chaosParam).madd(mul, add)
189 *ar { arg chaosParam=3.0, freq = 1000.0, init= 0.5, mul = 1.0, add = 0.0;
190 ^this.multiNew('audio', chaosParam, freq, init).madd(mul, add)
192 *kr { arg chaosParam=3.0, freq = 1000.0, init=0.5, mul = 1.0, add = 0.0;
193 ^this.multiNew('control', chaosParam, freq, init).madd(mul, add)
199 *ar { arg chaosParam=1.5, dt = 0.04, mul = 1.0, add = 0.0;
200 ^this.multiNew('audio', chaosParam, dt).madd(mul, add)
202 *kr { arg chaosParam=1.5, dt = 0.04, mul = 1.0, add = 0.0;
203 ^this.multiNew('control', chaosParam, dt).madd(mul, add)
210 *ar { arg freq=500.0, mul = 1.0, add = 0.0;
211 ^this.multiNew('audio', freq).madd(mul, add)
213 *kr { arg freq=500.0, mul = 1.0, add = 0.0;
214 ^this.multiNew('control', freq).madd(mul, add)
218 LFNoise1 : LFNoise0 {
221 LFNoise2 : LFNoise0 {
224 LFClipNoise : LFNoise0 {
227 LFDNoise0 : LFNoise0 {
230 LFDNoise1 : LFNoise0 {
233 LFDNoise3 : LFNoise0 {
236 LFDClipNoise : LFNoise0 {
240 *ar { arg in = 0.0, mul = 1.0, add = 0.0;
241 ^this.multiNew('audio', in).madd(mul, add)
243 *kr { arg in = 0.0, mul = 1.0, add = 0.0;
244 ^this.multiNew('control', in).madd(mul, add)
248 MantissaMask : UGen {
249 *ar { arg in = 0.0, bits=3, mul = 1.0, add = 0.0;
250 ^this.multiNew('audio', in, bits).madd(mul, add)
252 *kr { arg in = 0.0, bits=3, mul = 1.0, add = 0.0;
253 ^this.multiNew('control', in, bits).madd(mul, add)
259 *ar { arg density = 0.0, mul = 1.0, add = 0.0;
260 ^this.multiNew('audio', density).madd(mul, add)
262 *kr { arg density = 0.0, mul = 1.0, add = 0.0;
263 ^this.multiNew('control', density).madd(mul, add)
265 signalRange { ^\unipolar }
270 *ar { arg density = 0.0, mul = 1.0, add = 0.0;
271 ^this.multiNew('audio', density).madd(mul, add)
273 *kr { arg density = 0.0, mul = 1.0, add = 0.0;
274 ^this.multiNew('control', density).madd(mul, add)
279 var iseed, imul, iadd, imod;
281 *ar { arg iseed, imul, iadd, imod, mul = 1.0, add = 0.0;
282 ^this.multiNew('audio', iseed, imul, iadd, imod).madd(mul, add)
284 *kr { arg iseed, imul, iadd, imod, mul = 1.0, add = 0.0;
285 ^this.multiNew('control', iseed, imul, iadd, imod).madd(mul, add)
287 init { arg jseed, jmul, jadd, jmod ... theInputs;
297 //Latoocarfian : UGen {
299 // *ar { arg a, b, c, d, mul = 1.0, add = 0.0;
300 // ^this.multiNew('audio', a, b, c, d).madd(mul, add)
302 // *kr { arg a, b, c, d, mul = 1.0, add = 0.0;
303 // ^this.multiNew('control', a, b, c, d).madd(mul, add)