Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / TempoBusClock.schelp
blob0ab94d62ddbb32f9b00fc3e4783b31c923155cc2
1 class:: TempoBusClock
2 summary:: a clock that synchronizes its tempo with the server
3 categories:: Libraries>JITLib>NodeProxy
4 related:: Classes/TempoClock
6 ClassMethods::
8 method::new
9 return a new instance.
11 argument::control
12 can be anything that responds to the message code::set(key, val, ...):: e.g. a link::Classes/Synth:: or a link::Classes/NodeProxy::. The control key set is "tempo". otherwise TempoBusClock works just like a link::Classes/TempoClock:: .
14 Examples::
16 code::
18 a = { |tempo=1| Ringz.ar(Impulse.ar(tempo), [501, 500], 1/tempo) }.play;
19 t = TempoBusClock(a);
20 Task { loop { "klink".postln; 1.wait } }.play(t);
23 t.tempo = 1.3;
24 t.tempo = 0.5;
25 t.tempo = 1.0;
28 // in ProxySpace, a TempoBusClock can be added together with a ~tempo NodeProxy:
30 p = ProxySpace.push(s);
31 p.makeTempoClock;
32 p.clock; // now the ProxySpace's clock is a TempoBusClock
34 ~out.play;
35 ~out = { Ringz.ar(Impulse.ar(~tempo.kr), [501, 500], 1/~tempo.kr) * 0.3 };
36 p.clock.tempo = 1.3;
38 // patterns and tasks are synchronized:
40 ~out2.play;
41 ~out2 = Pbind(\dur, 1, \note, Pwhite(0, 7, inf));
43 p.clock.tempo = 3;
44 p.clock.tempo = 1;