linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / BusPlug.schelp
bloba465a2d44ef9cc955f1539222853771c101790ae
1 class:: BusPlug
2 summary:: a listener on a bus
3 categories:: Libraries>JITLib>NodeProxy
4 related:: Classes/Bus
6 description::
7 BusPlug is mainly in use as a basic superclass of NodeProxy, but it can be applied for other things as well. Most methods are documented in the link::Classes/NodeProxy:: helpfile.
9 ClassMethods::
11 method::new
12 Create a new (neutral) instance on the given server
14 method::audio
15 Create a new audio rate instance on the given server
17 method::control
18 Create a new audio rate instance on the given server
20 InstanceMethods::
22 method::clear
23 Free the bus, end the monitor
25 method::ar, kr
26 Return a link to my output, which is limited by strong::numChannels::. If uninitialized, creates a matching bus. Normally, strong::ar defaults to stereo, kr to mono::. This can be set in the classvars: link::#*defaultNumAudio::, link::#*defaultNumControl::
28 method::play
29 Plays from a bus index ( strong::out:: ) with a number of channels to another index with a number of channels, within a strong::group:: (ie a target group or server).
31 argument::multi
32 keep old links and add new one
34 argument::vol
35 volume at which to monitor
37 argument::fadeTime
38 fade in fade out time
40 method::playN
42 argument::outs
43 array of destination channels
45 argument::amps
46 array of amplitudes for each channel
48 argument::ins
49 array of source channels
51 method::monitor
52 returns the current monitor (see link::Classes/Monitor::)
54 Examples::
56 code::
57 // using as a control bus listener
59 s.boot;
60 z = Bus.control(s, 16);
61 a = BusPlug.for(z);
63 m = { Mix(SinOsc.ar(a.kr(16), 0, 0.1)) }.play;
65 z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));
66 z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));
67 z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));
69 m.free;
72 m = { SinOsc.ar(a.kr(2, MouseX.kr(0, 19)), 0, 0.1) }.play; // modulate channel offset
74 z.setn(Array.rand(16, 300, 1320).put(16.rand, rrand(500, 1000)));
77 m.free; z.free;
79 // using as a audio monitor
81 p = BusPlug.audio(s,2);
82 d = { Out.ar(p.index, PinkNoise.ar([0.1, 0.1])) }.play;
85 p.play; // monitor whatever plays in p (the execution order does not matter)
89 d.free;
90 d = { Out.ar(p.index, PinkNoise.ar([0.1, 0.1])) }.play;
92 p.stop;
93 p.play;
95 // also p can play to another bus:
97 p.stop;
98 p.play(12);
100 // listen to that bus for a test:
101 x = { InFeedback.ar(12,2) }.play;
102 x.free;