Skip to content

Routing

Routing nodes help you move signals around your patch without running long cables everywhere, and let you choose which signal gets through. "Virtual wires" let you send sound or a control signal from one place and pick it up somewhere else, even when the signal needs to loop back on itself, just by giving both ends the same wire number. The rest of this group are pickers and traffic controllers: grab a value the moment something fires, flip between several inputs, follow whichever source you touched last, make sure a control value and its trigger arrive in the right order, pass a message through untouched, or break one message into separate outputs by type. Reach for these whenever you want tidier wiring or precise control over what goes where, and in what order.

Audio Wire In

Sends a sound into a numbered "virtual wire" (1 to 120), like dropping it into a labelled mailbox. An Audio Wire Out set to the same number picks it up again, arriving one tiny audio chunk later. Use it to skip long cables, send one sound to many places at once, or build your own feedback loop (where a signal feeds back into itself).

Audio Wire In

Needs: an Audio Wire In node taking an audio input, with its Wire number visible.

ParameterRangeDefaultDescription
Wire1 - 1201Virtual wire id. The Audio Wire Out that reads it must use the same number.

Inputs: In (audio fed into the virtual wire), Wire (wire number, accepts a number). Outputs: none.

The matching In and Out must live in the same place: either both in the main patch, or both inside the same subgraph (a patch nested inside a node). You cannot send a wire from one subgraph to another.


Audio Wire Out

Picks up a sound from a numbered "virtual wire" (1 to 120). It plays back exactly what the matching Audio Wire In put in, arriving one tiny audio chunk later. The very first chunk is silent because the wire starts out empty.

Audio Wire Out

Needs: an Audio Wire Out node feeding audio into another node, with its Wire number visible.

ParameterRangeDefaultDescription
Wire1 - 1201Virtual wire id. Must match the Audio Wire In that feeds it.

Inputs: Wire (wire number, accepts a number). Outputs: Out (audio read from the wire, one block behind the Audio Wire In).


Sub Audio Wire In

Sends a sound into a local "virtual wire" (1 to 60). Local means the wire stays private to the subgraph (the patch nested inside a node) it lives in, or to the main patch if that is where you put it. It never leaks out to the patch around it, to a neighbour, or to a deeper nested patch. If several Sub Audio Wire Ins use the same local wire, their sounds are mixed together.

Sub Audio Wire In

Needs: a Sub Audio Wire In node inside a subgraph, taking an audio input.

ParameterRangeDefaultDescription
Wire1 - 601Local wire id. The Sub Audio Wire Out must use the same number, in the same subgraph.

Inputs: In (audio fed into the local virtual wire), Wire (wire number, accepts a number). Outputs: none.

To send and pick up across the whole project, use Audio Wire In and Audio Wire Out instead.


Sub Audio Wire Out

Picks up a sound from a local "virtual wire" (1 to 60). It plays back what the matching Sub Audio Wire In put in, arriving one tiny audio chunk later, and stays private to the subgraph (the patch nested inside a node) it lives in. The very first chunk is silent because the wire starts out empty.

Sub Audio Wire Out

Needs: a Sub Audio Wire Out node inside a subgraph, feeding audio into another node.

ParameterRangeDefaultDescription
Wire1 - 601Local wire id. Must match the Sub Audio Wire In in the same subgraph.

Inputs: Wire (wire number, accepts a number). Outputs: Out (audio read from the local wire, one block behind the Sub Audio Wire In).


CV Sample & Hold

Takes a snapshot of the control signal at the In input the instant the Trigger input crosses 0.5, then keeps that value frozen until the next trigger. This is the classic "sample and hold", great for stepped, jumping modulation, turning noise into random melodies, or freezing a moving value. Everything here runs at full audio speed.

CV Sample & Hold

Inputs: In (CV to sample, stream-capable), Trigger (a rising edge past 0.5 captures the input). Outputs: Out (the held CV value, updated on each trigger).


CV Switch

A two-way chooser. When the Cond input is above 0 it sends out A, otherwise it sends out B. Think of it as the basic "if this, then A, else B" building block for control signals. All three inputs run at full audio speed.

CV Switch

ParameterRangeDefaultDescription
Condunbounded0.0Condition. Greater than 0 selects A, 0 or less selects B.
Aunbounded1.0Value sent when the condition is true.
Bunbounded0.0Value sent when the condition is false.

Inputs: Cond (condition, accepts float, int or bool), A (value when true), B (value when false). All stream-capable. Outputs: Out (the selected value, A or B).


CV Input Select

A four-way chooser. The Index input decides which of the four inputs gets passed to the output (0 = A, 1 = B, 2 = C, 3 = D). Handy for switching between different modulation sources on the fly. Index and all inputs run at full audio speed, and if you feed Index a value with decimals it is rounded to the nearest slot and kept within 0 to 3.

CV Input Select

ParameterRangeDefaultDescription
Index0 - 30Which input is sent to Out (0 = A, 1 = B, 2 = C, 3 = D).
Aunbounded0.0CV input A.
Bunbounded0.0CV input B.
Cunbounded0.0CV input C.
Dunbounded0.0CV input D.

Inputs: Index (selector, rounded and clamped to 0 to 3), A, B, C, D (the four CV inputs). All stream-capable. Outputs: Out (the selected CV value).


Route Sequencer

Picks one of up to 128 control-signal inputs by number. It works like CV Input Select, but you choose how many inputs it has. That lets you drive the Index with a step counter or sequencer to step through many modulation sources in patterns. The inputs and Index both run at full audio speed, and if you feed Index a value with decimals it is rounded to the nearest slot and kept within the valid range.

Route Sequencer

ParameterRangeDefaultDescription
Inputs1 - 1284How many source inputs the node shows.
Index0 - (Inputs - 1)0Which source input is sent to Out.

Inputs: Inputs (source count, stream-capable), Index (selector, rounded and clamped to the valid range, stream-capable), and the source inputs In 0 to In N-1 (one per input, stream-capable). Outputs: Out (the selected CV value).


CV Last-Changed

Keeps an eye on several control-signal inputs and passes along whichever one moved most recently. Use it when several sources should control the same thing, but you want only the last one you touched to win, instead of all of them being added together. The active input keeps driving the output until a different one moves by more than the Threshold.

CV Last-Changed

ParameterRangeDefaultDescription
Inputs1 - 164How many source inputs the node shows. Set in the inspector.
Threshold0.0 - 1.00.001Dead-zone for change detection, so jitter on a static input does not steal focus.

Inputs: Threshold (change dead-zone, stream-capable), and the source inputs A, B, C and so on (1 to 16 of them). Higher-numbered inputs take priority on simultaneous changes. Outputs: Out (the value of whichever input changed most recently).


CV Wire In

Sends a control signal into a project-wide "virtual wire" (1 to 120). A CV Wire Out set to the same number picks it up again, arriving one tiny audio chunk later, so you can build control-signal feedback loops (where a signal feeds back into itself). Wire number N means the same wire anywhere in the project. If several CV Wire Ins use the same wire, their signals are mixed together.

CV Wire In

Needs: a CV Wire In node taking a CV input, with its Wire number visible.

ParameterRangeDefaultDescription
Wire1 - 1201Virtual wire id. Must match the CV Wire Out on the other side.

Inputs: In (CV written into the wire), Wire (wire number, accepts a number). Outputs: none.

Control-signal wires and audio wires are kept separate: CV wire N and audio wire N never share the same storage.


CV Wire Out

Picks up a control signal from a project-wide "virtual wire" (1 to 120). It plays back exactly what the matching CV Wire In put in, arriving one tiny audio chunk later. Wire number N means the same wire anywhere in the project.

CV Wire Out

Needs: a CV Wire Out node feeding CV into another node, with its Wire number visible.

ParameterRangeDefaultDescription
Wire1 - 1201Virtual wire id. Must match the CV Wire In that feeds it.

Inputs: Wire (wire number, accepts a number). Outputs: Out (CV read from the wire, one block behind the CV Wire In).


Sub CV Wire In

Sends a control signal into a private "virtual wire" (1 to 60) that belongs only to one subgraph (a patch nested inside a node). It only pairs with a Sub CV Wire Out on the same number, inside the same subgraph, so the signal never leaves that nested patch.

Sub CV Wire In

Needs: a Sub CV Wire In node inside a subgraph, taking a CV input.

ParameterRangeDefaultDescription
Wire1 - 601Private wire id. Must match the Sub CV Wire Out in the same subgraph.

Inputs: In (CV written into the wire), Wire (wire number, accepts a number). Outputs: none.


Sub CV Wire Out

Picks up a control signal from a private "virtual wire" (1 to 60) that belongs only to one subgraph (a patch nested inside a node). It plays back what the matching Sub CV Wire In put in, arriving one tiny audio chunk later, and only pairs within the same subgraph.

Sub CV Wire Out

Needs: a Sub CV Wire Out node inside a subgraph, feeding CV into another node.

ParameterRangeDefaultDescription
Wire1 - 601Private wire id. Must match the Sub CV Wire In in the same subgraph.

Inputs: Wire (wire number, accepts a number). Outputs: Out (CV read from the wire, one block behind the Sub CV Wire In).


CV Order

Makes sure a control value and a trigger reach the next node in a chosen order. It fixes timing problems where, say, a sequencer's pitch and its note-on need to land at exactly the right moment. It passes both through but nudges one slightly later. Set the Order so a later oscillator or envelope sees the new value before the trigger, or the trigger before the value, whichever you need.

CV Order

ParameterRangeDefaultDescription
OrderCV -> Trigger / Trigger -> CV / Same SampleCV -> TriggerWhich path arrives first.
Delay (samples)0 - 321Sample offset used for the selected ordering.

Inputs: CV In (the CV or value to pass through, accepts float, int or bool), Trigger In (the trigger or gate to pass through, accepts an event, float, int or bool). Outputs: CV Out (the CV, optionally delayed relative to the trigger), Trigger Out (the trigger, optionally delayed relative to the CV).


Event Value

Re-orders the two parts of an incoming message: the trigger (Event) and the number (Value). You choose which one reaches the next node first. Handy when a chain needs to fire something and then receive the number, or receive the number and then fire.

Event Value

ParameterRangeDefaultDescription
OrderEvent -> Value / Value -> EventValue -> EventWhether the Event or the Value is emitted first.

Inputs: In (the message to split into Event and Value), Order (chooses the output order, 0 = Event then Value, 1 = Value then Event). Outputs: Value (the original incoming value; nothing is sent if the input was an Event), Event (one Event for each incoming message).


Pass

A cable in a box. Whatever goes in comes straight back out, unchanged, triggers (Events) included. Useful as a meeting point for cables, to keep your wiring easy to follow, or as a stand-in while you are still building a patch.

Pass

Inputs: In (any message). Outputs: Out (the same message as the input).


TypeSplit

Takes one incoming message and breaks it into separate outputs by type (Event, Int, Float and Any), then sends them in an order you choose. Useful for turning a single value into a little sequence of events, or whenever a later chain needs the outputs to fire in a particular order. The order is checked every time a message arrives, so any change takes effect right away.

TypeSplit

ParameterRangeDefaultDescription
OrderEvent-Int-Float-Any / Any-Float-Int-Event / Any-Event-Float-Int / Event-Any-Int-FloatEvent-Int-Float-AnyThe order the outputs fire in. Values outside 0 to 3 are clamped.

Inputs: In (any message, fires all outputs in the selected order), Order (sets the order preset by sending 0 to 3; stream-capable; an Event does nothing). Outputs: Event (always an Event), Int (input converted to Int, Event becomes 0), Float (input converted to Float, Event becomes 0.0), Any (the original message unchanged).


MNodes Documentation