This guide is a how-to for streaming using a 3rd party software such as OBS, and many of these instructions may also be applied to other software.
The instructions provided herein are based around a DJM-S9, but they will apply to other products as well, simply substitute your mixer where applicable, and select the relevant input / output channels for your device.
If you are using a DJM without DVS, the instructions are slightly different; please see the this guide. If you are using a DDJ, see the DDJ section of the Knowledge Base for additional tutorials.
Step 1 - Update
Ensure that you are running the latest version of rekordbox, that your drivers and firmware are up-to-date, and that your broadcast software is current as well.
Step 2 - Download the Necessary Software
You'll first need to grab these utilities:
Install them and we'll configure them as we go.
You can also use other similar applications such as Sound Siphon or Loopback, which are easier to configure, but are also not free - so the choice is yours.
Step 3 - Configure the DJM
Open the DJM's Setting Utility application. On the Mixer Output tab, set the USB5/6 output to REC OUT. Set the other two input types to match your timecode input, either PHONO or CD.
Set the USB Output Level to -5 dB.
Step 4 - Create an Aggregate Audio Device
Open Applications > Utilities > Audio MIDI Setup - if the Audio Devices window is not visible, click Window > Show Audio Devices.
Click the + icon at the bottom left and select Create Aggregate Device.
Click on the name Aggregate Device and rename it S9+Soundflower.
It CAN NOT contain the word "DJM-S9" or rekordbox will recognize it as that device and the additional outputs will NOT be available.
In the right window, check the box beside DJM-S9, then check the box beside Soundflower (2ch).
Quit Audio MIDI Setup.
Step 5 - Configure JACK
Open the JackPilot application (you won't need to use the qjackctl application, so don't worry about that), and open the Preferences (there is no button, do it through the menu or press Command + , ).
Configure your setup as shown.
Be sure to un-check System port monitoring and Auto-Connect with physical ports as well. Click Save, then click Start on the main JackPilot window.
It's important that JackPilot is the first application running before launching rekordbox and OBS. If you are using it regularly, it can be configured to start automatically with your system.
Step 6 - Configure rekordbox Audio
With your DJM connected and powered-on, open rekordbox, and open the Preferences > Audio, select JackRouter as your Audio device.
Click External for the Mixer Mode, and scroll down to configure the Input Channels.
Scroll down to configure the Output Channels.
Set your outputs as shown, the Output Sampler Deck is optional - you don't need to assign this if you don't use it.
Step 7 - Route the audio
Go back to the JackPilot window and click the Routing button.
Toggle the triangles beside system and rekordbox in both the Send Ports and Receive Ports panes of the Connection Manager window.
To patch the audio between the correct ins and outs, you'll first select the item you want to patch, then double-click on the item you're patching it to. Start by selecting the capture_1 and then double-click in1. You'll see it turn red, and system:capture_1 will appear in the Connections pane.
Repeat this process for the following assignments:
- capture_2 > in2
- capture_3 > in3
- capture_4 > in4
- capture_5 > playback_9
- capture_6 > playback_10
- capture_7 > playback_7
- capture_8 > playback_8
- out1 > playback_1
- out2 > playback_2
- out3 > playback_3
- out4 > playback_4
- out5 > playback_5
- out6 > playback_6
The last two are only necessary if you are using the sampler.
Clicking the System item in the Send Ports pane should look like this.
And clicking rekordbox in the Send Ports pane should look like this.
You can now close the Connections Manager window.
Step 8 - Configure DVS
Back in rekordbox, open Preferences > DVS and check the box beside Enable DVS Function.
Test your inputs by playing the control signal source on your turntables or CDJs. You should see green circles in the scopes for your input channels.
The circles will auto-calibrate, but if you need to make adjustments, you can do so following the instructions available by clicking the ? icon beside Control Signal Setting.
Close the Preferences window.
You can now load a track to the assigned decks and test the input signal. Don't forget to switch the decks to Absolute or Relative mode. If the track plays backwards, your L and R input connections are reversed - simply swap them and it will play normally.
Step 9 - Configure OBS for Audio
Minimize rekordbox and launch OBS.
Click the + button at the bottom of the Sources window to add a new Audio Input Capture source.
You can keep the defaults, click OK.
Select Soundflower (2CH) from the Device drop-down.
If you're only streaming audio, you can skip ahead to Step 11.
Step 10 - Configure OBS for Video
If you want to stream a capture of your screen or video input (or both) you can add these as well.
Click the + button at the bottom of the Sources window to add a new Display Capture source, you can keep the defaults and click OK.
If you have multiple displays, select the output display you want to use.
Please note, as an alternative to Display Capture, you may try using the Window Capture function. Whether this works depends on the graphics chipset(s) you have in your Mac. If you find the Window Capture freezes OBS or does not show your waveforms within rekordbox, then use the Display Capture.
If you are showing the rekordbox output, as opposed to a video input source, you should match your input size. Open Settings > Video and change the Base (Canvas) size to match the resolution of your display.
The Output (Scaled) size should typically be 720 or 1080 to keep a down-sampled resolution that is friendly for your broadcast.
You can also (optionally) add a webcam or other video input and configure it here. If you require further instruction on this, try Google.
Step 11 - Broadcast
Click the Studio Mode button to enter a dual-view mode. With music playing in rekordbox, you should now see an audio level in the meter at the bottom, and a video preview (if applicable).
Be sure to adjust the levels on the mixer for any other audio sources; mute the other inputs if they're not being used. You're ready to broadcast - simply configure your output stream destination!
Step 12 - Tweak
You should test and monitor the workload and buffer on your computer as you perform - chances are the CPU usage won't be the issue, but the audio buffer may still run out. As you increase the buffer, the latency (delay between action and audio output) will increase, but the likelihood of audio dropouts or crackling will decrease. Your computer's age will typically increase the buffer sizes required, but there are tricks you can do to reduce background application usage and improve the overall performance of your Mac.
JACK, rekordbox, and OBS will all retain the configurations so you don't have to repeat this process every time you want to broadcast, but you will need to select the JackRouter audio device within rekordbox after launching. The input and output configurations are loaded after that device is selected.
Both the onboard FX (BEAT FX; left side) and the software FX (Serato DJ FX; right side) work, but the software FX will have a slight dip in the audio when being engaged. If the FX are engaged within rekordbox directly, this will not occur due to the audio path difference using the FX loop on the S9.
Yes, audio input to the mixer through a line / phono input will be sent to the master if you toggle the mixer channel input from USB/PC over to one of the other input options. Because the master output is what's being sent to the Aggregate device, and thus Soundflower, that audio will be captured by OBS.
The sampler volume can be controlled through the Sampler Volume knob on the DJM-S9.
This guide was made using the following software versions:
- macOS Sierra v10.12.6
- rekordbox v5.0.1
- Soundflower v2.0b2
- OBS Studio v20.1.0
- JACK v0.91
While efforts will be made to keep up with any changes to this process to ensure others can use it after software update have been released, we can't guarantee the accuracy or relevance of this information, nor the performance of any 3rd party software applications.