So I have a song that I’d like the tempo to change at a set cue point, and speed up to a particular BMP over, say, 15 seconds. And of course, the reverse later on. I’m going to have to change the pitch range first, but can easily see how to get that to work… just don’t see how to change the tempo, much less over 15 seconds. I could do without the change over time…
I’ve tried a few variations of master_tempo = 150 (150) {150} “150” but can’t get it to change
Any suggestions? Many thanks in advance.
I’ve tried a few variations of master_tempo = 150 (150) {150} “150” but can’t get it to change
Any suggestions? Many thanks in advance.
Inviato 5 days ago @ 8:45 pm
There is no specific verb to do exactly as you want but there are all the parts to do it.
Thinking it up here, we'll need to do some maths and call a rsi.
Ok the maths;
First we'll presume it's a 120bpm track you want to speed up to 144,
So the first thing that would help is saving the difference as a variable
set bpmDiff `param_add 'get_bpm & param_multiply -1' 'constant 144'`
So bpmDiff == 24
more maths yet to do but let's jump ahead and think about the rsi, 15 seconds a repeat every 100ms will be smooth enough. So we'll do it in 150 steps.
repeat_start_instant tempoChange 100ms 150 &
Ok back to the math, so we want to get to +24bpm over 150 steps,
Let's save that as a variable
set perStep `get_var bpmDiff & param_multiply 'constant 150 & param_1_x'`
but that's not the whole story, the pitch verb by default expects a slider value [0.0 to 1.0] but we're working in beats, thanks to the devs the pitch verb will accept a bpm value [both absolute, also fortunately for us, a relative value] [and really thanks to the devs because it saved us several maths steps]
so let's tweak our var to be beats relative
set perStep `get_var bpmDiff & param_multiply 'constant 150 & param_1_x' & param_cast beats & param_cast relative`
So let's put it all together in 1 script, we set our variables, we start a rsi, then we cast our perStep variable to the pitch verb
That's what you asked for, but it could be better; 15 seconds... we don't work in seconds, we work in beats, and we can do more maths so the pitch move is beat based, you press the button and instead of 15 seconds [which is a guess against the tempo] you could have a button that does the reset that matches beats played.
Thinking it up here, we'll need to do some maths and call a rsi.
Ok the maths;
First we'll presume it's a 120bpm track you want to speed up to 144,
So the first thing that would help is saving the difference as a variable
set bpmDiff `param_add 'get_bpm & param_multiply -1' 'constant 144'`
So bpmDiff == 24
more maths yet to do but let's jump ahead and think about the rsi, 15 seconds a repeat every 100ms will be smooth enough. So we'll do it in 150 steps.
repeat_start_instant tempoChange 100ms 150 &
Ok back to the math, so we want to get to +24bpm over 150 steps,
Let's save that as a variable
set perStep `get_var bpmDiff & param_multiply 'constant 150 & param_1_x'`
but that's not the whole story, the pitch verb by default expects a slider value [0.0 to 1.0] but we're working in beats, thanks to the devs the pitch verb will accept a bpm value [both absolute, also fortunately for us, a relative value] [and really thanks to the devs because it saved us several maths steps]
so let's tweak our var to be beats relative
set perStep `get_var bpmDiff & param_multiply 'constant 150 & param_1_x' & param_cast beats & param_cast relative`
So let's put it all together in 1 script, we set our variables, we start a rsi, then we cast our perStep variable to the pitch verb
set bpmDiff `param_add 'get_bpm & param_multiply -1' 'get_constant 144'` & set perStep `get_var bpmDiff & param_multiply 'constant 150 & param_1_x' & param_cast beats & param_cast relative` & repeat_start_instant tempoChange 100ms 150 & get_var perStep & param_cast & pitch
That's what you asked for, but it could be better; 15 seconds... we don't work in seconds, we work in beats, and we can do more maths so the pitch move is beat based, you press the button and instead of 15 seconds [which is a guess against the tempo] you could have a button that does the reset that matches beats played.
Inviato 4 days ago @ 11:56 pm
Wow! this IS way more complicated that I was expecting. First thanks so much for your help. I’m gong to put this in and digest the pieces and parts, but at first glance you’ve given me more than enough to figure out exactly how I want this to work. I could have NEVER gotten to this point alone, so thanks again for taking the time to help me with this!
Inviato 4 days ago @ 3:31 am
pitch 150 bpm can be used if you don't need a gradual change
Inviato 4 days ago @ 5:58 am
Thanks There is a TON of scripting that I assume is possible but could never work out on my own.
Inviato 2 days ago @ 6:00 pm