Monitor link between busses


superclass: Object


play(fromIndex, fromNumChannels, toIndex, toNumChannels, target, multi, volume, fadeTime)

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.

multi: keep old links and add new one

volume: volume at which to monitor

fadeTime: fade in fade out time

isPlaying returns true if the group is still playing

stop(fadeTime)

stops within the fadeTime

vol_ set the volume

out_ set the output index. doesn't work right now.

playToBundle(bundle, ... (same as .play))

adds all playing osc messages to the bundle. the bundle should support the message .add

//example

Server.default = s = Server.internal;

s.boot;

s.scope(16);


{ Out.ar(87, SinOsc.ar(MouseX.kr(40, 10000, 1) * [1, 2, 3], 0, 0.2)) }.play;

x = Monitor.new;

x.play(87, 3, 1, 2);

x.out = 0;

x.stop(3.0);

x.play(87, 1, 0, 1); // in > out : now mixes down (wrapping)

x.play(89, 1, 0, 2); // in < out : now distributes to 2 channels

x.stop;

// multiple play

x.play(87, 1, 0, 2, multi:true);

x.play(88, 1, 0, 2, multi:true);

x.play(89, 1, 0, 2, multi:true);

x.stop;



// experimental, might change:

// multichannel method

// playN(outs, amps, ins, mastervol, fadeTime, group)

// outs, amps can be nested arrays

x.playN([0, 1, 4], [0.1, 0.4, 0.3], [87, 88, 89]); // play: 87 -> 0,  88 -> 1, 89 -> 4

x.playN([0, [1, 3, 2], 4], [0.1, [0.4, 0.2, 0.1], 0.3], [87, 88, 89]); 

// play: 87 -> 0,  88 -> [1, 3, 2],  89 -> 4

// volumes 0.1, [0.4, 0.2, 0.1], and 0.3

x.playN(vol:0.0, fadeTime:4);