47 lines
859 B
Plaintext
47 lines
859 B
Plaintext
|
// metronome code here is a bit gross but easier
|
||
|
|
||
|
~beatsperbar = 4;
|
||
|
~bps = ~beatsperbar / ~buflen;
|
||
|
~tc = TempoClock.new(~bps);
|
||
|
|
||
|
SynthDef(\metronome, {
|
||
|
arg out=0, amp=1, pan=0, filter=1000, atk=0.01, rel=0.1;
|
||
|
var sig, env;
|
||
|
env = EnvGen.kr(Env.perc(atk, rel, amp), doneAction: Done.freeSelf);
|
||
|
sig = HPF.ar(WhiteNoise.ar(), filter);
|
||
|
Out.ar(out, Pan2.ar(sig * env, pan));
|
||
|
}
|
||
|
).add;
|
||
|
|
||
|
~metrob = Bus.audio(s, 2);
|
||
|
|
||
|
~metromix = SynthDef(\metromix, {
|
||
|
arg in=1, out=0, amp=1;
|
||
|
Out.ar(out, amp * In.ar(in, 2));
|
||
|
}).play(s, [\in, ~metrob, \out, 0, \amp, 0]);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
~metronome = Pbind(
|
||
|
\instrument, \metronome,
|
||
|
\dur, 1,
|
||
|
\amp, 0.5,
|
||
|
\pan, 0,
|
||
|
\out, ~metrob
|
||
|
).play(~tc);
|
||
|
|
||
|
|
||
|
~to.button('/grains/metronome', 0, { |v|
|
||
|
// reset tempo when turning metronome on
|
||
|
if( v == 1, {
|
||
|
~bps = ~beatsperbar / ~buflen;
|
||
|
~tc.tempo_(~bps);
|
||
|
});
|
||
|
// FIXME
|
||
|
~metromix.set(\amp, v)
|
||
|
|
||
|
});
|
||
|
|
||
|
|