Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / SCClassLibrary / Common / Audio / GrainUGens.sc
blob118aef7eba1ddfdb4f871b72648f44d058ba0a64
1 GrainSin : MultiOutUGen {
2         *ar     { arg numChannels = 1, trigger = 0, dur = 1, freq = 440, pan = 0, envbufnum = -1,
3                         maxGrains = 512, mul = 1, add = 0;
4                 ^this.multiNew('audio', numChannels, trigger, dur, freq, pan, envbufnum, maxGrains)
5                         .madd(mul, add);
6                 }
8         init { arg argNumChannels ... theInputs;
9                 inputs = theInputs;
10                 ^this.initOutputs(argNumChannels, rate);
11         }
12         argNamesInputsOffset { ^2 }
13         }
15 GrainFM : MultiOutUGen {
16         *ar     { arg numChannels = 1, trigger = 0, dur = 1, carfreq = 440, modfreq = 200, index = 1,
17                         pan = 0, envbufnum = -1, maxGrains = 512, mul = 1, add = 0;
18                 ^this.multiNew('audio', numChannels, trigger, dur, carfreq, modfreq, index, pan, envbufnum,
19                                 maxGrains).madd(mul, add);
20                 }
22         init { arg argNumChannels ... theInputs;
23                 inputs = theInputs;
24                 ^this.initOutputs(argNumChannels, rate);
25         }
27         argNamesInputsOffset { ^2 }
28         }
30 GrainBuf : MultiOutUGen {
31         *ar { arg numChannels = 1, trigger = 0, dur = 1, sndbuf, rate = 1, pos = 0, interp = 2,
32                         pan = 0, envbufnum = -1, maxGrains = 512, mul = 1, add = 0;
33                 ^this.multiNew('audio', numChannels, trigger, dur, sndbuf, rate, pos, interp, pan,
34                         envbufnum, maxGrains).madd(mul, add);
35                 }
37         init { arg argNumChannels ... theInputs;
38                 inputs = theInputs;
39                 ^this.initOutputs(argNumChannels, rate);
40         }
41         argNamesInputsOffset { ^2 }
42         }
44 GrainIn : MultiOutUGen {
45         *ar     { arg numChannels = 1, trigger = 0, dur = 1, in, pan = 0, envbufnum = -1, maxGrains = 512,
46                         mul = 1, add = 0;
47                 ^this.multiNew('audio', numChannels, trigger, dur, in, pan, envbufnum, maxGrains)
48                         .madd(mul, add);
49                 }
51         init { arg argNumChannels ... theInputs;
52                 inputs = theInputs;
53                 ^this.initOutputs(argNumChannels, rate);
54         }
55         argNamesInputsOffset { ^2 }
56         }
58 Warp1 : MultiOutUGen {
59         *ar     { arg numChannels = 1, bufnum=0, pointer=0, freqScale = 1,
60                         windowSize = 0.2, envbufnum = -1, overlaps = 8, windowRandRatio = 0.0, interp=1,
61                         mul = 1, add = 0;
62                 ^this.multiNew('audio', numChannels, bufnum, pointer, freqScale,
63                         windowSize, envbufnum, overlaps, windowRandRatio, interp).madd(mul, add);
64         }
66         init { arg argNumChannels ... theInputs;
67                 inputs = theInputs;
68                 ^this.initOutputs(argNumChannels, rate);
69         }
70         argNamesInputsOffset { ^2 }
72         }