How to drive a Noise CHOP to work and to control its rate?

Hi there,

Does Noise CHOP absolutely needs Time Sliced for working ?

Or does it work a bit as a “lookup table” and do we need to feed it with another CHOP ? In that case, I’d also understand it as a way of controlling the rate.

For instance, I want some random values, sometimes. On demande when I click, or each n frames. What should I use ?

I think this one is answering the question.

At least, theses are 2 ways to do this.
Changing the seed is interesting. But Could we use a “kind of” pulse (like a bang in Max) for driving noise object to pop out a new random number, for a given (and static) seed ?

You can do this with a button, a count, and a noise CHOP:

A button set to momentary will increment your count each time you click on it, you can then use this value to drive your seed value in a noise CHOP.

1 Like

Got it. Easy.
I’m sorry for such beginners question.

Usually, a seed is “just” the way to generate a sequence of pseudo-random numbers. It means for one seed, you’d have THAT sequence always (which can be interesting in some ways). Can we do that here without having to pre-generate a sequence and travel it on-the-fly when it is required ?

@julien Check out the Transform tab on the noise chop and noise top. If the seed is the same, these transformations are deterministic.

For making a random number on demand, I’d use the python expression tdu.rand() . If the seed is changed on every generation, you will always get a different number, always between 0 and 1. So to make a random number on a bang, you can create a Button Comp, set it to momentary mode, and attach a null chop. Then create a Chop Execute DAT, and drag the null onto the new DAT. Turn the Off to On parameter on, and then in the DAT, add print(tdu.rand(absTime.seconds)) to the onOfftoOn function. If you open the textport, you should see a random number every time you click the button.

1 Like

Thanks @pointshader, that’s very clear.

Does using another method to make the random number popping out the CHOP Execute DAT itself make sense (and how to do it) ?

Or Am I too much into data HAVE to flow from outputs only and here, in TD, it is better to use always python and scripting ?

Actually, for instance, let’s say I’d like to use this number for updating the frequency of a lfo (I know I could probably use some op(‘lfo stuff’).par. expression in my script way of alteration but it is the best practice here?