2 *ar { arg in, pos = 0.0, level = 1.0;
3 ^this.multiNew('audio', in, pos, level )
5 *kr { arg in, pos = 0.0, level = 1.0;
6 ^this.multiNew('control', in, pos, level )
8 init { arg ... theInputs;
11 OutputProxy(rate, this, 0),
12 OutputProxy(rate, this, 1)
16 checkInputs { ^this.checkNInputs(1) }
22 *ar { arg in, xpos = 0.0, ypos = 0.0, level = 1.0;
23 ^this.multiNew('audio', in, xpos, ypos, level )
25 *kr { arg in, xpos = 0.0, ypos = 0.0, level = 1.0;
26 ^this.multiNew('control', in, xpos, ypos, level )
28 init { arg ... theInputs;
30 channels = [ OutputProxy(rate,this, 0), OutputProxy(rate,this, 1),
31 OutputProxy(rate,this, 2), OutputProxy(rate,this, 3) ];
34 checkInputs { ^this.checkNInputs(1) }
37 Balance2 : MultiOutUGen {
39 *ar { arg left, right, pos = 0.0, level = 1.0;
40 ^this.multiNew('audio', left, right, pos, level )
42 *kr { arg left, right, pos = 0.0, level = 1.0;
43 ^this.multiNew('control', left, right, pos, level )
45 init { arg ... theInputs;
48 OutputProxy(rate, this, 0),
49 OutputProxy(rate, this, 1)
53 checkInputs { ^this.checkNInputs(2) }
56 Rotate2 : MultiOutUGen {
57 *ar { arg x, y, pos = 0.0;
58 ^this.multiNew('audio', x, y, pos )
60 *kr { arg x, y, pos = 0.0;
61 ^this.multiNew('control', x, y, pos )
63 init { arg ... theInputs;
66 OutputProxy(rate, this, 0),
67 OutputProxy(rate, this, 1)
71 checkInputs { ^this.checkNInputs(2) }
75 *ar { arg in, azimuth=0, elevation=0, gain=1;
76 ^this.multiNew('audio', in, azimuth, elevation, gain )
78 *kr { arg in, azimuth=0, elevation=0, gain=1;
79 ^this.multiNew('control', in, azimuth, elevation, gain )
81 init { arg ... theInputs;
83 channels = [ OutputProxy(rate,this,0), OutputProxy(rate,this,1),
84 OutputProxy(rate,this,2), OutputProxy(rate,this,3) ];
87 checkInputs { ^this.checkNInputs(1) }
90 PanB2 : MultiOutUGen {
91 *ar { arg in, azimuth=0, gain=1;
92 ^this.multiNew('audio', in, azimuth, gain )
94 *kr { arg in, azimuth=0, gain=1;
95 ^this.multiNew('control', in, azimuth, gain )
97 init { arg ... theInputs;
99 channels = [ OutputProxy(rate,this,0), OutputProxy(rate,this,1),
100 OutputProxy(rate,this,2) ];
103 checkInputs { ^this.checkNInputs(1) }
106 BiPanB2 : MultiOutUGen {
107 *ar { arg inA, inB, azimuth, gain=1;
108 ^this.multiNew('audio', inA, inB, azimuth, gain )
110 *kr { arg inA, inB, azimuth, gain=1;
111 ^this.multiNew('control', inA, inB, azimuth, gain )
113 init { arg ... theInputs;
115 channels = [ OutputProxy(rate,this,0), OutputProxy(rate,this,1),
116 OutputProxy(rate,this,2) ];
119 checkInputs { ^this.checkNInputs(2) }
122 DecodeB2 : MultiOutUGen {
123 *ar { arg numChans, w, x, y, orientation = 0.5;
124 ^this.multiNew('audio', numChans, w, x, y, orientation = 0.5 )
126 *kr { arg numChans, w, x, y, orientation = 0.5;
127 ^this.multiNew('control', numChans, w, x, y, orientation = 0.5 )
129 init { arg numChans ... theInputs;
131 channels = Array.fill(numChans, { arg i; OutputProxy(rate,this, i) });
134 checkInputs { ^this.checkNInputs(3) }
137 PanAz : MultiOutUGen {
138 *ar { arg numChans, in, pos = 0.0, level = 1.0, width = 2.0, orientation = 0.5;
139 ^this.multiNew('audio', numChans, in, pos, level, width, orientation )
141 *kr { arg numChans, in, pos = 0.0, level = 1.0, width = 2.0, orientation = 0.5;
142 ^this.multiNew('control', numChans, in, pos, level, width, orientation )
144 init { arg numChans ... theInputs;
146 channels = Array.fill(numChans, { arg i; OutputProxy(rate,this, i) });
149 checkInputs { ^this.checkNInputs(1) }
154 // equal power two channel cross fade
155 *ar { arg inA, inB = 0.0, pan = 0.0, level = 1.0;
156 ^this.multiNew('audio', inA, inB, pan, level)
158 *kr { arg inA, inB = 0.0, pan = 0.0, level = 1.0;
159 ^this.multiNew('control', inA, inB, pan, level)
161 checkInputs { ^this.checkNInputs(2) }
165 // linear two channel cross fade
166 *ar { arg inA, inB = 0.0, pan = 0.0, level = 1.0;
167 ^this.multiNew('audio', inA, inB, pan) * level
169 *kr { arg inA, inB = 0.0, pan = 0.0, level = 1.0;
170 ^this.multiNew('control', inA, inB, pan) * level
172 checkInputs { ^this.checkNInputs(2) }