linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / Monitor.schelp
blob664473d45534db72a94267a1a96f393ac17cb166
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::multi
15 keep old links and add new one
17 argument::volume
18 volume at which to monitor
20 argument::fadeTime
21 fade in fade out time
23 method::playN
25 the arguments strong::out::, strong::amp:: and strong::in:: can be nested arrays. see also link::Reference/playN::
27 argument::out
28 array of destination channels
30 argument::amp
31 array of amplitudes for each channel
33 argument::in
34 array of source channels
36 argument::vol
37 global scaling for amplitudes
39 argument::fadeTime
40 fade in and out
42 argument::target, addAction
43 where to play (default: server default group)
45 method::isPlaying
46 returns true if the group is still playing
48 method::stop
49 stops within the fadeTime
51 method::vol
52 set the volume
54 method::out
55 set the output index. doesn't work right now.
57 method::playToBundle
58 adds all playing osc messages to the bundle. the bundle should support the message strong::.add::
60 Examples::
62 code::
63 Server.default = s = Server.internal;
64 s.boot;
65 s.scope(16);
67 { Out.ar(87, SinOsc.ar(MouseX.kr(40, 10000, 1) * [1, 2, 3], 0, 0.2)) }.play;
68 x = Monitor.new;
69 x.play(87, 3, 1, 2);
70 x.out = 0;
71 x.stop(3.0);
72 x.play(87, 1, 0, 1); // in > out : now mixes down (wrapping)
73 x.play(89, 1, 0, 2); // in < out : now distributes to 2 channels
74 x.stop;
76 // multiple play
77 x.play(87, 1, 0, 2, multi:true);
78 x.play(88, 1, 0, 2, multi:true);
79 x.play(89, 1, 0, 2, multi:true);
80 x.stop;
83 subsection::multichannel playing
85 code::
86 // examples: args are // outs, amps, ins, vol, fadeTime
89 (       x.playN(
90                 [0, 1, 4],              // to these outs
91                 [0.1, 0.4, 0.3],        // with these volumes
92                 [87, 88, 89]            // from these ins
93         );
96         x.playN(
97                 [0, [1, 3, 2], 4],              // outs can be nested: 87 -> 0, 88 -> [1, 3, 2], 89 -> 4
98                 [0.1, [0.4, 0.2, 0.1], 0.3],    // with nested volumes 0.1, [0.4, 0.2, 0.1], and 0.3
99                 [87, 88, 89]);                  // reading from these ins
101                 // can also set global volume and fadetime
102         x.playN(vol: 0.0, fadeTime:4);