TempoBus


A Bus whose value is set by a Tempo.  It can be used as a multiplier in any Synth on the Server that needs to know the Tempo.  It is used by BeatClockPlayer.  Any Inst/Patch that needs a tempo input should use a TempoPlayer.


TempoBus.new(server,tempo)

TempoBus.new 

default server, default tempo



There is one TempoBus per server, per tempo.  After the first time it is created, the shared instance will be returned for any subsequent requests.


(

a = TempoBus.new;

b = TempoBus.new;

a === b // they are the same object

)





(

s = Server.local;

t = TempoBus.new(s);


t.index.postln;


Tempo.bpm = 60;


SynthDef("help-TempoBus",{ arg out=0,tempoBus;

var tempo,trig,amp;

tempo = In.kr(tempoBus);

trig = Impulse.kr(tempo);

amp = Decay2.kr(trig,0.01,0.1).clip2(1.0);

Out.ar(out,

amp * SinOsc.ar(300)

)

}).play(s,[0,0,1,t.index]);



Tempo.bpm = 40;


Tempo.bpm = 100;


Tempo.bpm = 666;


Sheet({ arg f;

Tempo.default.gui(f); // move the slider, it works

})


)



see TempoPlayer