Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
random bpm
#1
I'm wondering if anyone knows how to make the clock speed up and slow down randomly? What would be perfect would be to have the random ranges control the amount of speeding up (or slowing down). 

Any suggestions?
Reply
#2
(10-15-2025, 05:14 PM)joesh Wrote: I'm wondering if anyone knows how to make the clock speed up and slow down randomly? What would be perfect would be to have the random ranges control the amount of speeding up (or slowing down). 

Any suggestions?

Easy. The mappings.
Or from the FX and using the random FX functionality.
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply
#3
Thanks, I'd guessed that was it.

However, for the mappings, it's difficult to understand how to do that unless you have some experience with coding (as you told me). Maybe one day someone will write a manual, just for mappings. As for the FX, I had hoped that would be possible, but I don't see how I link the bpm with the random FX functionality - I thought that would be possible, but I couldn't see how (or where) it was.
Reply
#4
You can overwrite most FX values based on a selected random range.
You simply enable that in the track setup. If you set it up for FX2 for example then put any BPM change FX there and it will always be overruled by a random range.

If you want to change the bpm on-the-fly then doing it from the mappings is what you want to use.
It can be as easy as using a random value as a source and the bpm as destination but then the bpm would change every millisecond.
Better might be every step or every second or so which is also very easy to make.
Every second would be a simple counter that counts to 100 and when at 100 then both change the bpm and reset the counter again.
No real coding is involved here. More simple concepts.
The basics are explained in the manual and some deeper explanation is available in the examples.
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply
#5
As for the mappings, this would be the easy solution changing the BPM every millisecond:
Code:
00 GLOB RAND ----  >  GLOB TMPO ----     Global random value (0 - 4095/FFF) routed (and scaled) to the Tempo 1-500 (BPM)

That is of course too fast. You want slower updates of the BPM. Use a counter that counts to whatever is in variable B for example. Knowing that the mappings are executed every millisecond, you would need to count to 1000 to reach 1 second. 
You would use variable A to count. And you would put 1000 into variable B which is the value you want to count to. And you want to repeat this endlessly.
 
Code:
00 VAR  #  B #3E8  >  ---- ---- ----  (set variable B to 3E8hex which is 1000 decimal) That is the value you want to count to 
01 CALC ADD =1VA  >  SET V  A SRC     (Add 1 to variable A and set the result back into variable A)
02 SKIP 02 < VAVB  >  ---- ---- ----  (skip (do not execute) the next 2 rows if variable A is smaller than variable B)
In fact the next 2 rows would only be executed if variable A reaches the value 1000 or higher.
03 VAR #  A #000  >  ---- ---- ----   (This resets the Variable A to 0 again so it can begin again to start counting)
04 GLOB RAND ----  >  GLOB TMPO ----  (And since this row is also being executed only once a second caused by the counting, the tempo changes only every second

This expample would change the BPM every second to any value between 1 and 500 bpm because that is the range of the BPM. It is also scaled so a source value between 0 and 4095 would generate a bpm destination between 1 and 500. 
If you want to reduce this to a certain range, lets say you only want to get BPM between 80 and 130 BPM then you would advance the mapping a bit:

Code:
00 VAR  #  B #3E8  >  ---- ---- ----  (same as before)
01 CALC ADD =1VA  >  SET V  A SRC     (Same as before)
02 SKIP 03 < VAVB  >  ---- ---- ----  (Now skip 3 rows instead of 2)
03 VAR  #  A #000  >  ---- ---- ----  (Same as before)
04 GLOB RAND ----  >  ---- ---- ----  (Just generate a random value between 0 and 4095, the result will be saved in row 04 just like a variable)
05 CALC RNGE VCVD  >  GLOB TMPO ----  (Range/scale the former row (04) to a value between Variable C and Variable D and send the result to the Tempo)
Now you could either manually set the minimum value of Variable C and the maximum value of variable D to the min/max BPM setting, and keep in mind that you need to calculate the values you need (4095 / 500 * wanted BPM)
Variable C would be 28Fhex/655 dec for 80 BPM and Variable D would be 428hex/1064dec for 130 bpm
Manually changing of the variables can be done in the variable screen (toggle the PATCH button in the Mapping screen)
Instead of manually you can also set the minimum and maximum in the mapping rows
Code:
06 VAR #  C #28F  >  ---- ---- ----   (which is 655 decimal and scaled from 4095 to 500 it is 80 which is then your minimum bpm)
07 VAR #  D #428  >  ---- ---- ----   (which is 1094 decimal and scaled from 4095 to 500 it is 130 which is then your maximum bpm)

In the end this would be one of the many possible solutions if you want to change the BPM with a fixed interval.

You could enhance/change this by adding rules that would change the BPM only on every 16th step etc instead. Or only when you fire a trigger onto the CV input...or whatever.

And if you want to change the BPM only with every new pattern then the random FX and putting the BPM FX in the first pattern row is the better and easier solution of course.
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply
#6
Wow, that's already made my head explode.

It sounds as if the easiest way (and maybe the most musical) is to use the FX in the track setup. I'm going to look at that first and then come back to you here if I need to sort something out.

Big thanks (yet again).
Reply
#7
(10-16-2025, 07:43 AM)XORadmin Wrote: You can overwrite most FX values based on a selected random range.
You simply enable that in the track setup. If you set it up for FX2 for example then put any BPM change FX there and it will always be overruled by a random range.

If you want to change the bpm on-the-fly then doing it from the mappings is what you want to use.
It can be as easy as using a random value as a source and the bpm as destination but then the bpm would change every millisecond.
Better might be every step or every second or so which is also very easy to make.
Every second would be a simple counter that counts to 100 and when at 100 then both change the bpm and reset the counter again.
No real coding is involved here. More simple concepts.
The basics are explained in the manual and some deeper explanation is available in the examples.

Okay, I just took a look at the NS itself, but haven't had time to try it (practically). If I understand correctly, the FX column (ex:1) is controlled by FX(1-4) in the track set-up? Meaning, if I enable Random Range (FX 1) in Track Setup then put the BPM in the FX column #1 on the track, the random values in the track set-up take precedent?

Sounds good, I'll try that tomorrow.
Reply
#8
Yes!
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply
#9
(10-25-2025, 03:57 PM)XORadmin Wrote: Yes!

Okay, tried it and it's perfect. 

Next problem (no laughing), how can I stop it and go back to the original tempo(s)? I tried using Special FX commands but couldn't find one that cancelled out (overrides) the FX command in track setup. Maybe you have a suggestion on how I can go between the settings?

The effect using the random values is perfect, but it's a shame I can't switch them off/on.
Reply
#10
(10-29-2025, 10:28 AM)joesh Wrote:
(10-25-2025, 03:57 PM)XORadmin Wrote: Yes!

Okay, tried it and it's perfect. 

Next problem (no laughing), how can I stop it and go back to the original tempo(s)? I tried using Special FX commands but couldn't find one that cancelled out (overrides) the FX command in track setup. Maybe you have a suggestion on how I can go between the settings?

The effect using the random values is perfect, but it's a shame I can't switch them off/on.

You can use another pattern which doesn't got the bpm FX but use the bpm fx in another fx column. There is no command to change/turn the random FX on/off.

Another possibility would be to use the automators instead of the random FX. The difference is that you can turn the automator (LFO) off. Use a noise LFO there and change the range/offset/amplitude to your needs and as destination FX overrule.
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)