Troubleshoot USB dropouts / audio glitches (Windows)

Am I getting USB dropouts?

If you're getting audio glitches, clicks or dropouts, then there is a high chance you may be experiencing a USB dropout.

A USB dropout may be shown by the USB dropout indicator lighting in your Serato Software however this may not always happen.

What is a USB dropout?

The Serato Software will create what's known as an isochronous stream of audio data over the USB bus. That is, it is 'fed' at precise intervals from our USB buffer. If for some reason what is in the buffer can not be fed onto the bus, the USB dropout indicator may light, and more often than not, you will hear an audible click or glitch in the audio. This is a USB dropout.

What causes USB dropouts?

As explained above, maintaining an isochronous stream requires 'stuff' to happen at a certain time, with a 1ms (millisecond) USB buffer size the program only needs to send about 350 Bytes of data each ms over USB, but this needs to happen every millisecond, otherwise you'll (obviously) experience a dropout.

The work is done by the CPU and the USB controller, which are under the control of a few co-operative things; the operating system, the BIOS, and drivers, ultimately at the request of the audio application. If one of these isn't behaving correctly, or can't perform it's work in time, you can guess the result.

The first thing is to check if the CPU is busy doing something else, or is not up to the task of feeding the buffer and feeding the buffer to the USB:

Open up the task manager - Task Manager (Ctrl+Shift+Esc)

and click on the 'Processes' tab, check what your overall CPU usage is like and percentage the application is using. In Windows 8 and Windows 8.1, you may need to check the 'Performance' tab, as the SeratoDJ.exe process is not as indicative of overall CPU usage. If your overall usage is close to 100% and you're getting dropouts, try raising the size of your USB buffer size. Giving your CPU more time to do the work of streaming the audio over USB.

If your overall usage is not near 100%, and especially if it's nothing like being close to capacity, you should use the following techniques to check what is happening inside the Windows kernel and causing dropouts.

USB interupts and how to eliminate dropouts

An interrupt in this context is basically when the Windows kernel halts execution of applications while some work needs to be performed by a driver -wikipedia 

An interrupt is an asynchronous signal from hardware indicating the need for attention or a synchronous event in software indicating the need for a change in execution. A hardware interrupt causes the processor to save its state of execution via a context switch, and begin execution of an interrupt handler.

Problems for audio applications can arise when the hardware drivers don't hand back control in short enough a time to allow for us to maintain the USB stream. From an audio application perspective, it has just lost some time suddenly, as during interrupts the processors state is saved and restored, as if nothing has happened. Hence the need to trace interrupts using a 3rd party tool which can look inside the kernel.

It is worth while making sure your computer is optimized for digital audio. To do so follow this link: PC optimisation guide for Windows

If optimizing your computer doesn't help then you should do the following:

LatencyMon - Real-time audio suitability checker

LatencyMon can be used to measure your computer for it's suitability running real-time audio, and can help identify possible causes for drop outs. The free 'Home edition' can be used in a non-commercial environment, and is very useful for troubleshooting.

Using LatencyMon reporting tool for Windows 7, Windows 8 / 8.1, and Windows 10

  1. Close all programs.
  2. Download LatencyMon (free home edition) from here.
  3. Run the installer, and allow LatencyMon to install.
  4. Ensure your PC has it's AC power supply connected, and you've completed all the steps from the PC Optimization Guide for Windows-8-1 article. 
  5. Launch LatencyMon from your start menu, or desktop shortcut.
  6. Choose 'Start Monitor', as indicated in the image below;
  7. Leave LatencyMon running for at least 2 or 3 minutes, and then choose 'Stop Monitor' (also indicated in the image above - which will appear as a red square while the software is monitoring).
  8. Press 'Ctrl + C' on your keyboard, to copy text output results of the report.
  9. Press the 'Windows Windows logo key + R' keys on your keyboard, to launch a 'Run' prompt, and type "wordpad" without the quotes - and press enter.
  10. Paste the content into the Wordpad article.
  11. Return to LatencyMon, and press 'Ctrl + S' to copy the image output result, and then back to Wordpad and paste it into your document again.
  12. Save your Wordpad document, by choosing File --> Save As --> Rich Text Document, and name it appropriately.
  13. Submit a support ticket with as much information as possible, and your report file attached, via the following link; Submit a support ticket
  14. We will advise on what to do with the dropouts on your system.