From TouchDesigner 099 Wiki


The Copy CHOP produces multiple copies of the second input along the timeline of the first input. The first input provides the trigger signals or the convolve levels.

The Copy CHOP can be used to produce a motion every time a trigger occurs. It can be used to trigger motion, such as eyelid blinks. The copies it produces can be identical, or the copies can be re-cooked each time a copy is added to the timeline. It is useful for triggering a sound multiple times, where the sounds may overlap in time.

Each copy that is added to the output can be completely different than any other copy. By passing variables through the Variables page, the second (Copy) input can be any CHOP chain that uses the variables and recooks to create each copy.

PythonIcon.png copyCHOP_Class

Parameters - Copy Page

Copy Method

  • Triggered Copy - The second input is copied at the first input's trigger points only. A trigger point occurs whenever the first input's channel crosses the Trigger Threshold value. Overlapping copies are added.
  • Convolve - For every sample in the first input's channel, the second input is shifted to that point in time, scaled by the sample value, and added into the output channels.

Output Method

  • One Channel Per Template Channel - Each output channel is a channel from the first input combined with the corresponding channel from the second input.
  • One Channel Per Copy Channel - Each output channel is a channel from the second input, with copies triggered by every channel of the first input.

Trigger Threshold - The threshold value for triggering copies.

Remainder - See Common Parameters > Remainder Options.

Keep Non-Scoped Channels - If enabled, non-scoped channels are copied to the output, otherwise they are deleted.

Parameters - Variables Page

Cook Each Copy - Recook the second input for each triggered copy.

Param 1 - 10 - The parameters are re-calculated for each copy. The first field is the parameter name, the second is its value. You can use Local Variables and the ic() expression functions. The parameters you set here are available to any CHOP in the network attached to the second input through the function:

 param("name", initval)

Where initval is any initial value for the parameter, and is usually set to 0.

Standard Options and Local Variables

Local Variables:

$I - The current index.
$C - The current channel (0 to NC-1).
$NC - The total number of channels.
$V - The value at the current index of the current channel.
$N - The copy number. (The first thing it copies is numbered 0.)