SHOWKONTROL(1)ShowKontrol R27SHOWKONTROL(1)
Quick Reference
Name#
ShowKontrol R27 reads a PRO DJ LINK network (CDJs, DJM, rekordbox) and TCNet, sends the live data through the Patch, and drives timecode, lighting, video, MIDI, OSC, cues and the players themselves.
Synopsis#
Source ─▶ Device ─▶ [Router] ─▶ Trigger ─▶ Action | Output
bundle one deck one of 8 when what
- Right-click the Patch: Add Source · Add Processor · Add Controller · Add Output. A node added from a node is wired to it automatically.
- Double-click a node to open its editor or interior (Script, Graphic, Group, Device, Router, OSC In).
- Node title bar: ● bypass (data passes through untouched) · ■ stop (passes nothing) · ▶ fire by hand.
Keyboard & mouse#
- Wheel over the canvas: zoom (keeps the point under the cursor fixed).
- Wheel over Live Data: scroll the list.
- 1–8 with a Router selected: set active input. 1–4 with a Matrix: recall preset.
- Shift+drag (background): rubber-band select. Shift+click: Toggle selection.
- Drag a node: Moves just that node (multi-selected nodes move together). Hold Shift while dragging: The node's whole downstream subtree comes along.
- Delete/Backspace: Remove the selected node(s), downstream nodes stay, wires drop. Shift+Delete: Remove the node(s) AND everything downstream.
- ⌘N / ⌘O / ⌘S: New / open / save a show (.skshow, the working copy auto-saves too).
- Ctrl+Esc (anywhere): lock / unlock the machine.
- Patch view strip (right edge of the node graph): zoom in / out, centre, align-snap (hold ⌘ while dragging to place a node freely).
- Cue Editor: C = a one-cell cue at the needle (needle to its end); ⌘C / ⌘X / ⌘V act on clips when a lane / clip was clicked last, on cues otherwise; double-click an empty cue-lane cell (zoomed in) = a one-cell cue; drag a cue mark under the ruler = move that cue.
Nodes#
| Node | Does |
|---|---|
| Source | ProDJ Link · TCNet · Timecode Generator · LTC / MTC / Art-Net TC In · Test Generator. Outputs a bundle of all devices. |
| Device | One device out of a bundle, by Device ID. Has an action interior. |
| Trigger / Timer | Fires on a data condition / on an interval. |
| Action | Presses CDJ buttons, writes settings, switches routers, runs app actions. |
| Script | JavaScript on the frame. |
| Router / Matrix | 8 → 1 / 8 → 4 with 4 presets. Stamps its own name on the data. |
| Delay | Fixed ms or a data key (e.g. beat.msToNextBeat). |
| Countdown / Counter | Timers and counts with Start / Stop / Reset pins. |
| Timecode Offset | Shifts timecode ± HH:MM:SS:FF for everything after it. |
| Group | A nested sub-patch, 4 in / 4 out. |
| Graphic | A drawing surface fed by a Script; output to a screen or NDI. |
| Data Generator | Clock / random / fixed · Mix Analyzer · Tone Monitor · DMX Input · PSN Receiver. |
| Controllers | MIDI Controller · OSC In · Mackie Control · Stream Deck · Hotkeys · Game Controller · Serial GPI. |
| Outputs | MIDI · MIDI Clock · MTC · LTC · Art-Net · Art-Net TC · sACN · OSC · UDP · HTTP · MSC · CSV Logger · Click · Ref Tone · TCNet · Ableton Link · Ableton Live · Unreal · PSN · MagicQ · ONYX · Titan · grandMA2 · ProPresenter · Resolume · OSD. |
Trigger events#
| Event | Fires |
|---|---|
| On Change | the value changes |
| On Receive | every message, even a repeated value (OSC) |
| State On / State Off | while the value is on / off |
| On Increase / On Decrease | the value goes up / down |
| Equals | the value equals Value |
| Timer | every Interval ms, or an interval read from a key |
Release Delay = how long the trigger stays active = the tap or note length. Use beat.msToNextBeat for a tap exactly one beat long. Downstream keys: trigger.active trigger.value trigger.fireCount.
Action categories#
| Category | Examples |
|---|---|
| CDJ Transport / Hot Cues / Loops / Beat Jump | Play, Cue, Hot Cue A–H, Loop, Beat Jump. On Release = Same as action is a real button up. |
| CDJ Settings | Write Player Setting (setting.*) |
| Mixer | Write Utility Setting (util.*) |
| Routing | Set Router Input · Recall Matrix Preset |
| Application | Feedback · Screens · Players · Set List · Automation · System (E-STOP, lock, save, recorder) · Nodes + Outputs |
Script#
system.beep = CDJ1.beat.bar; // read with bare names
value.x = source.metadata.title; // source.* = the input as it came in
output.MainRouter.router.active = "Input 2"; // any node, by name
output.FX.node.bypassed = true; // bypass / stop any node
output.parent.led.play = 1; // the node that owns the data
output.child.node.bypassed = true; // what this script feeds
output.CDJ1.setting.quantize = 1; // write to the player (enforced)
g.clear("#000"); g.text(8, 20, "Hi", "#fff"); // draw on a Graphic node
Data namespaces#
Every key is prefixed with its owner's name: CDJ1.beat.bar. Trigger, MIDI, OSC, DMX and CSV fields match by suffix. Scripts use the full name.
| Namespace | Keys (short) |
|---|---|
device | number model type ip online kind |
metadata | title artist key bpm durationUS id trackNumber artworkRef |
playback | state positionUS remainUS pitchPercent onAir master |
beat | bar beatInBar currentBpm trackBpm playSpeed msToNextBeat msToNextBar |
phrase / struct | current next beatsToNext / current next nextInMs |
cue | count, cue.<n>.inMs .outMs .color .comment |
led / status / setting | panel state / CDJ status / 40+ player settings (writable) |
mixer / level / util | mixer.chN.fader … / levels / DJM utility (writable) |
trigger action router matrix | node status stamps |
countdown counter tcin dmx psn ableton | utility and input nodes |
Text variables#
$TIME $DATE $BPM $TITLE $ARTIST $KEY $DECK $REMAIN $ELAPSED $TIMECODE $BEAT $PITCH $CUE $NEXTCUE $CUEIN $SECTION $PROGRAM $NEXT $VENUE $STAGE $SHOW $TRACKCOLOR $COUNTDOWN $COUNTDOWNLABEL $COUNTER
Use them in OSD text, UDP messages, Stream Deck text, notifications and stage messages. ${any.key} puts in the live value of any data key, where templates allow it.
Network ports#
| Port | Used by |
|---|---|
| UDP 6454 | Art-Net, Art-Net TC, DMX Input |
| UDP 5568 | sACN (multicast 239.255.x.x) |
| UDP 56565 | PSN (multicast 236.10.10.10) |
| TCP 8090 | Web viewer + REST API (default) |
| UDP 8000 / 9000 | OSC In listen / reply (default) |
| UDP 47830 · TCP 47831 | Unreal plugin beacon · data |
| UDP 47841 / 47842 | Ableton Live Remote Script |
| 7000 · 7401 · 8000 | Resolume · disguise · grandMA3 OSC templates |
| 30000 · 4430 · 2323 · 6553 | grandMA2 Telnet · Titan WebAPI · ONYX Telnet · MagicQ Remote Ethernet |
Files#
All under ~/Documents/TC Supply/:
| Folder | Holds |
|---|---|
SESSIONS/<name>/ | one session: session.skshow, the auto-saved working copy, settings.json, TIMELINE/ (tracks, cue lists, set lists, programme) and MEDIA/ |
SESSIONS/BACKUPS/ | a copy of the show before every New / Open (newest 30) |
TEMPLATE/MIDI · OSC · MSC · MIDI CONTROLLER | templates and controller profiles (rename a file to keep your edits) |
LOG/ | CSV Logger output |
