← 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.

Port:

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

Layout:

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,..

Examples:

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.