1class:: SplayZ
2summary:: Spreads an array of channels across a ring of channels
3categories:: UGens>Multichannel>Panners
4related:: Classes/PanAz, Classes/SplayAz
5
6description::
7SplayZ spreads an array of channels across a ring of channels.
8Optional spread and center controls, and levelComp(ensation) (equal power).
9numChans and orientation are as in PanAz.
10
11warning::
12ATTENTION - SplayZ is deprecated because its geometry is wrong. It is only kept for backwards compatibility - please adapt your patches to link::Classes/SplayAz::! See link::Classes/SplayAz:: help file for the comparison in behavior.
13::
14
15classmethods::
16
17method:: ar
18argument:: numChans
19argument:: inArray
20argument:: spread
21argument:: level
22argument:: width
23argument:: center
24argument:: orientation
25argument:: levelComp
26
27method:: arFill
28argument:: numChans
29argument:: n
30argument:: function
31argument:: spread
32argument:: level
33argument:: width
34argument:: center
35argument:: orientation
36argument:: levelComp
37
38examples::
39code::
40(
41x = { arg spread=1, level=0.2, width=2, center=0.0;
42 SplayZ.ar(
43  4,
44  SinOsc.ar( { |i| LFNoise2.kr( rrand(10, 20), 200, i + 3 * 100) } ! 10),
45  spread,
46  level,
47  width,
48  center
49 );
50}.scope;
51)
52
53x.set(\spread, 1,   \center, 0);  // full n chans
54x.set(\spread, 0.5, \center, -0.25); // less wide
55x.set(\spread, 0, \center, 0);  // mono center (depends on orientation, see PanAz)
56x.set(\spread, 0, \center, -0.25); //
57x.set(\spread, 0.0, \center, 0.5); // mono, but rotate 1 toward the higher channels
58x.set(\spread, 0.5, \center, 0.5); // spread over the higher channels
59x.set(\spread, 0,   \center, -0.25); // all first
60x.set(\spread, 1,   \center, 0);  // full n chans
61
62x.free;
63
64 // the same example written with arFill:
65(
66x = { arg spread=1, level=0.5, width=2, center=0.0;
67 SplayZ.arFill(
68  4,
69  10,
70  { |i| SinOsc.ar( LFNoise2.kr( rrand(10, 20), 200, i + 3 * 100) ) },
71  spread,
72  level,
73  width,
74  center
75 );
76}.scope;
77)
78
79 // or with mouse control
80(
81x = { var src;
82 src = SinOsc.ar( { |i| LFNoise2.kr( rrand(10, 20), 200, i * 100 + 400) } ! 10);
83 SplayZ.ar(4, src, MouseY.kr(1, 0), 0.2, center: MouseX.kr(-1, 1));
84}.scope;
85)
86::
87