Create sidechain pump
create_sidechain_pumpCreates a sidechain pump envelope from a trigger CHOP, binding multiple targets to dip on each hit with adjustable depth, attack, release, and rest value.
Instructions
EXPERIMENTAL — One-call 'pump the whole rig on the kick': build a sidechain ducking envelope from a trigger CHOP channel and bind multiple target parameters to dip on every hit. Distinct from create_envelope_follower (which builds the chain + optional gate/duck mode with a threshold); this tool is the ergonomic multi-target pump with a single depth knob and a rest_value anchor — ideal for classic pumping compressor feel across many targets at once. Builds a container with: a Select CHOP isolating the source channel by absolute path (no cross-container wires), a Lag CHOP shaping attack/release, a Limit CHOP clamping to [0,1] (type=clamp/min/max, live-validated on TD 099 — guarded with warnings), and a Null CHOP 'pump' as the stable output handle. Each target gets the expression: rest_value * (1 - depth * op('')[chan0]). Per-target failures become warnings; fatal only if source_chop or parent COMP is missing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| parent_path | No | Parent COMP path where the sidechain pump container is created (e.g. '/project1'). | /project1 |
| name | No | Base name for the container COMP that holds the pump chain. | sidechain_pump |
| source_chop | Yes | Path of the trigger CHOP (e.g. an onset Null, kick-level CHOP, or audio feature output). This is the signal that drives the pump — high = dip. | |
| channel | No | Channel name to follow from source_chop (e.g. 'level', 'kick', 'bass'). The Select CHOP isolates it by name. | level |
| targets | No | List of 'nodePath.parName' pairs to bind to the pump output by expression. Each target dips toward rest*(1-depth) on a hit and returns to rest_value on silence. Omit to build the chain only (bind manually with bind_to_channel later). | |
| depth | No | How hard the pump dips on a trigger hit [0–1]. 0 = no dip (targets stay at rest_value), 1 = full dip to zero. 0.7–0.9 is typical for a strong pumping compressor feel. | |
| attack | No | Envelope rise time in seconds — how quickly the pump signal climbs after a hit (controls how snappy the initial dip is). Typical: 0.001–0.02. | |
| release | No | Envelope fall time in seconds — how slowly the pump returns to silence after the trigger drops. Controls the 'pumping tail'. Typical: 0.1–0.6. | |
| rest_value | No | The target parameter value at silence (no trigger). On a hit, the expression drives the target toward rest_value*(1-depth). Default 1.0 works for opacity/gain/level parameters. |