BusPlug a listener on a bus


Inherits from:  Object : AbstractFunction



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 NodeProxy helpfile.


See also: Bus



*new(server) 

Create a new (neutral) instance on the given server

*audio(server, numChannels) 

Create a new audio rate instance on the given server

*control(server, numChannels) 

Create a new audio rate instance on the given server

clear

Free the bus, end the monitor


ar(numChannels)

kr(numChannels)

Return a link to my output, which is limited by numChannels. If uninitialized, creates a matching bus. Normally, ar defaults to stereo, kr to mono. 

This can be set in the classvars: defaultNumAudio, defaultNumControl


play(out, numChannels, target, multi, vol, fadeTime, addAction)

Plays from a bus index (out) with a number of channels to another index with a number of channels, within a target (a group, or a server).

multi: keep old links and add new one

volume: volume at which to monitor

fadeTime: fade in fade out time


playN(outs, amps, ins, vol, fadeTime, group, addAction)

outs array of destination channels

amps array of  amplitudes for each channel

outs array of source channels


monitor

returns the current monitor (see Monitor)




Example



// using as a control bus listener


s.boot;

z = Bus.control(s, 16);

a = BusPlug.for(z);


m = { Mix(SinOsc.ar(a.kr(16), 0, 0.1)) }.play;


z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));

z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));

z.setn(Array.rand(16, 300, 320).put(16.rand, rrand(500, 1000)));


m.free;



m = { SinOsc.ar(a.kr(2, MouseX.kr(0, 19)), 0, 0.1) }.play; // modulate channel offset


z.setn(Array.rand(16, 300, 1320).put(16.rand, rrand(500, 1000)));



m.free; z.free;


// using as a audio monitor


p = BusPlug.audio(s,2);

d = { Out.ar(p.index, PinkNoise.ar([0.1, 0.1])) }.play;



p.play; // monitor whatever plays in p (the execution order does not matter)




d.free;

d = { Out.ar(p.index, PinkNoise.ar([0.1, 0.1])) }.play;


p.stop;

p.play;


// also p can play to another bus:


p.stop;

p.play(12);


// listen to that bus for a test:

x = { InFeedback.ar(12,2) }.play;

x.free;