Messages

This page lists the OSC messages that you can send to Open Beat Control, and the responses (if any) that they will produce. Each message is identified by its OSC path.

/beats

Tells Open Beat Control to report any Beat messages that are seen on the DJ Link network. This allows you to align performances at the beat and bar level.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The command you send as the first argument determines whether beat reporting is turned on or off. The port number to which the beat messages are sent will be the default response port unless you supply a second argument, in which case they will be sent to that port.

Commands

stream

Tells Open Beat Control to report beat packets as OSC /beat messages, to the specified port if you supply one, or to the default response port. You can have more than one stream running at the same time if you use different port numbers to set them up.

stop

Stops reporting beat packets over OSC. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /beats stream (Beat packets will be reported on the default response port)

  • /beats stream 2000 (Beat packets will be reported on port 2000)

  • /beats stop (stops reporting Beat packets on the default response port)

  • /beats stop 2000 (stops reporting Beat packets on port 2000)

Responses

/beat

Sent for each Beat packet seen while the stream is active. Each /beat message has five arguments:

Name Type Meaning

device

int

The player number that sent the beat. Mixers use number 33.

beat

int

Position within measure, 1—​4. Not meaningful from mixers.

tempo

float

Beats per minute being played.

track-tempo

float

Beats per minute of the track at normal speed.

pitch

float

Speed at which track is being played, 1.0 means normal, 0.5 means half speed, etc.

Beats from the mixer always report a pitch of 1.0, so track-tempo is the same as tempo (which makes sense, since they don’t have any actual track to play).

Examples

  • /beat 2 4 131.603973 132. 0.997

    Here, player 2 just started playing the final (fourth) beat of a bar, at 131.6 BPM. The natural track tempo at this point is 132 BPM, and it is playing at 99.7% normal speed.

/cued

Find out the cued states of Pro DJ Link devices on the network, either now or (by setting up a stream) as they change. Players report they are cued when they are positioned at the currently active cue point. Only players that are cued can be told to start playing using the /fader-start message.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all cued states currently known.

stream

Starts out just like the list command, but will also send responses any time a cued state change is seen on the network, until you send a stop command. You can have more than one cued state stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as cued states change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /cued list (sends current cued states to default response port)

  • /cued list 4210 (sends current cued states to port 4210)

  • /cued stream (sends current cued states to default response port, and any cued state changes that happen in the future will be sent there as well)

  • /cued stream 4210 (sends current cued states to port 4210, and any cued state changes that happen in the future will be sent there as well)

  • /cued stop (stops sending cued state changes to the default response port)

  • /cued stop 4210 (stops sending cued state changes to port 4210)

Responses

/cued/{device}

Sent for each device whose cued state is known (and, for streams, for each cued state change for that device). The value of {device} will be the device number (1 through 4), and the message’s argument is 0 if the device is not cued (not currently positioned at the active cue point), and 1 if it is cued (positioned at the current cue point).

  • /cued/2 1

  • /cued/3 0

/devices

Find out what Pro DJ Link devices are visible on the network, either now or (by setting up a stream) as they come and go.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all devices currently known.

stream

Starts out just like the list command, but will also send responses any time a device change is seen on the network, until you send a stop command. You can have more than one device stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as devices change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /devices list (sends current devices to default response port)

  • /devices list 4000 (sends current devices to port 4000)

  • /devices stream (sends current devices to default response port, and any device changes that happen in the future will be sent there as well)

  • /devices stream 4000 (sends current devices to port 4000, and any device changes that happen in the future will be sent there as well)

  • /devices stop (stops sending device changes to the default response port)

  • /devices stop 4000 (stops sending device changes to port 4000)

Responses

/device/found

Sent for each device that is on the network (and, for streams, for each new device that appears). The arguments are the device (player) number, its name, and its IP address.

/device/lost

Sent for streams whenever a device has disappeared from the network. The arguments are the device (player) number, its name, and its IP address.

Examples

  • /device/found 2 CDJ-2000 172.30.20.5

  • /device/lost 33 DJM-2000 172.30.20.4

/load

Send a message telling a player to load a track.

Arguments

Name Type Purpose

target-player

integer

The device number of the player you want to load a track on.

source-device

integer

The device number of the player, rekordbox laptop, rekordbox mobile device from which the track can be loaded.

slot

string

The slot from which the track should be loaded, one of cd, sd, usb, or collection (if a rekordbox laptop/mobile device).

track-type

string

The kind of track being loaded, one of cd, rekordbox, or unanalyzed (digital audio not indexed by rekordbox).

id

integer

The rekordbox (or other) id of the track to be loaded.

Most players we have encountered are able to load tracks of type rekordbox using this mechanism, because it was designed to support a feature in the rekordbox application. I would not expect loading tracks from the cd slot or unanalyzed tracks to work.

Examples

  • /load 2 3 usb rekordbox 819 (ask player 2 to load a track from player 3’s USB slot, which holds a rekordbox export, and the desired track has rekordbox ID 819)

  • /load 3 17 collection rekordbox 2739 (ask player 3 to load a track from rekordbox laptop #1’s linked collection, and the desired track has rekordbox ID 2739)

Responses

If there is a problem sending the message, an /error message on the configured (or default) response port will describe it. Otherwise, if you have a /loaded stream active, once the track loads it will be reported to that stream.

/loaded

Find out about the tracks loaded by Pro DJ Link players on the network, either now or (by setting up a stream) as they change.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all track load states currently known.

stream

Starts out just like the list command, but will also send responses any time a track load state change is seen on the network, until you send a stop command. You can have more than one track load state stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as track load states change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /loaded list (sends current track load states to default response port)

  • /loaded list 5432 (sends current track load states to port 5432)

  • /loaded stream (sends current track load states to default response port, and any track load state changes that happen in the future will be sent there as well)

  • /loaded stream 5432 (sends current track load states to port 5432, and any track load state changes that happen in the future will be sent there as well)

  • /loaded stop (stops sending track load state changes to the default response port)

  • /loaded stop 5432 (stops sending track load state changes to port 5432)

Responses

/loaded/{device}

Sent for each device whose track load state is known (and, for streams, for each track load state change for that device). The value of {device} will be the device number (1 through 4), and the message’s argument is made up of four values:

  • The device number from which the track was loaded, or 0 if there is no track loaded. This will be 1 through 4 for a normal player, or 17 or 18 if the track was loaded from a rekordbox laptop or mobile phone.

  • The slot from which the track was loaded, one of none, cd, sd, usb, collection (from rekordbox), or unknown.

  • The type of the track, one of none, cd, rekordbox, unanalyzed (digital audio file not indexed by rekordbox), or unknown.

  • The ID of the track, which is either the rekordbox ID, or the track number (for an audio CD), or the file ID (for an unanalyzed track).

Examples

  • /loaded/1 0 none none 0

  • /loaded/2 3 usb rekordbox 820

  • /loaded/3 17 collection rekordbox 1995

  • /loaded/4 4 cd cd 2

You can cause players to load rekordbox tracks using the /load message.

/fader-start

Uses the Fader Start mechanism to tell some players to start or stop playing. (They will only start if they are paused at the current cue point.)

You can determine which players positioned at their cue points using the /cued stream. This will let you know if /fader-start will be able to start them playing.

Arguments

You can supply one or more device numbers as arguments. If those numbers are positive, that player will be told to start playing. If any number is negative, it will be converted to a postive number and that player will be told to stop.

Examples

  • /fader-start 1 -2 (try to start player 1, and stop player 2)

Responses

If there is a problem sending the message, an /error message on the configured (or default) response port will describe it. Otherwise, if you have a /playing stream active, any playing state changes will be reported to that stream.

/log

As described in the Communicating section, the /log message tells Open Beat Control to output the message to the log file, or if no log file has been configured, to the console.

Arguments

Anything at all

Upon receipt of this message, Open Beat Control will log all the details it knows about the message it received, including the types and values of the arguments, and the host and port from which it was received, to the console or log file.

Responses

None

/logging

Tells Open Beat Control to forward any log messages via OSC as well as writing them to its log file. This can be convenient if you are running OBC on another machine, and can more conveniently log the information from this one.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The command you send as the first argument determines whether log forwarding is turned on or off. The port number to which the log messages are sent will be the default response port unless you supply a second argument, in which case they will be sent to that port.

Commands

stream

Tells Open Beat Control to send any future log messages as OSC messages, to the specified port if you supply one, or to the default response port. You can have more than one stream running at the same time if you use different port numbers to set them up.

stop

Stops sending log messages over OSC. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /logging stream (future log messages will be sent to the default response port)

  • /logging stream 1492 (future log messages will be sent to port 1492)

  • /logging stop (stops sending log messages to the default response port)

  • /logging stop 1492 (stops sending log messages to port 1492)

Responses

/log

Sent for each entry made to the Open Beat Control log file while the stream is active.

Examples

  • /log 2019-Oct-31 23:50:42 INFO [open-beat-control.core:222] - Virtual CDJ running as Player 5

/master

Allows you to receive OSC messages when new players become Tempo Master, or when the current Tempo Master starts playing a new beat, or changes tempo. Also enables you to tell a specific player to become Tempo Master.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port or player

integer

The response port or n/a

For stream and stop, if you want responses to go to a different port than normal, you can supply that port number here. For appoint you must supply the player you want to become the new Master.

The command you send as the first argument determines the meaning of the second. As with other streamable commands, the list command reports the current state of the Tempo Master, while the stream and stop commands control whether Tempo Master reporting is turned on or off; the port number to which the Tempo Master messages are sent will be the default response port unless you supply a second argument, port, in which case they will be sent to that port.

The appoint command tells a player to become Tempo Master, and requires a player argument identifying the player number you want to appoint as Master.

Commands

list

Sends responses with all Tempo Master states currently known.

stream

Starts out just like the list command, but will also send responses any time a Tempo Master state change is seen on the network, until you send a stop command. You can have more than one Tempo Master state stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as Tempo Master states change. You must specify the same port number (or lack of one) as you used when setting up the stream.

appoint

Causes Open Beat Control to send a message to the player whose number you supply as a second argument, telling it to become the new Tempo Master if it can.

Examples

  • /master list (sends current Tempo Master states to default response port)

  • /master list 2010 (sends current Tempo Master states to port 2010)

  • /master stream (sends current Tempo Master states to default response port, and any Tempo Master state changes that happen in the future will be sent there as well)

  • /master stream 2010 (sends current Tempo Master states to port 2010, and any Tempo Master state changes that happen in the future will be sent there as well)

  • /master stop (stops sending Tempo Master state changes to the default response port)

  • /master stop 2010 (stops sending Tempo Master state changes to port 2010)

  • /master appoint 2 (tells Player 2 to become Tempo Master)

Responses

/master/beat

Sent for each Beat packet seen from the Tempo Master while the stream is active. Each /master/beat message has five arguments:

Name Type Meaning

device

int

The player number that sent the beat. Mixers use number 33.

beat

int

Position within measure, 1—​4. Not meaningful from mixers.

tempo

float

Beats per minute being played.

track-tempo

float

Beats per minute of the track at normal speed.

pitch

float

Speed at which track is being played, 1.0 means normal, 0.5 means half speed, etc.

Beats from the mixer always report a pitch of 1.0, so track-tempo is the same as tempo (which makes sense, since they don’t have any actual track to play).
/master/tempo

Sent whenever the tempo reported by the Tempo Master changes. Its single float argument is the new tempo.

/master/playing

Sent whenever the tempo master is determined to have started or stopped playing. Its single int argument will be 1 if it is playing, and 0 if it is not. (Although this is slightly redundant with the /playing stream, it enables you to easily create patches that depend on the presence of an active master player, without having to separately track playing states and the device number of the tempo master.)

/master/player

Sent whenever a new player takes over as Tempo Master. Its single int argument is the number of the new Master player.

/master/none

Sent when the current Tempo Master resigns that role (perhaps by disappearing from the network) without another being appointed.

Examples

  • /master/beat 3 2 128. 128. 1.

    Here, Player 3 was the Tempo Master and just started playing the second beat of a bar, at 128.0 BPM, which was the natural track tempo at this point, so it is playing at 100% normal speed.

  • /master/tempo 128.1 (tempo has changed to 128.1 BPM)

  • /master/playing 1 (the Tempo Master has started playing a track)

  • /master/player 2 (player 2 has just become the new Tempo Master)

  • /master/none (there is no longer a Tempo Master)

/metadata

Find out the metadata for tracks loaded in players either now or (by setting up a stream) as it changes.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all metadata items currently known.

stream

Starts out just like the list command, but will also send responses any time a metadata item change is seen on the network, until you send a stop command. You can have more than one metadata item stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as metadata items change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /metadata list (sends current metadata items to default response port)

  • /metadata list 4242 (sends current metadata items to port 4242)

  • /metadata stream (sends current metadata items to default response port, and any metadata item changes that happen in the future will be sent there as well)

  • /metadata stream 4242 (sends current metadata items to port 4242, and any metadata item changes that happen in the future will be sent there as well)

  • /metadata stop (stops sending metadata item changes to the default response port)

  • /metadata stop 4242 (stops sending metadata item changes to port 4242)

Responses

/metadata/{device}/{item}

Sent for each device whose metadata known (and, for streams, for each on-air state change for that device). The value of {device} will be the device number (1 through 4), {item} identifies a particular kind of metadata information (as described below), and the argument is the current value of that metadata item for that device. The special none item means that metadata information for the player is no longer available, so any displays of metadata items for that player should be removed.

Metadata Item Types

none

As noted above, any metadata previously reported for the specified device is no longer valid. Either the player has disappeared, the media has been ejected, or a new track has been loaded (in which case, new metadata should be available momentarily). This item is sent to streams only; when listing current metadata, players for which nothing is known are simply not included in the response.

title

The title of the track, as a string argument.

artist

The artist that recorded the track, as a string argument.

album

The album title of the track, as a string argument.

color

The color assigned to the track in rekordbox, if any, as a string argument.

comment

The DJ comment assigned to the track in rekordbox, as a string argument.

duration

The total playing time of the track in seconds, as an integer argument.

genre

The musical genre of the track, as a string argument.

key

The musical key of the track, as a string argument.

label

The record label of the track, as a string argument.

original-artist

The artist that originally recorded the track, as a string argument.

rating

The star rating assigned the track in recordbox, as an integer argument.

remixer

The artist who remixed the track, as a string argument.

tempo

The starting tempo of the track, in beats per minute, as a float argument.

Examples

  • /metadata/2/title Running To The Sea feat. Susanne Sundfor (Seven Lions Remix)

  • /metadata/2/artist Royksopp

  • /metadata/2/tempo 138.

  • /metadata/2/rating 2

  • /metadata/2/label Dog Triumph

  • /metadata/2/key F#m

  • /metadata/2/genre Dubstep

  • /metadata/2/duration 343

  • /metadata/2/comment F#m, 11a, +9, Purchased at Beatport.com

  • /metadata/2/color No Color

  • /metadata/2/album Running To The Sea

/on-air

Find out the on-air states of Pro DJ Link devices on the network, either now or (by setting up a stream) as they change.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all on-air states currently known.

stream

Starts out just like the list command, but will also send responses any time a on-air state change is seen on the network, until you send a stop command. You can have more than one on-air state stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as on-air states change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /on-air list (sends current on-air states to default response port)

  • /on-air list 4001 (sends current on-air states to port 4001)

  • /on-air stream (sends current on-air states to default response port, and any on-air state changes that happen in the future will be sent there as well)

  • /on-air stream 4001 (sends current on-air states to port 4001, and any on-air state changes that happen in the future will be sent there as well)

  • /on-air stop (stops sending on-air state changes to the default response port)

  • /on-air stop 4001 (stops sending on-air state changes to port 4001)

Responses

/on-air/{device}

Sent for each device whose on-air state is known (and, for streams, for each on-air state change for that device). The value of {device} will be the device number (1 through 4), and the message’s argument is 0 if the device is off-air (not audible), and 1 if it is on-air (connected to a mixer channel whose output is currently audible).

The on-air value of a device will only be meaningful if it is conneted to a Nexus mixer and this feature is active. If there is no Nexus mixer on the network, you can change players' on-air state using the /set-on-air message. (If there is a Nexus mixer present, it will reset the on-air states of the devices to what it believes they should be a fraction of a second after they react to your command.)

Examples

  • /on-air/1 0

  • /on-air/2 1

/playing

Find out the playing states of Pro DJ Link devices on the network, either now or (by setting up a stream) as they change.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all playing states currently known.

stream

Starts out just like the list command, but will also send responses any time a playing state change is seen on the network, until you send a stop command. You can have more than one playing state stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as playing states change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /playing list (sends current playing states to default response port)

  • /playing list 4002 (sends current playing states to port 4002)

  • /playing stream (sends current playing states to default response port, and any playing state changes that happen in the future will be sent there as well)

  • /playing stream 4002 (sends current playing states to port 4002, and any playing state changes that happen in the future will be sent there as well)

  • /playing stop (stops sending playing state changes to the default response port)

  • /playing stop 4002 (stops sending playing state changes to port 4002)

Responses

/playing/{device}

Sent for each device whose playing state is known (and, for streams, for each playing state change for that device). The value of {device} will be the device number (1 through 4), and the message’s argument is 0 if the device is stopped, and 1 if it is playing.

Examples

  • /playing/2 1

  • /playing/3 0

You can control players' playing state using the /fader-start message.

/respond

As described in the Communicating section, the /respond message tells Open Beat Control the port number it should use to send OSC responses back to your own software.

Arguments

Name Type Default Purpose

port

integer

see below

The port number to which response messages will be sent.

If you do not supply an argument to the /respond command, it removes any response port setting that you had previously established, so Open Beat Control will revert to its default behavior of sending responses to a port that is numbered one higher than the port from which incoming messages are being received.

Examples

  • /respond 5000 (responses will be sent to port 5000)

  • /respond (responses will be sent to the default port)

Responses

None

/set-carabiner

Allows you to change the Carabiner settings which can be modified on the fly, which include latency and beat-align. These have no effect unless you configured Open Beat Control to use Carabiner to bridge to an Ableton Link session.

Name Type Purpose

command

string

Specifies the setting you want to change, one of latency or beat-align.

value

number or string

See below, the new value you want to establish for the setting.

If your command is latency, then value is a number specifying the number of milliseconds that Open Beat Control (and therefore the Ableton Link session) is running behind the CDJs.

If your command is beat-align then value can be a string with the value true to cause Carabiner to sync at the level of beats rather than entire bars (any other string will cause it to sync at the level of four-beat measures). Or value can be a number, in which case a non-zero value will cause Carabiner to sync at the level of beats, and a zero value will cause it to sync at the level of four-beat bars.

Examples

  • /set-carabiner latency 20 (shifts the Ableton Link session to reflect that beats are actually happening twenty milliseconds before we received beat packets from the players)

  • /set-carabiner beat-align true (synchronizes Ableton Link at the level of individual beats)

  • /set-carabiner beat-align false (synchronizes Ableton Link at the level of four-beat bars)

  • /set-carabiner beat-align 1 (synchronizes Ableton Link at the level of individual beats)

  • /set-carabiner beat-align 0 (synchronizes Ableton Link at the level of four-beat measures)

Responses

None

/set-on-air

Sends a message telling the CDJs which are on-air (that is, which are connected to a mixer channel whose output is currently audible, given the positions of the channel faders and cross-fader).

If there is an actual Nexus mixer on the network, this is not a very useful message, because within a fraction of a second of the players responding to it, the mixer will send out a new on-air message telling the players the actual state of its faders. But if you are using another kind of mixer that sends MIDI messages about its fader state, you can translate those messages to on-air states of the players using this message to achieve results like a Nexus mixer.

Arguments

With no arguments, all players are set to off-air. Supply the device numbers of the players that are currently on-air as arguments, and those players will be set on-air.

Examples

  • /set-on-air (all players are off the air)

  • /set-on-air 1 3 (players 1 and 3 are on the air, 2 and 4 are off)

Responses

If there is a problem sending the message, an /error message on the configured (or default) response port will describe it. Otherwise, if you have an /on-air stream active, the on-air state changes of the players will be reported on that stream.

/set-sync

Sends messages telling CDJs (or the mixer) to turn Sync mode on or off.

Arguments

You can supply one or more device numbers as arguments. If those numbers are positive, that player (or the mixer, for device number 33) will be told to enter Sync mode. If any number is negative, it will be converted to a postive number and that device will be told to turn off Sync.

Examples

  • /set-sync 2 3 (put players 2 and 3 in Sync mode)

  • /set-sync 1 -4 33 (put player 1 and the mixer in Sync mode, and take player 4 out of Sync mode)

Responses

If there is a problem sending the message, an /error message on the configured (or default) response port will describe it. Otherwise, if you have a /synced stream active, any sync state changes will be reported to that stream.

/signatures

Find out the signatures (a cryptographic hash of metadata and waveform information that allows a track to be reliably recognized) for tracks loaded in players on the network, either now or (by setting up a stream) as they change.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all signatures currently known.

stream

Starts out just like the list command, but will also send responses any time a signature change is seen on the network, until you send a stop command. You can have more than one signature stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as signatures change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /signatures list (sends current signatures to default response port)

  • /signatures list 4567 (sends current signatures to port 4567)

  • /signatures stream (sends current signatures to default response port, and any signature changes that happen in the future will be sent there as well)

  • /signatures stream 4567 (sends current signatures to port 4567, and any signature changes that happen in the future will be sent there as well)

  • /signatures stop (stops sending signature changes to the default response port)

  • /signatures stop 4567 (stops sending signature changes to port 4567)

Responses

/signature/{device}

Sent for each device that has a track whose signature has been computed (and, for streams, for each signature change for that device). The value of {device} will be the device number (1 through 4 for CDJs), and the message’s argument is none if a previously reported signature is no longer valid, and the actual signature string otherwise. none is only sent to streams; when listing current signatures, if one is not known, that device is simply not mentioned.

Examples

  • /signature/2 a9623176f9e61a4cb2d49ef6ddd401f50ffd4ecd

  • /signature/4 none

/synced

Find out the sync states of Pro DJ Link devices on the network, either now or (by setting up a stream) as they change.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all sync states currently known.

stream

Starts out just like the list command, but will also send responses any time a sync state change is seen on the network, until you send a stop command. You can have more than one sync state stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as sync states change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /synced list (sends current sync states to default response port)

  • /synced list 4003 (sends current sync states to port 4003)

  • /synced stream (sends current sync states to default response port, and any sync state changes that happen in the future will be sent there as well)

  • /synced stream 4003 (sends current sync states to port 4003, and any sync state changes that happen in the future will be sent there as well)

  • /synced stop (stops sending sync state changes to the default response port)

  • /synced stop 4003 (stops sending sync state changes to port 4003)

Responses

/sync/{device}

Sent for each device whose sync state is known (and, for streams, for each playing state change for that device). The value of {device} will be the device number (1 through 4 for CDJs, 33 for mixers), and the message’s argument is 0 if the device is unsynced, and 1 if it is in Sync mode.

Examples

  • /sync/4 0

  • /sync/33 1

You can control players' sync state using the /set-sync message.

/tempos

Find out the known tempos of Pro DJ Link devices on the network, either now or (by setting up a stream) as they change.

Arguments

Name Type Default Purpose

command

string

n/a

The action you want to take, see below.

port

integer

The response port

If you want responses to go to a different port than normal, you can supply that port number here.

The behavior of this message is controlled by the value you send as the first argument. The port number to which the response is sent will be the default response port unless you supply a second argument, in which case the response will be sent to that port.

Commands

list

Sends responses with all tempos currently known.

stream

Starts out just like the list command, but will also send responses any time a tempo change is seen on the network, until you send a stop command. You can have more than one tempo stream running at the same time if you use different port numbers to set them up.

stop

Stops sending messages as tempos change. You must specify the same port number (or lack of one) as you used when setting up the stream.

Examples

  • /tempo list (sends current tempos to default response port)

  • /tempo list 4200 (sends current tempos to port 4200)

  • /tempo stream (sends current tempos to default response port, and any tempo changes that happen in the future will be sent there as well)

  • /tempo stream 4200 (sends current tempos to port 4200, and any tempo changes that happen in the future will be sent there as well)

  • /tempo stop (stops sending tempo changes to the default response port)

  • /tempo stop 4200 (stops sending tempo changes to port 4200)

Responses

/tempo/{device}

Sent for each device whose tempo is known (and, for streams, for each tempo change for that device). The value of {device} will be the device number (1 through 4 for CDJs, 33 for mixers), and the message’s argument is the current effective tempo of that device.

Examples

  • /tempo/33 127.190002

  • /tempo/2 127.190399