Nesting dolls for node graphs. Group a chain of nodes into a single reusable block — keep complex setups tidy and build your own custom “macro” nodes.
Subgraph
What it does — Wraps an entire group of nodes into a single collapsible unit that behaves like any other node in your graph.
When you’d reach for it — Your graph has grown into a sprawling web and a particular section — say, a three-stage spectral cleanup chain — keeps showing up in different projects. Pack it into a Subgraph once, and from then on it is one tidy box you can drop in anywhere.
Quick example
- Select the nodes you want to group and create a Subgraph from them.
- Double-click the Subgraph node to step inside and edit the internal chain.
- Add a Subgraph Input and a Subgraph Output inside to define the entry and exit points.
- Back in the parent graph, the Subgraph shows matching input and output ports — connect it like any other node.
- Expose an internal parameter (e.g., a filter cutoff) so you can tweak it from the parent graph without diving in.
Parameters
| Parameter | What it controls | Range | Sweet spot hint |
|---|---|---|---|
| Edit Subgraph | Opens the internal graph for editing | Button | Double-click the node for the same result |
| Exposed Parameters | Sliders for any internal parameters you have surfaced | Inherited from the internal node | Expose only the 2—3 knobs you actually tweak between uses |
Subgraph Input
What it does — Marks an entry point inside a subgraph, creating a matching input port on the parent Subgraph node.
When you’d reach for it — You are building the inside of a subgraph and need to define where external data enters. Drop one of these for each signal the subgraph should accept.
Quick example
- Inside an open subgraph, add a Subgraph Input node.
- Set its Port Name to “Source” and Data Type to the format your chain expects.
- Connect its output to the first processing node in the internal chain.
- Back in the parent graph, the Subgraph node now shows a “Source” input port.
Parameters
| Parameter | What it controls | Range | Sweet spot hint |
|---|---|---|---|
| Port Name | Label shown on the parent Subgraph node’s input | Text | Name it after what it carries — “Dry Signal”, “Sidechain”, etc. |
| Data Type | The kind of data this port accepts | Complex Spectral, Audio, Spectral Tensor, Control Signal, Envelope | Match to whatever the first internal node expects |
Subgraph Output
What it does — Marks an exit point inside a subgraph, creating a matching output port on the parent Subgraph node.
When you’d reach for it — You are finishing the inside of a subgraph and need to define where the processed result leaves. Drop one for each signal the subgraph should send back out.
Quick example
- Inside an open subgraph, add a Subgraph Output node.
- Set its Port Name to “Processed” and Data Type to match the final node’s output.
- Connect the last processing node’s output into this node’s input.
- Back in the parent graph, the Subgraph node now shows a “Processed” output port ready to connect downstream.
Parameters
| Parameter | What it controls | Range | Sweet spot hint |
|---|---|---|---|
| Port Name | Label shown on the parent Subgraph node’s output | Text | Name it after what comes out — “Wet”, “Left”, “Envelope”, etc. |
| Data Type | The kind of data this port delivers | Complex Spectral, Audio, Spectral Tensor, Control Signal, Envelope | Match to whatever the last internal node produces |