Signals: the lifecycle
Every audible event in a spatial composition is one signal travelling through the topology. This article documents the full lifecycle: launch, routing, transformation, arrival, playback. And the hard limit that keeps cycles musical.
A signal is the unit of musical time. It is created, it travels, it transforms, it arrives, it sounds. Understanding the lifecycle is what lets you design feedback loops that produce evolving music instead of runaway noise.
Launch
When a Source's trigger condition is met, the server creates a signal carrying its preset and ComposerAgent state, instrument, output mode, resolved pitch, velocity, duration, and procedural memory. The signal is dispatched onto the Source's outgoing wires.
Routing
Each wire has a travel duration. The signal is held in flight for that duration before arriving at its target. While in flight, the signal is visible: the cyan core travels along the wire and the trail particles fade behind it. If the target is a modifier (splitter, gate, harmony, modulator), the signal may be transformed, duplicated, delayed, or dropped before continuing onward.
Feedback generation limit
Every signal tracks the nodes it has already visited. One-way routes can keep moving through a large graph, but when a signal loops back into already visited route territory, the generation limit applies to repeated feedback hops. At MAX_SIGNAL_GENERATION = 16 feedback repeats, the signal is dropped instead of routed further.
Arrival and playback
When a signal arrives at a sound destination (vibe node or chord node), the server resolves the final note payload: pitch, velocity, duration, scheduled time, and broadcasts it as a RichSignalEvent to all clients. Each client schedules the playback locally on the audio thread, with adaptive buffering to absorb network jitter. The visible arrival ripple blooms on the destination node tinted with the resolved pitch color.
How signals are encoded visually as they travel and arrive. Continue learning