Seems to me that selecting “relative CHOP reference” rather than “export chop” when dragging a channel onto a parameter maintains the export if the exporting channel is broken and then fixed again. Is this the preferred method? How do you guys typically do it?
On most projects Python references are easier, more flexible, and as long as there aren’t a huge number of CHOPs all with references, such as situations with replicators and such, I usually just use those.
I have been put in a bind in the last little while though where I’ll have to go through the whole project in an optimization phase and remove all Python references and replace them with Tscript or exports. Also very helpful is using CHOP Executes set to value change as gates so that only on value changes are you writing new values to the CHOPs parameters, but that’s also situational.
For my systems right now I’ve found constantly moving references to be particularly nasty, especially with text TOPs…having an fps counter referenced to a Text TOP can cost up to 1ms for example. I generally keep as few references as possible.
Hmm, interesting. Glad I asked, and thanks for the responses
So, is there a way to do a CHOP export so that the parameter being exported to does not lose the export if the exporting CHOP temporarily loses the channel?
Or perhaps a global ‘turn all exported parameters back on’ button?
Not sure if this would qualify as hacky but I sometimes will make a constant with the channels I want to always represent set to 0, then add that to the chop that may not always have those channels.
This has it’s drawbacks, if your default value isn’t 0, for example, or if the current sample is not the same between both chops.
The good news is that by now many Python expressions (particularly simple references to chop channels or params) are optimized so they don’t actually involve executing python code.
[url]https://docs.derivative.ca/Optimized_Python_Expressions[/url]