Data Key Reference
Every key a node can carry, by namespace.
Everything a Device node emits is owner-prefixed with the node's name: CDJ1.beat.bar, CDJ1.cue.1.color, DJM33.mixer.ch1.fader, the uniform address space. Routers and matrices re-stamp the prefix with their own name (§7), so keys are owned by the last identity node they passed through. The namespaces below list the SUFFIX part. Key fields match by suffix: a trigger path, a MIDI Message / OSC Argument / DMX Mapping / CSV Logger column Value, or a delay / release-delay data key written as bare beat.beatInBar matches the incoming CDJ1.beat.beatInBar (an exact prefixed key always wins if you type one). SCRIPTS are the exception, they read the frame as-is, so use the full prefixed form (source.CDJ1.beat.beatInBar). Right-click "Add Trigger / Add Script" inserts the full key for you.
device: device.number device.model device.type device.ip device.online device.kind (coarse class for sorting/filtering: cdj / djm / rekordbox / tcnet / gen / showkontrol / toraiz, test decks report cdj so patches port to the real rig) metadata: metadata.title metadata.artist metadata.key metadata.bpm metadata.durationUS metadata.id (rekordbox database id) metadata.trackNumber (the CDJ's "TRACK: N" list position) metadata.colorId metadata.valid metadata.artworkRef playback: playback.state playback.direction playback.positionUS playback.remainUS playback.slipPositionUS playback.pitchPercent playback.onAir playback.master playback.faderStart (start/backCue/none, only older DJMs broadcast it) track (per deck, while a Track List track is cued on it): track.color (the track's colour variable, #RRGGBB, empty = none) track.colorR track.colorG track.colorB (0-255, map straight onto Art-Net / OSC / MIDI). Set it in the track's settings (Track List / Set List → Track Color on → Color); it also tints the track's strip in both lists. In texts: $TRACKCOLOR (the master deck's). media (per deck, the medium the loaded track comes from): media.name (the USB / SD card / rekordbox library NAME, as the old ShowKontrol showed it) media.slot (USB · SD · CD · rekordbox) media.sourcePlayer (the player / computer holding it, another deck when a track is loaded over Link) media.songs media.playlists media.created. The name arrives a moment after a track loads: ShowKontrol asks the holding device and re-reads it every minute, so a stick swapped in the same slot is picked up. beat: beat.bar beat.beatInBar beat.currentBpm beat.trackBpm beat.playSpeed beat.msToNextBar beat.msToNextBeat sync: sync.isMaster sync.syncEnabled sync.baseBpm led (per deck, derived, mirrors the panel; booleans, ideal for triggers): led.play led.cue led.loop led.scratch led.slip led.sync led.master led.reverse led.onAir. Note: ProDJ Link carries no raw CDJ button/LED dump, these derive from the play state + flags. Hot-cue pad colors are the cue.<n>.color keys. status (per deck, polled ~1 s (the player's status flags): status.isMasterTempoOn status.isKeySynced status.isVinylModeOn status.vinylSpeedAdjust status.isSlipRunning status.isAutoCueOn status.isQuantizeOn status.isTempoResetOn status.tempoRatio setting (per deck, polled ~5 s) the player's utility settings; writable via the CDJ Settings action ): setting.screenSaver setting.autoStandby setting.outputAtt setting.onAirFunction setting.lcdBrightness setting.quantize setting.autoCueLevel setting.language setting.jacketDisplay setting.jogRingBrightness setting.jogRingFlashing setting.slipBlink setting.trackInfoType setting.playlistView setting.hidSettingType setting.discSlotBrightness setting.ejectLoadLock setting.sync setting.filePlayMode setting.quantizeBeat setting.hotCueAutoLoad setting.hotCueAutoColor setting.screen2Brightness setting.logoIllumination setting.needleLock setting.timeModeRemain setting.jogModeVinyl setting.autoCue setting.masterTempo setting.tempoRange setting.phaseMeterStyle setting.vinylSpeedAdjustMode setting.jogDisplayMode setting.padBrightness setting.jogLcdBrightness setting.waveformDivisions setting.gateCue setting.smartCue setting.rotarySelectorBrightness setting.waveformPhaseMeter setting.jogDisplayArtwork setting.beatJumpBeats struct (EDM structure detected from the deck's own full-detail waveform + beat grid, DMA's PDJ-mode detector, no audio needed; requires a player that serves the kind-4 wave): struct.starts (event start times ms, CSV) struct.ends struct.labels (Drop / Buildup / Break / Groove / Intro / Outro, |-joined) struct.current struct.next struct.nextInMs (countdown to the next event, trigger on it, or let the Viewer's Auto Zoom on Events ride it).
phrase: phrase.current phrase.currentIndex phrase.next phrase.beatsToNext phrase.count phrase.lightingBank phrase.starts (all phrase start beats, CSV) phrase.labels (matching names, |-joined) phrase.endBeat beatgrid: beatgrid.ref beatgrid.offsetMs beatgrid.beatCount cue: cue.ref cue.count + per cue cue.<n>.inMs .outMs .color .comment waveform: waveform.previewRef waveform.detailRef (both point at ShowKontrol's own waveform files: whatever the player served (classic blue or RGB, any density) the DJ's waveform setting on the CDJ decides), it is converted once, so every display draws it the same way. mixer (on the DJM's frame): mixer.chN.fader/trim/eqHi/eqHiMid/eqLoMid/eqLow/filter/cue/input/xfAssign, mixer.crossfader/masterLevel/masterFilter/isolatorOn/booth/fxSelect/fxChannel/fxLevel/fxOn level (DJM): level.ch1..ch6 level.masterL/masterR level.<n>Clip util (DJM utility settings, read at connect + after writes): util.balance (signed) util.masterLimiter util.masterAtt util.masterMono util.digitalLevel util.digitalRate util.digitalLimiter util.digitalMono util.boothAtt util.boothMono util.micLimiter util.micToBooth util.micToBoothLimiter util.boothMuteOnMic util.micToRecExclude hid: hid.control hid.value hid.seq + per-control hid.<control> trigger (on a trigger's output): trigger.active trigger.value trigger.fireCount status stamps (from pass-through nodes): router.active router.name matrix.preset matrix.source select.id select.label action.active action.name generators: value.out clock.time countdown (Countdown node, owner-prefixed): countdown.remainMs countdown.remain countdown.remainS countdown.done countdown.running countdown.warning countdown.progress countdown.label countdown.totalMs countdown.loops counter (Counter node): counter.value counter.atMin counter.atMax · tcoffset (Timecode Offset): tcoffset.ms midictl (MIDI Controller State pin): midictl.<Name>.padN midictl.<Name>.faderN midictl.<Name>.knobN midictl.<Name>.lastPad midictl.<Name>.connected midictl.<Name>.device midictl.<Name>.profile gamepad (Game Controller State pin): gamepad.<Name>.a .b .x .y .lb .rb .lt .rt .dpadUp .dpadDown .dpadLeft .dpadRight .menu .options .l3 .r3 .home .share .touchpad (1/0) .lx .ly .rx .ry (−1..1) .ltValue .rtValue (0..1) .connected .controller .type .player .battery (0..1, −1 unknown) .charging .lastButton gpi (Serial GPI State pin): gpi.<Name>.inN (1 closed / 0, debounced) gpi.<Name>.analogN gpi.<Name>.line gpi.<Name>.lineCount gpi.<Name>.connected gpi.<Name>.port gpi.<Name>.device + Raw Line map keys gpi.<Name>.<key> streamdeck (Stream Deck node State pin): streamdeck.<Name>.keyN (1 held / 0) streamdeck.<Name>.lastKey streamdeck.<Name>.connected streamdeck.<Name>.devices streamdeck.<Name>.keys streamdeck.<Name>.device hotkeys (Hotkeys node State pin): hotkeys.<Name>.<Label> (1 held / 0) hotkeys.<Name>.lastKey hotkeys.<Name>.pressCount hotkeys.<Name>.active hotkeys.<Name>.permission hotkeys.<Name>.scope oscsurf (OSC Surface State pin): oscsurf.<Name>.<address, / as .> (+ .2 .3 .4 for more arguments) oscsurf.<Name>.lastAddress oscsurf.<Name>.lastValue oscsurf.<Name>.clientIP oscsurf.<Name>.connected oscsurf.<Name>.messages mackie (Mackie Control State pin): mackie.<Name>.faderN mackie.<Name>.faderNTouch mackie.<Name>.master mackie.<Name>.masterTouch mackie.<Name>.vpotN mackie.<Name>.jog mackie.<Name>.jogDelta mackie.<Name>.recN mackie.<Name>.soloN mackie.<Name>.muteN mackie.<Name>.selectN mackie.<Name>.vpotPushN mackie.<Name>.play .stop .rewind .ffwd .record .f1-.f8 .up .down .left .right .zoom .scrub .shift .option .control .alt .marker .nudge .cycle .bankLeft .bankRight .channelLeft .channelRight .flip … mackie.<Name>.lastButton mackie.<Name>.connected mackie.<Name>.online mackie.<Name>.device mackie.<Name>.model dmx (Data Generator DMX Input): dmx.chN (0–255) dmx.chN_16 (0–65535) dmx.present dmx.lost dmx.lostMs dmx.ageMs dmx.fps dmx.frames dmx.fromIP dmx.source dmx.universe dmx.universeName dmx.protocol dmx.status tcin (the virtual deck of a Source LTC In / MTC In / Art-Net TC In): tcin.input tcin.locked tcin.running tcin.freewheel tcin.reverse tcin.fps tcin.detectedFps tcin.value tcin.ageMs tcin.dropouts tcin.resyncs tcin.rate tcin.offsetMs tcin.sender tcin.inputOk tcin.level (LTC) tcin.status, plus the deck keys (playback.state playing / paused, playback.positionUS, timecode.genFps) psn (Data Generator PSN Receiver): per tracker psn.<id>. and psn.<name>. + x y z speedX/Y/Z oriX/Y/Z accelX/Y/Z targetX/Y/Z validity timestamp name present ageMs; stream psn.present psn.lost psn.lostMs psn.fps psn.frames psn.trackers psn.ids psn.system psn.fromIP psn.status
ableton.* (Ableton Live node's State pin): connected · playing · beat / bar (Live's arrangement position) · tempo · following · errorMs (Live − deck, + = Live ahead) · nudgePercent (current tempo bend) · jumps · leadMs (learned start lead) · locator / locatorBeat / matched (where this track's stems are) · locators / locatorList · version (Live's version).
