Function nodesRequires Pro
Reference the conditional, beat, progress, debounce, enter, and exit function nodes.
Full reference for the Live functions nodes, generated from the in-editor help.
If
Routes messages by the previous, current or next keypoint, group or family of the incoming payload — e.g. “on enter of Build: if the next family is Drop, go left; otherwise go right”.
Configuration
- Check: which value to inspect.
keypointuses the exact timeline entry (currentKeypoint/nextKeypoint),groupuses consecutive same-keypoint runs,familyuses the semantic family (Drive/Build/Drop/Breakdown/…). - Is one of: the values that route to output 1. Select None / Unknown to match a missing value (start/end of track, or analysis pending).
Inputs — wire either output of a keypoint node (event or stream), Current song/Current keypoint, or any message whose msg.payload carries the keypoint context fields.
Outputs
match: the value is one of the selected values (message passes unchanged)
no match: the value is present but not selected
Behavior
- If the value cannot be determined the message is dropped (unknown is not “no match”) and the status shows what was missing.
- previous keypoint (exact scope) needs a stream payload. Event payloads carry
previousKeypointGroup/previousKeypointFamily, so group/family scopes work with events too.
Beat
Emits a message whenever the currently playing deck advances to a new beat — the lowest-level rhythm trigger.
Output — msg.topic: tl/beat. Payload (example):
{
"deckId": 1,
"beatInMeasure": 3,
"beat": 1234,
"bpm": 128.0,
"pitch": 0.0,
"currentPositionMs": 42123,
"ts": 1730000000000
}Prop
Type
Behavior
- Only emits when
(deckId, beat, beatInMeasure)changes. - Resets beat tracking automatically if the active deck changes.
- Node status: idle, beat N, or ws disconnected.
BPM Debounce
Quantizes incoming messages to the current BPM grid: stores the latest input and releases it on the next beat or sub-beat boundary.
Behavior
- Stores the latest received message; emits it on the next tick. If multiple messages arrive between ticks, only the last is emitted. If none arrive, nothing is emitted.
- A
null/undefinedpayload clears any pending buffered value (prevents a stale value flushing after a keypoint ends). - The message itself is unchanged — this node only controls when it comes out.
Config — 1 once per beat · 1/2 twice · 1/4 four times · 1/8 eight times per beat.
Example
Node status: idle, tick, disabled, or ws disconnected.
Progress
Maps a TL stream into a numeric output range, keeping the full source snapshot available downstream.
Valid upstreams — Current song stream, Current keypoint or any tl-keypoint-* stream output. Event outputs are ignored; when required timing fields are missing the node does not emit and shows a warning status.
Source fields
- keypoint:
currentKeypointProgress - group:
currentKeypointGroupProgress - family:
currentKeypointFamilyProgress - pre/post keypoint:
preKeypointRemainingMs/postKeypointElapsedMs(and the Group/Family equivalents)
Config
- Source: keypoint, group, or family progress.
- Window: full, first/last seconds, first/last bars, pre/post seconds or bars.
- Output Min / Max: maps the curve result into the chosen range.
- Curve: double-click the graph to add a point; drag points; double-click a point to delete. Drag a segment to bend it; double-click a curved segment to reset it.
- Only emit while playing: suppresses output when the source deck is paused, cued, or stopped.
Window behavior
- Full maps the whole scope; First/Last seconds ramp only at the start/end and hold otherwise; bars variants derive the window from BPM (4 beats = 1 bar).
- Pre/Post emit only inside the configured window before/after the target's window.
- On named keypoint streams, Full/First/Last emit only while the Source is active — use Pre/Post for before/after-target ramps.
Output — these fields are set on the outgoing message. Other top-level msg.* fields are preserved.
Prop
Type
Examples
Node status: idle · keypoint 42% / group 73% / family 18% · pre/post N% · not playing · missing ….
Enter tl-enter / Exit tl-exit
Event filters: Enter forwards a message only when msg.payload.event === "enter"; Exit only on "exit". Use them to split a keypoint's event output into a start path and an end path.
Config — Payload: a standard Node-RED typed value. Default forwards the full event object; set a str/num/bool/json/flow/global/env/jsonata value to emit a custom payload instead.
Behavior — non-matching or malformed messages are ignored. When a message is forwarded the node shows a green status for 3 seconds.
Example
How is this guide?
Last updated on