To achieve stability and low-latency the driver needs to process the audio in real-time. While the driver itself is not CPU-intensive, it needs to be scheduled for execution by the OS as soon as data is available. The same applies for the DAWs. In order to guarantee that latency-sensitive applications are scheduled as soon as possible, they run with high (or even real-time) process and thread priority.
Windows provides a special service for multimedia applications – the Multimedia Class Schedule Service (or MMCSS for short). Instead of dealing with scheduling priorities manually, each thread in the application can register itself to the MMCSS, and the service automatically raises the thread priority. Most of the time this works great. However, there is a catch – if the thread exceeds a given time quota, the service drastically lowers the thread priority in order to allow background tasks to run. This means that if you’re using lower buffer sizes and there is another task running in the background, the MMCSS might decide to drop the priority of the DAW and driver threads, the background task will preempt them, and you’ll hear crackling.
Different DAWs behave differently – some of them register with the MMCSS, other manually manage the scheduling priority. We provide a checkbox in the ASIO Settings Control Panel to select whether or not the driver thread itself should register with the MMCSS. It should match the behavior of the DAW.
While it would be best if no background tasks are running during your session, you can’t always guarantee that this is the case. In case you are experiencing crackling due to background tasks taking over the CPU, try toggling the MMCSS registration checkbox in the ASIO Settings Control Panel, or try disabling the MMCSS altogether and manually set the DAW to real-time priority. To disable MMCSS altogether run “regedit”, go to Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MMCSS , change the value of “Start” to 4, restart the computer, this will permanently disable the service.
We’re communicating the negative effects of the MMCSS with the maintainers of ASIO Standard (Steinberg) and we’re hoping that more drivers and DAWs can make the MMCSS registration optional.