How to stop an LFO from cooking?

I have an LFO with somewhere around 500 hundred channels (each offset by its index).

I do not need this active all of the time and it is reasonably expensive.

When I toggle the “Play” parameter (even if nothing is using the data downstream) it still cooks every frame.

Is there a way to stop it entirely from cooking?

All I know how to do is to lock or bypass the operator.

Is this the correct way?

It seems like every operator that cooks every frame should have an “active” toggle, like some of them do.

Just tried this out for myself, and you’re right, even with play deactivated it still cooks for the same length of time. At the very least, you can stick a null with cook type set to selective after the LFO, which stops the rest of the operator chain from cooking if the actual values being passed through aren’t changing.

Try this approach: Bypass the lfo operator in python op('lfooppath').bypass = True , but make sure you have a constant with the same channel names that your lfo is outputting, and wire the constant into the first input of a replace, and the lfo into the second input of the replace (all this before the selective null if you added that). Make sure you use a replace and not an override, on my machine for 500 channels replace uses .01 ms where override used 2.0 ms.

Could also use Switch CHOP with Constant CHOP as the second source. That way you don’t have to script any bypassing, you can just switch to Constant when you don’t want LFO. To ensure Constant has same channels as LFO you can use Constant CHOP’s Snap input.