Hi, I have a super basic question (newbie): is there any chance to perform on the fly rallentandi or accelerandi within a ProxySpace (i.e. to gradually transition from tempo to another one)? I’m running a few Pbinds and I want all to either go faster/slower simultaneously.
Thanks a lot
MHF
Hello and welcome to the forum!
Here’s one possible solution:
Ndef.clear;
// All proxies will follow this clock
p = Ndef(\t).proxyspace.makeTempoClock(60/60).quant_(1.0);
// Start a couple Pbinds inside Ndefs
Ndef(\a, Pbind(\degree, Pwhite(0, 10), \dur, 1)).play;
Ndef(\b, Pbind(\degree, Pseq([11, 12], inf), \dur, 1/2)).play;
// test change tempo
p.clock.tempo = 40/60;
// automate tempo change
(
Pbindef(\tempoChange,
\type, \rest,
\bpm, Pgeom(60, 1.2).min(180).trace, // accelerando
\doIt, Pfunc({ |e| p.clock.tempo = e[\bpm]/60 }),
\dur, 1
).play;
)
// now rallentando
Pbindef(\tempoChange, \bpm, Pgeom(180, 0.79).max(40).trace);
Pbindef(\tempoChange).stop;
There are many other ways you could automate the tempo change to your liking, using regular Pbinds, Tdefs, or a fork (Routine), etc. The Pbindef above is just one of the ways.
Hope this helps,
B
1 Like
Thank you so much, Bruno! Perfect - yes, it definitely helps.