Living With Master-Slave

The Problem:

As you may be aware, there can be difficulties when using CDJ with players arranged in master slave configurations. This is due to the master player overriding CDJ's commands to the slave player on some occasions, causing it to stop playing or move to another disc.

The Simple Solution:

The basic solution is to break the master - slave relationship by placing the players on seperate S-Link busses where they cannot see each other. For many, this solution is unattractive as the master - slave functionality is now lost. This leads to....

The Better Solution:

A better solution is have the players connected together when not using CDJ, but on seperate S-Link busses when you are using CDJ. This allows everything to work right when you are using CDJ and normal master - slave functionality to be retained when CDJ is not running. Obviously, it would be inconvenient to be swapping cables around manually every time you wanted to use CDJ - you need a way to do this switching automatically...

A S-Link Switching Circuit

The circuit shown below allows you to connect and disconnect the two player's S-Link ports via CDJ control of the Slink-e. It works by using one of the Slink-e's digital I/O lines to turn on and off a relay which reconnects the 2 S-Link ports. The two states of the device can be described as follows:

CDJ Slink-e DIO 0 pin Relay S-Link Ports Players
not running low (0V) off joined master-slave
running high (5V) energized seperated seperated


The Electronics

Here's what you need to build. All of these parts are available at stores like Radio Shack. You could use 4 S-Link jacks as shown, or you could wire this circuit in-line with your S-Link cables.


The Software:

CDJ needs to be told to activate this circuit when it starts and deactivate it when it finishes. To do this you need to take the following steps:

  • Set the special "low level" device file which is neede to talk to the Slink-e Parallel Port

    • In CDJ, go to View | Options | Devices and click "Add"
      Low Level

    • Choose "lowlevel" for a device name

    • Browse for the device file titled "lowlevel.cde" which should be in the Device Files\Misc\ directory relative to your Slink-e installation

    • Click OK

  • Set up map file commands to control the relay at startup and shutdown

    • Using a text editor (like Notepad), edit the maps.txt file in your CDJ directory so that it has the following lines (be sure to replace any pre-existing lines which start with the same thing)

cdjr:pre_startup {lowlevel:pardir[00] lowlevel:par[01]}

cdjr:shutdown {lowlevel:par[00]}

  • Make sure CDJ is loading the map file

    • In CDJ, go to View | Options | Maps and make sure your map file is listed as the Current Map File and click "Reload"

    • You're all set! Hook up your hardware, and things should work automatically next time you start CDJ.