← documentation main page

Data Jockey: Open Sound Control

The following describes Data Jockey's Open Sound Control (OSC) implementation. OSC allows users to control Data Jockey externally, using hardware interfaces or other software.


The port with which Data Jockey accepts OSC messages can be specified in the config file, or using a command line argument --osc-port.


Below is the layout of the OSC messages that Data Jockey recognizes. See the next section for examples of full OSC messages. Note: all off the boolean arguments can be substituted with an integer value of 0 == false or 1 == true.
  • /datajockey
    • /mixer/index (int 0..number of mixers - 1) the index of the mixer to address, 0 is the first, 1 is the second
      • /volume
        • value (float 0..2) set the volume to value
        • /volume/relative value (float) increment/decrement the volume by value
      • /mute
        • value (boolean) true == mute, false == unmute
        • /mute/toggle toggle the mute state
      • /eq/{high|mid|low} address the eq section
        • value (float -1..1) set the eq value
        • /relative value (float) increment/decrement the eq value
      • /play
        • value (boolean) true == play, false == pause
        • /toggle toggle the play/pause state
      • /cue
        • value (boolean) true == cue, false == play on the main outs
        • /toggle toggle the cue state
      • /sync
        • value (boolean) true == sync to master clock, false == run free
        • /toggle toggle the sync state
      • /seek
        • value (int) seek to a specific beat (or second if there is no beat data)
        • /relative value (int) seek forward or backward the given number of beats (or seconds)
      • /reset reset the playback position to the first beat selected (see the beat offset)
      • /beatoffset the beat number which will the song will jump to on reset
        • value (int) set the beat offset
        • /relative value (int) increment/decrement the beat offset
      • /tempomul
        • value (float) set the tempo multiplier. When a mixer is in sync mode, this makes the song run x times the tempo of the master tempo. When a mixer is in free mode, this makes sets the playback speed.
      • /load id (int 1..) load the work that has the id "id" in the database
    • /crossfade
      • value (float 0..1) set the crossfade value, 0 is full left, 1 is full right
      • /relative value (float) increment/decrement the crossfade value
      • /mixers index_left index_right (int int) set the mixers to crossfade between
      • /enable (boolean) enable/disable the crossfader
    • /master
      • /volume
        • value (float 0..2) set the master volume
        • /volume/relative value (float) increment/decrement the master volume
      • /tempo
        • value (float) set the master tempo in beats per minute
        • /tempo/relative value (float) increment/decrement the master tempo
      • /syncsource (int 0..number of mixers) set the master tempo sync source, 0 == run free, 1 == the first mixer,..


Below are some examples of full OSC messages that a user might send to Data Jockey.
  • /datajockey/mixer/0/volume 1.0
    Sets the volume of mixer 0 [the first mixer] to the value of 1.0.
  • /datajockey/mixer/2/volume/relative -0.1
    Decrements the value of mixer 2 [the 3rd mixer] by -0.1.
  • /datajockey/mixer/0/eq/high -1
    Cuts all the highs out of the audio from mixer 0.
  • /datajockey/mixer/1/eq/low 1
    Fully boosts the low eq of the audio from mixer 1.
  • /datajockey/mixer/1/mute/toggle
    Toggles the mute state of mixer 1.
  • /datajockey/mixer/1/mute 1
    Mutes mixer 1.
  • /datajockey/crossfade/enable false
    Disables the crossfader.
  • /datajockey/master/tempo 140.0
    Sets the master tempo to 140 beats per minute.