scide: LookupDialog - redo lookup on classes after partial lookup
[supercollider.git] / SCClassLibrary / Common / Audio / Splay.sc
blobe8443903fed78f4d62c6a0e35f0a3474e007ac1d
1 Splay : UGen {
3         *new1 { arg rate, spread = 1, level = 1, center = 0.0, levelComp = true ... inArray;
5                 var n = max(2, inArray.size);
6                 var n1 = n - 1;
7                 var positions = ((0 .. n1) * (2 / n1) - 1) * spread + center;
9                 if (levelComp) {
10                         if(rate == \audio) {
11                                 level = level * n.reciprocal.sqrt
12                         } {
13                                 level = level / n
14                         }
15                  };
17                 ^Pan2.perform(this.methodSelectorForRate(rate), inArray, positions).sum * level;
18         }
20         *kr { arg inArray, spread = 1, level = 1, center = 0.0, levelComp = true;
21                 ^this.multiNewList([\control, spread, level, center, levelComp] ++ inArray)
23         }
25         *ar { arg inArray, spread = 1, level = 1, center = 0.0, levelComp = true;
26                 ^this.multiNewList([\audio, spread, level, center, levelComp] ++ inArray)
27         }
29         /*
31         *ar { arg inArray, spread = 1, level = 1, center = 0.0, levelComp = true;
33                 var n = inArray.size.max(2);
34                 var n1 = n-1;
36                 if (levelComp) { level = level * n.reciprocal.sqrt };
38                 ^Pan2.ar(
39                         inArray,
40                         ((0 .. n1) * (2 / n1) - 1) * spread + center
41                 ).sum * level;
42         }
44         */
46         *arFill { arg n, function, spread = 1, level = 1, center = 0.0, levelComp = true;
47                 ^this.ar((function ! n), spread, level, center, levelComp)
48         }
53 SplayAz : UGen {
54         *kr { arg numChans = 4, inArray, spread = 1, level = 1, width = 2, center = 0.0,
55                         orientation = 0.5, levelComp = true;
57                 var n = max(1, inArray.size);
59                 var pos = [ center - spread, center + spread ].resamp1(n);
61                 if (levelComp) {
62                         level = level / n
63                 };
65                 ^(PanAz.kr(numChans, inArray, pos, level, width, orientation).flop.collect(_.sum))
66         }
68         *ar { arg numChans = 4, inArray, spread = 1, level = 1, width = 2, center = 0.0,
69                         orientation = 0.5, levelComp = true;
71                 var n = max(1, inArray.size);
73                 var pos = [ center - spread, center + spread ].resamp1(n);
75                 if (levelComp) {
76                         level = level * n.reciprocal.sqrt
77                 };
79                 ^(PanAz.ar(numChans, inArray, pos, level, width, orientation).flop.collect(_.sum))
80         }
82         *arFill { arg numChans = 4, n, function, spread = 1, level = 1, width = 2, center = 0.0,
83                 orientation = 0.5, levelComp = true;
84                 ^this.ar(numChans, function ! n, spread, level, width, center,
85                         orientation, levelComp)
86         }
91 SplayZ {
92         *ar { arg numChans = 4, inArray, spread = 1, level = 1, width = 2, center = 0.0,
93                         orientation = 0.5, levelComp = true;
95                 var n = inArray.size.max(2);
96                 var n1 = n - 1;
98                 if (levelComp) { level = level * n.reciprocal.sqrt };
100                 "SplayZ is deprecated, because its geometry is wrong.
101                 Please convert to SplayAz.".inform;
103                 ^PanAz.ar(
104                         numChans,
105                         inArray,
106                         ((0 .. n1) * (2 / n1) - 1) * spread + center,
107                         1,
108                         width,
109                         orientation
110                 ).sum * level;
111         }
113         *arFill { arg numChans = 4, n, function, spread = 1, level = 1, width = 2, center = 0.0,
114                 orientation = 0.5, levelComp = true;
115                 ^this.ar(numChans, function ! n, spread, level, width, center,
116                 orientation, levelComp)
117         }