Dreaded CPU/Audio spikes while DJing…

Earlier today, one of the Mixify community members brought to attention a  post on the Digital Dj Tips site as an “Over To You” where they ask the readers for input to a questions or problem. Below is the question:

Digital DJ Masterclass owner Andrew says “I’ve recently been trying out mixify.com and have broadcast a couple of live sets on it so far. Problem is when I do this the audio crackles quite a lot.

“It’s not present on the actual recorded mix that Mixify provides after I’ve ended the session, but it’s quite distracting and irritating when I’m trying to DJ Live. It’s almost like there’s a huge latency (the “load” bar at the top middle of the screen seems to be frequently in the red). Never have this issue when not broadcasting so suspect it’s maybe something to do with the Traktor broadcast settings. Any suggestions as to what might be causing this and how to remedy it?”

Digital DJ Tips then turned it over to readers to help. At the time I wrote my comment, there wasn’t a response posted though I know there are quite a few that have been (assuming there is moderation on comments). However, as an aside I decided to post my response here in hopes that others may find it helpful in the future.

My Response:

First, I wanted to say congrats on choosing Mixify. I personally love the site and wish more and more people would use it!

Now onto the problem(s), and there are possibly multiple.

The red spikes in the indicator at the top of Traktor aren’t technically CPU load, however people commonly think of them as that. Instead, think of it as a sound card latency/load detector. The reason they are commonly thought of as CPU meters is because soundcards are often low-level so don’t have strain issues unless the CPU is strained as well.

There could be any number of causes for your issue. I’m going to assume that since you said Traktor broadcast settings, that you’re broadcasting via Icecast to Mixify. It’s the better audio quality and is the right choice (in my opinion as it is a stereo feed, where as direct input is mono).

When broadcasting, there are many things that could cause this that you can make sure to eliminate/disable.

Step 1)

Make sure that you have video disabled on the Mixify event. By default I believe this is the state, however people often enable it to see their videos and/or video feed. Doing so on the same computer that you’re broadcasting and dj’ing from however introduces a much greater load on the system.

Step 2)

Another common cause for this effect is virus/spam/firewall protection. What I suggest here is to disable those (only while broadcasting on Mixify) and then to re-enable afterwards. Of course, keep any extraneous web surfing to a minimum, especially if you’re attempting to get tracks from less-than-reputable locations. For me, I usually don’t stream more than 2 or 3 hours, so I set silent mode to 4hrs and disable virus/firewall for 5 hours. This reminds me to enable them, and then if I don’t re-enables them automatically.


Step 3)

Pre-scan your tracks before attempting to run a set. If you are in the middle of dj’ing and attempting to scan a track, again you’re putting extra load on not only your CPU but your hard drive. Hard drives are normally not an issue, but if you’re stuck with a 5400 rpm hdd in your laptop, you’ll want to reduce seek times as much as possible.

Step 4)

Soundcard settings: While I’m not sure which method you’re using to control your Traktor, almost always there are soundcard settings that you can adjust. If you’re using a Native Instruments controller, you can adjust not only the process buffer but the USB buffer. This one is often a key issue as many have this set low enough that normal dj’ing will have no effect, but with extra load it begins to cause the underruns. What you should do is start an event (set it to private for testing), and while streaming an event, adjust your audio settings. You want these settings to be as low as possible, but you want to avoid the underruns that are causign the popping and clicking that you’re hearing. Often times around 256/512 samples, and a 2/3ms USB buffer will do the trick but YMMV and you will have to test these settings on your own. Some people will clammor for every precious millisecond they can get and state they can feel the delay. While I’m not calling them liars, I normally don’t notice a delay until around 20-30ms.


Step 5)

The obvious step, run as little as possible on the laptop while djing. This goes hand-in-hand with the firewall/virus scanning packages such as Norton which introduce the CPU load while operating. Doing as little as possible will help. Don’t keep extra tabs open in your browser, run other programs at the same time, etc.

Step 6)

“Enable Multi-Core Processor Support” – In your audio settings at the bottom, there is a checkbox to enable or disable multi-core support. If you have it enabled, tick it off and see if it makes a difference. Some processores (like one of my AMD Quad-core rigs) don’t have all cores enabled. Having the multi-core enabled on my AMD rig causes spikes and pings in load, the extra core kicks in, the load goes away, then the core turns off since there’s no more load. Quite aggravating. On my AMD rig, when I run it with that option turned off I can broadcast just fine without issues (albeit a bit higher load than I prefer).

Step 7)

While this one is a stretch, it is a problem at times. In fact, I just helped another community member with this a few days ago. He re-installed Traktor with his S4, and was spiking on the meter when he hadn’t before. After multiple troubleshooting steps (and there are more than I’ve listed here), we came down to removing his S4 by uninstalling it not just in Programs & Features, but also by uninstalling it in Device manager and reinstalling it. That did the trick for him. Sometimes a driver goes wonky on updates and needs to simply be removed, (restart to remove it from memory) and then reinstalled.

OTHER Alternatives

Other options which are viable and, in my personal opinion, preferred methods.

Option 1) Use alternate broadcasting methods. While Traktor has it’s built in broadcasting/recording, often times moving that load elsewhere helps to eliminate these issues (especially for those that stream live video integrated). Many of the community djs on Mixify use two rigs, one specific for djing, and one for broadcasting, whether it be Icecast only or using the FMLE broadcasting and sending audio/video together.

Option 2) Using another broadcasting software. This one is debatable, however I noticed slight gains when working on an older rig. B.U.T.T. is an open-source broadcasting tool that you can use to send your signal to Mixify (and other sources). Two reasons I found it helpful: 1) since it’s not native in the client, it sends simply the signal and no metadata automatically. Helpful for those that want/need to hide track-names such as hard to find gems or unreleased tracks ( ID-ID from ID Records 😛 ). However, while using BUTT as my alternative method on my older rig, I noticed that overall I appeared to have better results. This is debatable and probably negligible in returns, but an option to try out. 2) Second difference is that you’ll have to route your audio into your system from the controller if your controller doesn’t have a soundcard option for you to record from. This can be simply overcome by a simple RCA->1/8″ Y-cord, but some people don’t like that idea.

At this point, I’ve pretty much written a book, and there are still many other things you can check, but the usual suspects I’ve listed here for you. I hope it helps!