Forgot a help fix: Drag a dock's title bar, not divider, to reposition
[supercollider.git] / HelpSource / Classes / BusPlug.schelp
blob029cad2562ea16ce18620938da1445edc4b95e03
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::out
32 bus index
34 argument::numChannels
35 an link::Classes/Integer::
37 argument::group
38 target link::Classes/Group:: or link::Classes/Server::
40 argument::multi
41 keep old links and add new one
43 argument::vol
44 volume at which to monitor
46 argument::fadeTime
47 fade in fade out time
49 argument:: addAction
51 method::playN
53 argument::outs
54 array of destination channels
56 argument::amps
57 array of amplitudes for each channel
59 argument::ins
60 array of source channels
62 argument:: vol
63 argument:: fadetime
64 argument:: group
65 argument:: addAction
67 method::monitor
68 returns the current monitor (see link::Classes/Monitor::)
70 Examples::
72 code::
73 // using as a control bus listener
75 s.boot;
76 z = Bus.control(s, 16);
77 a = BusPlug.for(z);
79 m = { Mix(SinOsc.ar(a.kr(16), 0, 0.1)) }.play;
81 z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));
82 z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));
83 z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));
85 m.free;
88 m = { SinOsc.ar(a.kr(2, MouseX.kr(0, 19)), 0, 0.1) }.play; // modulate channel offset
90 z.setn(Array.rand(16, 300, 1320).put(16.rand, rrand(500, 1000)));
93 m.free; z.free;
95 // using as a audio monitor
97 p = BusPlug.audio(s,2);
98 d = { Out.ar(p.index, PinkNoise.ar([0.1, 0.1])) }.play;
101 p.play; // monitor whatever plays in p (the execution order does not matter)
105 d.free;
106 d = { Out.ar(p.index, PinkNoise.ar([0.1, 0.1])) }.play;
108 p.stop;
109 p.play;
111 // also p can play to another bus:
113 p.stop;
114 p.play(12);
116 // listen to that bus for a test:
117 x = { InFeedback.ar(12,2) }.play;
118 x.free;