Key Point nodesRequires Pro
Reference the current-track, Key Point, and offset nodes provided by Time-line Live.
Full reference for the Live in nodes, generated from the in-editor help.
Current song
Emits the backend currentTrack snapshot for the “now playing” deck, with a continuous Stream output.
Outputs
Change (edge-triggered): emits when the song context changes (deck/track/title/artist) or its basic state changes (active/isPlaying/isOnAir/bpm/pitch/durationMs)
Stream (continuous): forwards the backend currentTrack snapshot at ≈30fps
Output: change — msg.topic: tl/current-track. The trimmed msg.payload contains these fields when they are available:
Prop
Type
Output: stream — msg.topic: tl/current-track/stream. Payload is the full currentTrack snapshot: the fields above plus beatInMeasure, beat, currentPositionMs, and the Key Point timeline fields (currentKeypoint/nextKeypoint/currentKeypointProgress, Group fields like currentKeypointGroup/currentKeypointGroupProgress, Family fields like currentKeypointFamily/currentKeypointFamilyProgress).
BPM updates are included: the stream reflects live BPM changes, and the change output also fires when bpm changes.
Node status: idle, song title, or ws disconnected.
Current Key Point
Emits for every Key Point (including Unknown), the current section of the now-playing track, whatever it is.
Outputs
Event (edge-triggered): emits on keypoint changes (enter/exit)
Stream (continuous): emits while a track is active (≈30fps)
Output: event — msg.topic: tl/keypoint/<keypointId>/event. msg.payload.keypointId is the actual current Key Point (e.g. drive, build, drop, unknown). Payload fields are the same as the Key Point nodes below, plus reason (keypoint_changed, ws_disconnected, flow_disabled, play_started).
Prop
Type
When the Key Point changes, this node emits an exit for the previous Key Point (reason: "keypoint_changed") followed by an enter for the new one.
Output: stream — msg.topic: tl/keypoint/<keypointId>; the full snapshot, like the Key Point nodes below.
The Key Point Nodes
Drive, Drive Break, Build, Rhythmic Build, Pre-Drop, Drop, Fake Drop, Drop Break, Breakdown, Outro and Unknown all behave identically — only the keypointId and topics differ. Drive is used as the example; substitute your node's id.
Emits when the now-playing track is in the Drive Key Point. keypointId: drive.
Outputs
Event (edge-triggered): emits once on Key Point enter/exit
Stream (continuous): emits while active or within the target Pre/Post Window (≈30fps)
Output: event
msg.topic: tl/keypoint/drive/event
msg.payload uses the event payload fields above. Example:
{
"event": "enter",
"keypointId": "drive",
"deckId": 1,
"trackId": 12345,
"currentPositionMs": 42123,
"durationMs": 240000,
"currentKeypoint": "drive",
"currentKeypointProgress": 0.42,
"nextKeypoint": "drive-break",
"currentKeypointFamily": "drive",
"previousKeypointFamily": null,
"nextKeypointFamily": null,
"currentKeypointFamilyProgress": 0.10,
"currentKeypointFamilyStep": 1,
"currentKeypointFamilyTotalSteps": 1,
"currentKeypointGroup": "drive",
"previousKeypointGroup": null,
"nextKeypointGroup": null,
"currentKeypointGroupProgress": 0.10,
"currentKeypointGroupStep": 1,
"currentKeypointGroupTotalSteps": 1
}Edge cases:
- On websocket disconnect while active, an
exitevent is emitted withreason: "ws_disconnected". - If the Node-RED tab is disabled while active, an
exitevent is emitted withreason: "flow_disabled". - If playback starts while already inside the Key Point (e.g. you pressed Play mid-section), the node emits a fresh
enterwithreason: "play_started".
Output: stream
msg.topic: tl/keypoint/drive
msg.payload contains the backend currentTrack snapshot fields plus these target Stream fields for Key Point, Group and Family windows:
Prop
Type
The event output remains exact enter/exit only; Pre/Post Windows only affect the Stream output.
Notes
- Connects to the backend websocket at
ws://127.0.0.1:<TIME_LINE_WS_PORT>(defaults to17880). - Node status: idle, active, or ws disconnected.
Offset
Fires a single event a configured number of bars or seconds before/after the enter of a target Key Point or Family — e.g. “4 bars before enter of Drop”. The trigger time is computed from the track's Key Point timeline and the live BPM, so it is not limited to the fixed 10-second pre/post windows of the stream output.
Configuration
- Target: a Key Point (consecutive repeats count as one enter) or a Key Point Family.
- Offset: amount + unit (
barsuses the live BPM, 4 beats per bar) and direction (before/afterthe target's enter).
Output — msg.topic: tl/offset/<targetId>/event.
Prop
Type
Behavior
- Fire: every time (default): fires once per target occurrence, for every occurrence. Rewinding back before the trigger point re-arms it.
- Fire: once per track: fires at most once (status fired (once)) until the track or deck changes.
- before: fires when the playhead enters
[enter − offset, enter). If the offset reaches before the start of the track, it fires immediately. - after: fires when the playhead reaches
enter + offset, but only while the target is still active — a section shorter than the offset does not fire. - Status shows a countdown (in Ns), fired, and no Key Points/missing bpm when data is unavailable.
How is this guide?
Last updated on