Nodes & Signals
The Signal Patch
The signal patch is the node graph at the centre of WavePhase. It wires sources through transformation nodes into outputs, and it's re-evaluated every frame.
Nodes, pins, and links
- A node is a single unit of work — a source, a math operation, an animator, an output, and so on.
- A pin is an input or output port on a node. Pins are typed and colour-coded (see Value Types).
- A link connects one node's output pin to another's input pin. Only compatible types connect.
How it evaluates
Every frame, WavePhase processes the whole patch in dependency order:
- 1
Inject inputs
Audio analysis, time and timecode, and external inputs (OSC, MIDI, DMX, API) push fresh values into their source nodes. - 2
Evaluate nodes
Nodes are evaluated from sources toward outputs, each transforming its inputs into outputs. - 3
Emit outputs
Output nodes send DMX, OSC, rendered video, and web updates to the outside world.
No loops
The patch is a directed, acyclic graph — values flow one way, from sources to outputs. This keeps evaluation fast and predictable.State that persists
Some nodes remember things between frames — an animator's playhead position, a counter's current value, a smoothing node's last output, a crossfade in progress. This node state is kept separately from the patch definition, so every instance of a node tracks its own state independently.
Fan-out and fan-in
A single output can feed many inputs (fan-out) — useful for sending the same beat to several effects. Combining multiple values into one (fan-in) is done through dedicated nodes like switches, crossfades, arrays, and groups rather than by stacking links onto a single pin.
Organising a patch
- Use Note nodes to label regions of the graph.
- Use Array nodes to bundle related values and keep links tidy (see Value Types).
- Keep sources on the left and outputs on the right for readability.
Using this for audio-reactive lighting? See WavePhase DSP workflows.