Create capture loop
create_capture_loopBuild a bidirectional video bridge between TouchDesigner and another app (e.g., Resolume or OBS) using NDI, Syphon, or Spout. Supports receive, send, or full round-trip loop with anti-feedback isolation.
Instructions
Build a bidirectional inter-app video bridge to another program (Resolume, OBS, MadMapper, a game engine…) in one container: receive an external feed IN and publish a TOP OUT at the same time. Picks the right operators per protocol — NDI (network, macOS & Windows), or Syphon (macOS) / Spout (Windows). direction 'in' only subscribes, 'out' only publishes, 'both' runs a full round-trip loop. The receive half is a receiver TOP → Null 'in_out'; the send half pulls source_top through a Select TOP into a publisher TOP. ANTI-FEEDBACK: the two halves are never wired together, so 'both' won't loop this app's own output back in. PLATFORM-GATED & largely UNVERIFIED-live: Spout needs Windows, Syphon needs macOS, and sender/receiver-name parameter names vary by TD build (probed at runtime) — the wrong platform or a real signal needs the actual sender present. This is the combined in+out version of create_live_source (in) and setup_output (out).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| parent_path | No | COMP to build the capture-loop container in (e.g. '/project1'). | /project1 |
| name | No | Base name for the container COMP that holds the in/out bridge. | capture_loop |
| protocol | No | Inter-app video transport. ndi works on macOS & Windows (network). spout is Windows-only; syphon is macOS-only — both use the same Syphon/Spout TOPs in TouchDesigner (PLATFORM-GATED: the wrong platform fails to create the op, reported as a warning). | ndi |
| direction | No | in: only receive an external feed. out: only publish a TOP. both: do both at once (a full round-trip loop to another app, e.g. send to Resolume and receive its output back). | both |
| sender_name | No | (out) The public name THIS app publishes its feed under, so the other app can find it. Used for direction 'out'/'both'. | tdmcp_out |
| receiver_name | No | (in) The name of the EXTERNAL sender to subscribe to. Empty = pick the first available sender on the network/machine. Used for direction 'in'/'both'. | |
| source_top | No | (out) Path of the TOP to publish when direction includes 'out' (e.g. '/project1/final'). Empty together with an 'out' direction publishes nothing and is flagged as a warning. | |
| resolution | No | Working resolution [w, h] applied to the receiver TOP (Output Resolution = Custom). The publisher inherits its input TOP's resolution. |