Time-line docs
AutomationsNode-RED nodes

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/undefined payload 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

Rendering Node-RED flow…

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

Rendering Node-RED flow…

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

Rendering Node-RED flow…

How is this guide?

Last updated on

On this page