Docs CHOPs & sensing

ChopProcess

Shapes channels in one node: limit, remap between ranges with an exponent curve, zero at the bottom, lag, and an optional speed mode that turns the result into a running total. An alternative for the Math CHOP.

∿ CHOPs & sensing ◆ Patreon:Base OP Create menu entry

This tool unlocks with Patreon. It installs through the same picker as everything else and unlocks with the Patreon Base tier or higher, connected from inside TouchDesigner. Everything else in the toolkit stays free and MIT, and the membership is what keeps that work moving.

Join on Patreon → How unlocking works →

Where it appears

Read off the registry hosts in the component, so this is where the tool puts itself in a default install; every one of these can be reordered or hidden from Hub.

What it is

ChopProcess is the chain you build after almost every controller, in one node. It limits the incoming values to a range, remaps that range onto another through an exponent curve, glides toward new values with a lag, and can treat the result as a speed and output its running total instead. Every channel of the input goes through it, so one node shapes a whole fader bank.

Zero Below makes the bottom of the input range output 0 instead of the bottom of the output range. It's handy when a fader should switch something fully off at its lowest point but start from a useful value as soon as it moves.

It is the alternative for the Math CHOP: create a Math CHOP with the alternatives shortcut held and ChopProcess is offered in its place, wired into the same spot. It is also a member of the FNS operator family: pick it from the FNS tab of the OP Create dialog and it lands as one node.

Input and output

  • in1 (CHOP): the channels to process. With nothing connected, the Value parameter is processed instead.
  • out1 (CHOP): the processed channels.

Parameters

Custom

ControlType / defaultWhat it does
ValueValue number0 The value to process when nothing is wired into the input.
NameName textempty Rename the output channels: names separated by spaces, one per channel, or a pattern like chan[1-4]. Empty keeps the input's names.
TypeType menuOff What happens outside the From Range: off lets values through, clamp holds them at the ends, loop wraps them round, zigzag bounces them back.
Options: Off, Clamp, Loop, Zigzag
From RangeFromrange number-1 The input range. With Type set to clamp, loop or zigzag this is also the limit.
To RangeTorange number0 The output range the From Range maps onto.
Zero BelowZerobelow on / offoff Output 0 while the input sits at the bottom of the From Range, instead of the bottom of the To Range. Only with Type set to clamp.
Exponent ValueExpval number2 Exponent for the curve between the ranges: 1 is linear, above 1 eases in, below 1 eases out.
LagLag number0.2 Seconds to glide up and down toward a new value.
Speed
Is SpeedIsspeed on / offoff Treat the processed value as a speed and output its running total instead, so a held input keeps moving.
Limit TypeLimittype menuOff What happens when the running total leaves Minimum and Maximum.
Options: Off, Clamp, Loop, Zigzag
MinimumMin number0 Lower limit for the running total.
MaximumMax number1 Upper limit for the running total.
Reset ValueResetvalue number0 The value the running total returns to on reset.
ResetReset on / offoff Hold the running total at the Reset Value while on.
Reset PulseResetpulse button Return the running total to the Reset Value once.

Edit this page on GitHub →