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-900NSX2, but they may 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 with 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 - 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 900+Soundflower.
It CAN NOT contain the word "DJM-900" 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-900NSX2, then check the box beside Soundflower (2ch).
Quit Audio MIDI Setup.
Step 4 - 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 5 - Configure rekordbox Audio
First, you'll need to open rekordbox. When you do, it may automatically try and connect to the DJM-900NXS2's audio device, and you may see this error message:
This is because we're using the DJM at a sample rate of 48kHz, but rekordbox has just tried to open it at 41.1kHz, meaning it changed the settings at the system level. That's okay, we can fix this! First click Ok to dismiss that warning window.
Open the rekordbox Preferences and change the sample rate for the DJM-900NXS2.
Go back to JackPilot and click Start again.
Flip back to rekordbox and in the Preferences, select JackRouter as your Audio device.
Click External for the Mixer Mode, and scroll down to configure the Input Channels.
As no inputs are required, you can set them all to the unassigned -.
Scroll down to configure the Output Channels.
The order and numbering may look funny, but that is the correct order to match the typical channel software-input layout on the DJM (3 / 1 / 2 / 4). IF you prefer it to be sequential on the DJM (1 / 2 / 3 / 4), simply assign the outputs in numerical order above.
Leave the sampler unassigned and use the internal assignments to send it to one of the deck outputs instead.
Step 6 - 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_9 and then double-click playback_11. You'll see it turn red, and system:playback_11 will appear in the Connections pane.
Repeat this process for the following assignments:
- capture_9 > playback_11
- capture_10 > playback_12
- out1 > playback_1
- out2 > playback_2
- out3 > playback_3
- out4 > playback_4
- out5 > playback_5
- out6 > playback_6
- out7 > playback_7
- out8 > playback_8
Pro-tip: To make it easier to assign items when they are scrolled off the window, either collapse the section you're not using or make the window taller.
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 7 - Configure the DJM
Open the DJM's Setting Utility application. On the Mixer Output tab, set USB9/10 to MIX(REC OUT). The input channels can be anything; we're not using them.
Set the USB Output Level to -5 dB.
Step 8 - 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 10.
Step 9 - 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 10 - 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 11 - 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.
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.
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.