I noticed the filter Chop is constantly cooking, even when the value it is filtering is stable. I guess it is normal since the chop can’t predict if the value will be changing. I find this chop pretty useful and practical for a simple ease effect, quick to use, but as they add up, they become expensive. I should probably be more sparing with it. Is there a trick to shut it down when not necessary? Or a better way to smooth values?
there’s also the option to add a Null CHOP after your Filter CHOP, and set its Cook Type to “selective”.
This has some implications though, best to quote the Null CHOP wiki page:
Cooktype: Selective - Select which criteria will cause downstream nodes to require recooking, using the parameters below. This option can optimize your network by reducing the number of cooks downstream if the upstream CHOP has inputs that are time dependent or changes often, but output is mostly static (e.g. a Math CHOP rounding a constantly changing float to 0 or 1). The downside is that the nodes upstream of the Null will cook whenever something changes, even if no data is requested downstream. See Cook for more information on when data is requested.
Another thing to consider: try to do your all your filtering / smoothing (Filter, Lag and Spring CHOP for example) as close as possible to the end of your signal chain.
For example, using the same amount of CHOP operators, this signal chain is heavier:
Noise, Filter, Math, Analyze, Rename, Null
then this one:
Noise, Analyze, Rename, Math, Filter, Null
In the first example you will see all the connections and operators cooking after that filter, where in the second example the cooking occurs only at the end of the chain, making it more efficient.
It doesn’t seem much but it all adds up if you consider larger networks or bigger data sets.
Ok thanks for the hints
Wanted to add to the discussion!
Here is a method you can also use for limiting cooking when using a filter. A double CHOP Execute can really help limit this issue.
autoFilter.tox (1.2 KB)
Hi @Matterform,
i don’t see a benefit in using CHOP Executes here compared to the Null CHOP as it causes additional cooks at a higher general cost.
The screenshot has at the top the double executes and below a comp with just a Filter CHOP. In the best case the Execute DAT solution will take double the cook time and in worst case 8x.
cheers
Markus
Wow, thanks @snaut!
No kidding. That’s much more efficient! Thanks for the correction.