Random Number generator - persistant, keeping number after reload.

This forum is for discussing Rack Extensions. Devs are all welcome to show off their goods.
Post Reply
electrofux
Posts: 872
Joined: 21 Jan 2015

02 Jun 2023

I am currently building a Drummachine Combi that randomizes the Sample Selection of 8 Mimics in Slice mode filled with 96 samples each (the idea of the device is being discussed here viewtopic.php?f=7&t=7531721).

I got it working with RandromRe BUT i had to realize that randomly generated slice/note numbers dont persist through a save and reload of the document. RandomRe generates a random number on a gate and when a document with the combi is loaded there is a.) no gate and b.) the last generated cv value is not saved and the current cv value is zero and thus the first sample in every Mimic is selected.

I am not sure what the closed and open values in RandomRe mean and if they can help me with this. Sadly i dont have the manual and the website is pretty empty

Also not sure if that is an unsolvable dilemmawith cv but maybe there is a way to generate a random number that is saved with the document? Any ideas?

Imaginary191
Competition Winner
Posts: 32
Joined: 22 Apr 2019

02 Jun 2023

Maybe look at "BZR-1 Chaotic Signal Generator" RE. I don't have it myself yet. But its description says that its random CV sequences for specific set of parameters should be the same every time.

electrofux
Posts: 872
Joined: 21 Jan 2015

02 Jun 2023

Just tried it, actually a cool device. But it also doesnt keep its output value on reload. It would generate the same sequence again but then i would have to count the number of randomization runs and isnert it into the device to reproduce the last value.

Pandas devices actually have generators that produce a value internally that can then be saved. Evolution for example has 4 random outs and when i save a document and reload it and then press run on Evolution i get the last random numbers. Thats at least the mechanic i need. But having to press run before AND that the randomize button is not reachable from a Combitor is not workable for me.

User avatar
Pepin
Posts: 519
Joined: 16 Jan 2015

02 Jun 2023

You could use the "X" CV output of BeatMap and click "Spawn XY" to change the value.

electrofux
Posts: 872
Joined: 21 Jan 2015

02 Jun 2023

That sound like a good idea. I am crossing the fingers that Spawn XY is accessible from the Combinator panel because i need a random number for every of the 8 channels of the drummachine. First thing i check when i come home.

electrofux
Posts: 872
Joined: 21 Jan 2015

04 Jun 2023

Like i feared the Spawn XY button is not available in the combinator.

The problem seems to be that my current random number generating device (in this case RandomRe) doesnt save his last produced random number and on reload the cv out is zero again.

All devices that i have tested that generate something random either lose the value on loadup or the random generating control (button) is not remotable or available in the Combinator. But i am still searching...

User avatar
crimsonwarlock
Posts: 2467
Joined: 06 Nov 2021
Location: ##########

04 Jun 2023

electrofux wrote:
04 Jun 2023
Like i feared the Spawn XY button is not available in the combinator.
There is a way to sample-hold two values (from a random LFO) into the XY CV inputs. That would retain the current value. You can do this with this RE: https://www.reasonstudios.com/shop/rack ... cv-freeze/ It's also possible to setup with the free Morfin Crossfader, but you need to search the forum for instructions.
-------
Reached the breaking-point. CrimsonWarlock has left the forum.

electrofux
Posts: 872
Joined: 21 Jan 2015

04 Jun 2023

crimsonwarlock wrote:
04 Jun 2023
electrofux wrote:
04 Jun 2023
Like i feared the Spawn XY button is not available in the combinator.
There is a way to sample-hold two values (from a random LFO) into the XY CV inputs. That would retain the current value. You can do this with this RE: https://www.reasonstudios.com/shop/rack ... cv-freeze/ It's also possible to setup with the free Morfin Crossfader, but you need to search the forum for instructions.
Does the CF Freeze device save the random value over to a relaunch of the Reason document? I have the Sample and Hold from Zvork and it didnt do the trick. CV was zero on reload.

User avatar
crimsonwarlock
Posts: 2467
Joined: 06 Nov 2021
Location: ##########

04 Jun 2023

electrofux wrote:
04 Jun 2023
crimsonwarlock wrote:
04 Jun 2023


There is a way to sample-hold two values (from a random LFO) into the XY CV inputs. That would retain the current value. You can do this with this RE: https://www.reasonstudios.com/shop/rack ... cv-freeze/ It's also possible to setup with the free Morfin Crossfader, but you need to search the forum for instructions.
Does the CF Freeze device save the random value over to a relaunch of the Reason document? I have the Sample and Hold from Zvork and it didnt do the trick. CV was zero on reload.
Maybe I was wrong about that one, didn't use it myself. And thinking about it, it was not the cross fader either.

The trick is this one: run a random signal from an LFO into Pongasoft's A/B audio/CV switch (it's free). When you switch this signal to the X or Y CV input of Beatmap, it will randomize until you switch it off with A/B switch. A/B switch retains the last (random) CV value. I have no idea if this will be retained when you save the combinator patch, but I think it would.
-------
Reached the breaking-point. CrimsonWarlock has left the forum.

User avatar
crimsonwarlock
Posts: 2467
Joined: 06 Nov 2021
Location: ##########

04 Jun 2023

Well, tried it myself, doesn't work :(
-------
Reached the breaking-point. CrimsonWarlock has left the forum.

electrofux
Posts: 872
Joined: 21 Jan 2015

05 Jun 2023

I have found 1 way to carry over a randomly generated value over to a document reload where the trigger is remotable/usable in the combinator. And that is with Quad Note Generator because you can freeze the randomly generated notes. Now it is still not 100% because Quadnote only has a limited range of note values (+20/-24 depending on the base keyi think) it can generate and it is a 2 step generation/save operation. But at least it shows that it is possible.

I gues the ground issue is that CV behaves like in the real world - if you turn off power all values go down to zero. So any randomly generated cv value turns zero too. Now that the sample and hold devices i tried also dont save the last sampled value is kinda dissapointing. It sounds like this could be solved differently.

The second thing is regarding the remotability of all the inbuilt random functions i have checked so far. I assume that whenever a random function is implemented that affects already available parameters (and that is what spawn XY or the other random functions i have checked do) then the trigger to that is not remotable. Smells like an SDK thing.

Gonna trial the Tonic Mint thing, maybe they do save the sampled value.

Edit: nope, CV-Freeze also goes back to 0 after reload. Since Quad Note can do it, how about a new sample and hold device that can also do it?

User avatar
selig
RE Developer
Posts: 11871
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

05 Jun 2023

electrofux wrote:
05 Jun 2023
I have found 1 way to carry over a randomly generated value over to a document reload where the trigger is remotable/usable in the combinator. And that is with Quad Note Generator because you can freeze the randomly generated notes. Now it is still not 100% because Quadnote only has a limited range of note values (+20/-24 depending on the base keyi think) it can generate and it is a 2 step generation/save operation. But at least it shows that it is possible.
As I understand how Reason REs work, any solution will be a two step operation. This is because while controls can be persistent, ‘generated’ values cannot until ‘committed’. This is why you have to have a REC button on REs to record/enter data, and the “freeze” button on QNG does the same thing if I’m not mistaken.
I haven’t explored all the possibilities here, so maybe there’s another way around this…
Selig Audio, LLC

electrofux
Posts: 872
Joined: 21 Jan 2015

05 Jun 2023

selig wrote:
05 Jun 2023
electrofux wrote:
05 Jun 2023
I have found 1 way to carry over a randomly generated value over to a document reload where the trigger is remotable/usable in the combinator. And that is with Quad Note Generator because you can freeze the randomly generated notes. Now it is still not 100% because Quadnote only has a limited range of note values (+20/-24 depending on the base keyi think) it can generate and it is a 2 step generation/save operation. But at least it shows that it is possible.
As I understand how Reason REs work, any solution will be a two step operation. This is because while controls can be persistent, ‘generated’ values cannot until ‘committed’. This is why you have to have a REC button on REs to record/enter data, and the “freeze” button on QNG does the same thing if I’m not mistaken.
I haven’t explored all the possibilities here, so maybe there’s another way around this…
The difference between the Rec buttons and Quads freeze function is that the freeze can be remote controlled while the rec buttons cannot (never really understood why they committed to such a limitation in their SDK - if there is one control that you want to remote control then it is the Rec Button.).

Regardless, it would be very handy to have a sample and hold device that does the same as Quad does internally. You press a button and it freezes the value so that it can be saved with the document or patch - it seems at least be possible.

User avatar
Timmy Crowne
Competition Winner
Posts: 357
Joined: 06 Apr 2017
Location: California, United States

05 Jun 2023

Here's a way you can do it:
  1. Create a virtual MIDI loopback bus in your computer's preferences. On Mac, it's the IAC Driver. On Windows, I know there are apps like loopMIDI or loopBe1.
  2. In Reason's MIDI settings, make sure the internal loopback bus is recognized. With Reason's easy MIDI detection, your loopback device should already be visible.
  3. Create a MIDI Out device in the rack and select your loopback bus.
  4. Route your RNG CV to one of the CV inputs on the rear of the MIDI Out device and choose a CC. (You may need to throw the MIDI device in a Combinator and disable incoming MIDI to make sure you don't get feedback loops.)
  5. Right click your desired parameter and enable Remote Override using the MIDI loopback bus and CC you selected.
  6. Generate your random CV values and when you find a sound you like, disable the loopback device in your settings. This will ensure your paramaters won't change when you reopen the project.
Because you're driving your parameters via MIDI, Reason sees the modulation the same way as if you had used the mouse to make changes. This means the changes will be saved with the project. However, it also means all the changes will take space in the undo history. Hope this helps!

User avatar
turn2on
RE Developer
Posts: 805
Joined: 13 Mar 2015
Contact:

06 Jun 2023

Hello to all.

Have good news. Today already create RE, that finished.
RE include:

- Only 1 button (randomizer)
- Text line (custom description)
- 1 CV output (always last generated CV value at the output)

You can regenerate values. When find your needed value, CV output level is saved.
You can save/open reason project, remove device and return it.. Always last generated value is stored at output.

I prepare it for release and soon as it can be approved, it going to the shop.

electrofux
Posts: 872
Joined: 21 Jan 2015

07 Jun 2023

turn2on wrote:
06 Jun 2023
Hello to all.

Have good news. Today already create RE, that finished.
RE include:

- Only 1 button (randomizer)
- Text line (custom description)
- 1 CV output (always last generated CV value at the output)

You can regenerate values. When find your needed value, CV output level is saved.
You can save/open reason project, remove device and return it.. Always last generated value is stored at output.

I prepare it for release and soon as it can be approved, it going to the shop.
Nice, just to make sure. That button to generate the random number, is that accessible from the Combinator Panel/remotable?

User avatar
Pepin
Posts: 519
Joined: 16 Jan 2015

05 Jun 2024

It's a year late, but I remembered this thread while experimenting with something similar today.

The attached Combinator scrubs through 640 random bands generated using Lectric Panda's Shape LFO Editor.
In effect, you're selecting a persistent "random" value with the Combinator.

Due to the low resolution of Combinator knobs, the "Value" knob can only scrub through 128 values at a time. There's a second "Window" knob that changes which 128 values are scrubbed. This approach could be extended using multiple Shapes, with either separate or shared Combinator knobs.

If 128 values are enough for you, you could instead take a simpler approach and only generate 128 random bands with Shape. Then you'd just map the Value knob to Shape's Start Position and discard the Window knob.

Or if you're okay abandoning the Combinator, you could keep the 640 bands and use a higher resolution knob to modulate Shape's Start Position over CV.
RandomKnob.gif
RandomKnob.gif (647.71 KiB) Viewed 387 times
RandomKnob.png
RandomKnob.png (184.64 KiB) Viewed 387 times
Attachments
RandomKnob.zip
(3.08 KiB) Downloaded 12 times

electrofux
Posts: 872
Joined: 21 Jan 2015

06 Jun 2024

Looks good! Thx.

electrofux
Posts: 872
Joined: 21 Jan 2015

08 Jun 2024

Damnit, while this is helping me in some other Combi it still not a fix for my problem,

The thing that i want to do is:

press a button on a combi and this generates a random number that is then used to select a slice in Mimic.
There will be 8 buttons for 8 Mimics and a 9th to randomize all slices (that are selected by another row of 8 buttons). That way you can first create a completely random Drumkit and then step by step keep the sounds you like and randomize the rest until you have found your perfect drumkit.

However, the random number will allways be a CV value since the combi cant produce random values. And CV values are never kept after a reload.

So what i would need is a device with a button accesible through either a combi or via cv-gate that generates a random number on a CV-out but once generated the number persists through a reload and is this saved with the document. It is probably not possible, i guess.

Via remote i can all do this already and it is fantastic to place a beatmap into the combi and try out different beats with different random kits. But i would love to just have it in the combi working without any remote controllers.

User avatar
Andrew Russell
Posts: 8
Joined: 22 May 2020
Location: Brisbane, Australia
Contact:

08 Jun 2024

electrofux wrote:
08 Jun 2024
So what i would need is a device with a button accesible through either a combi or via cv-gate that generates a random number on a CV-out but once generated the number persists through a reload and is this saved with the document. It is probably not possible, i guess.
I'm reasonably sure what you're asking for is not possible. Reason will save the state of parameters ("properties") that you can change with UI controls (knobs, etc). You can't change a (saveable) property via CV. Almost certain you can't do it via a combinator either. You could (in theory) do it via a custom display element that modified a saveable property -- but then you can't trigger that via CV or combinator.

FWIW, I was going to suggest Dual CV Source (my device), which does some clever stuff with its RNG (it doesn't generate a sequence, but is trigger-timing based). It will produce the same value immediately on startup. But you can't "save" a value as such, if you triggered it it.

Closest thing you can do with DCVS is set the RNG seed by exposing one of its knobs on the combinator (so: a knob instead of a button). Then press play in the sequencer to reset the random output. If you never trigger it again, it'll keep the same output, even across saves. If I exposed the seed directly, you'd not need to press play, and it'd be similar in practice to what Pepin suggested. Either way, probably not what you want.

User avatar
Pepin
Posts: 519
Joined: 16 Jan 2015

Yesterday

Deleted (updating with simpler solution)
Last edited by Pepin on 10 Jun 2024, edited 2 times in total.

User avatar
Pepin
Posts: 519
Joined: 16 Jan 2015

Yesterday

Deleted (updating with simpler solution)

User avatar
Pepin
Posts: 519
Joined: 16 Jan 2015

Yesterday

Sorry about the previous two posts. I realized it was using a lot of unnecessary devices (Shape, CV Player Tap) because I hadn't fully understood how the Combinator's "Key Random" source worked. Anyway...

I came up with probably the closest I'm going to get to a solution. It's interesting... Useful? Maybe...

It does let you generate persistent random numbers using Combinator buttons. The attached song file supports 8, but you can add as many as you want.
The downside is that it requires additional Combinators to work (one for generating each random number), but all the actual controls are contained within a single Combinator.
And once you've landed on a result you like, it's easy to preserve the values while disconnecting the main Combinator from the others.

Here's how it works:
- There are 8 simple Combinators, each containing 1 Tinker (you could really use any RE with a high resolution knob exposed to the Combinator and CV out). Each Combinator maps Tinker's knob to "Key Random". This is a source that sets a random value every time the Combinator receives a note. This includes gate input via CV, which we're going to use here. Every Tinker's formula is simply set to "K" (the knob value), so each Tinker will output the new random knob value whenever its Combinator receives gate. You could use a different formula to further constrain the random value, if you wanted.
- Our main Combinator contains two RVL-1s. The first one sends the aforementioned gate signals to the other Combinators. Each "Randomize" button on the Combinator triggers one of these gates.
- The second RVL-1 receives back and displays the values output by the Tinker units. This is where you'd hook up any devices that need to use the random values.

Important:
- The Randomize buttons on the main Combinator must be turned off after turning them on. Otherwise, they will generate new values when the song file is closed and reopened.

To disconnect the main "Randomizer" Combinator while preserving the random values:
- Record the values displayed on the "Values" RVL-1 (e.g. screenshot)
- Disconnect inputs of the "Values" RVL-1. Since RVL-1 functions as a constant generator when there are no inputs, you can now just re-enter the values you recorded in the Bias/Const section of the device.
- Disconnect the "Gates" RVL-1 (or delete it entirely).
- Remember the values persist in the song file even if you don't do this. This is just to make the end result "portable."
Randomizer3.gif
Randomizer3.gif (245.86 KiB) Viewed 64 times
Attachments
Random.zip
(13.88 KiB) Downloaded 4 times

electrofux
Posts: 872
Joined: 21 Jan 2015

Today

"Key Random" source in combinator? Thats crazy. I remember having it seen somewhen i guess but i looked into the manual and its not even in there lol. I will try this out as soon as i come home. Thx alot for the effort.

Also while checking the manual for "random" i found that in the mod matrix of Europa and Grain there is also a source that produces a new random number when a key comes in. Maybe this works aswell...

User avatar
Pepin
Posts: 519
Joined: 16 Jan 2015

Today

electrofux wrote:
Today
"Key Random" source in combinator? Thats crazy. I remember having it seen somewhen i guess but i looked into the manual and its not even in there lol. I will try this out as soon as i come home. Thx alot for the effort.

Also while checking the manual for "random" i found that in the mod matrix of Europa and Grain there is also a source that produces a new random number when a key comes in. Maybe this works aswell...
Yeah, it's not documented anywhere.

I also looked into the Europa route, but it doesn't persist. The Combinator approach works because the "invisible hand" of the Combinator is doing the randomization. It's not done directly by the CV signal, only triggered by it.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest