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.
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.
Enter and Exit apply to the Key Point nodes wired into them. They have no Group or Family scope: a Build node wired to Enter fires at every Build section, not once for the whole Build Family. To react to a Family, wire the Event outputs of all Key Point types in that Family into one Enter or Exit node. See Reacting to the Start or End of a Group or Family.
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