Monitor link between busses
superclass: Object
For playing contiguous channels to other contiguous busses, one uses play;
for more complex routings, such as splitting, spreading etc to multiple channels, playN.
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
playN(outs, amps, ins, vol, fadeTime, target, addAction)
outs array of destination channels
amps array of amplitudes for each channel
ins array of source channels
outs, amps and ins can be nested arrays.
vol global scaling for amplitudes
fadeTime fade in and out
target, addAction where to play (default: server default group)
see also playN
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;
multichannel playing
// examples: args are // outs, amps, ins, vol, fadeTime
( x.playN(
[0, 1, 4], // to these outs
[0.1, 0.4, 0.3], // with these volumes
[87, 88, 89] // from these ins
);
)
(
x.playN(
[0, [1, 3, 2], 4], // outs can be nested: 87 -> 0, 88 -> [1, 3, 2], 89 -> 4
[0.1, [0.4, 0.2, 0.1], 0.3], // with nested volumes 0.1, [0.4, 0.2, 0.1], and 0.3
[87, 88, 89]); // reading from these ins
)
// can also set global volume and fadetime
x.playN(vol: 0.0, fadeTime:4);