# 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

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?