Create preset morph
create_preset_morphSnapshot any TouchDesigner operator's animatable parameters into named slots, then blend between them with weighted crossfades or single A↔B recall via Lag CHOP and Lookup curve.
Instructions
Target-agnostic preset morph engine: snapshot any OP's animatable parameters into N named slots, then blend between them with a weight vector (or a single A↔B recall) through a Lag CHOP + Lookup curve, exposing the live blended values on a Null CHOP for bind_to_channel consumers. Unlike create_look_bank (which is scoped to a control COMP's custom pars with a 2-slot A↔B knob), this drives any OP and supports >2 simultaneous weights (normalized internally). Reuses manage_cue's MORPH_HOOK for beat/bar quantized recall. Note: Lag CHOP does not advance while the timeline is paused.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | build: create the morph container. store: snapshot the target's animatable parameters into a named slot. recall: snap or crossfade the target to one slot. set_weights: drive an N-way weighted blend across all stored slots (vector is clipped to >=0 and normalized). list / delete slots. | build |
| parent_path | No | Parent COMP where the morph container is built. | /project1 |
| name | No | Name of the morph container (baseCOMP) created inside parent_path. | preset_morph |
| target_path | No | The node whose parameters are snapshotted and driven (required for build/store). Any OP with animatable numeric/toggle/menu pars. | |
| include | No | (store) Restrict the snapshot to these parameter names (tuplet names like 'tx', 'feedback'). Omit to capture every animatable numeric/toggle/menu parameter (pulses, strings, file refs are always skipped). | |
| slot | No | Slot name (required for store / recall / delete). | |
| weights | No | (set_weights) Map of slot-name -> weight. Negatives clipped to 0; the vector is normalized internally (sum -> 1) before lerp. Missing slots default to 0. | |
| morph_seconds | No | (recall) 0 = snap; >0 = ease to slot over this many seconds via a Lag CHOP on the weight vector. Note: Lag CHOP does not advance while the timeline is paused. | |
| quantize | No | (recall) Defer the snap/crossfade to the next musical boundary (project tempo). Mirrors manage_cue / create_look_bank. | off |
| interpolation | No | Interpolation curve applied to each parameter when crossfading. linear is a straight lerp; cosine/cubic shape the lagged weights through a Lookup CHOP curve. | linear |