sc ide: unify font and color configuration panels
[supercollider.git] / HelpSource / Classes / Monitor.schelp
blob8e8091b245be819390c1e997ecceb0ab5fc56062
1 class:: Monitor
2 summary:: link between busses
3 categories:: Libraries>JITLib>NodeProxy
4 related:: Classes/NodeProxy
6 description::
7 For playing contiguous channels to other contiguous busses, one uses strong::play::; for more complex routings, such as splitting, spreading etc to multiple channels, strong::playN::.
9 InstanceMethods::
11 method::play
12 plays from a bus index with a number of channels to another index with a number of channels, within a target group, or a server.
14 argument::fromIndex
16 argument::fromNumChannels
18 argument::toIndex
20 argument::toNumChannels
22 argument::target
23 where to play (default: server default group)
25 argument::multi
26 keep old links and add new one
28 argument::volume
29 volume at which to monitor
31 argument::fadeTime
32 fade in fade out time
34 argument::addAction
36 method::playN
38 the arguments strong::out::, strong::amp:: and strong::in:: can be nested arrays. see also link::Reference/playN::
40 argument::out
41 array of destination channels
43 argument::amp
44 array of amplitudes for each channel
46 argument::in
47 array of source channels
49 argument::vol
50 global scaling for amplitudes
52 argument::fadeTime
53 fade in and out
55 argument::target
56 where to play (default: server default group)
58 argument::addAction
60 method::isPlaying
61 returns true if the group is still playing
63 method::stop
64 stops within the fadeTime
66 method::vol
67 set the volume
69 method::out
70 set the output index. doesn't work right now.
72 method::playToBundle
73 adds all playing osc messages to the bundle. the bundle should support the message strong::.add::
75 Examples::
77 code::
78 Server.default = s = Server.internal;
79 s.boot;
80 s.scope(16);
82 { Out.ar(87, SinOsc.ar(MouseX.kr(40, 10000, 1) * [1, 2, 3], 0, 0.2)) }.play;
83 x = Monitor.new;
84 x.play(87, 3, 1, 2);
85 x.out = 0;
86 x.stop(3.0);
87 x.play(87, 1, 0, 1); // in > out : now mixes down (wrapping)
88 x.play(89, 1, 0, 2); // in < out : now distributes to 2 channels
89 x.stop;
91 // multiple play
92 x.play(87, 1, 0, 2, multi:true);
93 x.play(88, 1, 0, 2, multi:true);
94 x.play(89, 1, 0, 2, multi:true);
95 x.stop;
98 subsection::multichannel playing
100 code::
101 // examples: args are // outs, amps, ins, vol, fadeTime
104 (       x.playN(
105                 [0, 1, 4],              // to these outs
106                 [0.1, 0.4, 0.3],        // with these volumes
107                 [87, 88, 89]            // from these ins
108         );
111         x.playN(
112                 [0, [1, 3, 2], 4],              // outs can be nested: 87 -> 0, 88 -> [1, 3, 2], 89 -> 4
113                 [0.1, [0.4, 0.2, 0.1], 0.3],    // with nested volumes 0.1, [0.4, 0.2, 0.1], and 0.3
114                 [87, 88, 89]);                  // reading from these ins
116                 // can also set global volume and fadetime
117         x.playN(vol: 0.0, fadeTime:4);