Error message on Windows: MMCSS priority cannot be set!

Language
English
Document type
Help Center Article
ft:openMode
external
ft:originUrl
https://helpcenter.steinberg.de/hc/en-us/articles/13338094735762-Error-message-on-Windows-MMCSS-priority-cannot-be-set

Error message on Windows: MMCSS priority cannot be set!

Problem

The following error message appears while running Cubase/Nuendo.
Additionally, audio dropouts may occur.

⚠️ MMCSS priority can not be set!

Background

Cubase and Nuendo support two APIs (Application Programming Interfaces) for MIDI devices: Windows MIDI and the newer WinRT MIDI. WinRT MIDI offers advantages like Bluetooth, plug and play and grouping MIDI ports by device. It also bypasses freezes that could occur with Windows MIDI

The default in Cubase /Nuendo setting is Windows MIDI. This can be changed under Studio ▸ Studio Setup ▸ MIDI Port Setup by checking Use Device 'WinRT MIDI'.

MMCSS (Multimedia Class Scheduler Service) is another API Cubase and Nuendo use to run threads for time-critical audio processing at a very high priority. By default, Microsoft has limited the number of MMCSS threads to 32.

The MMCSS error message indicates that the maximum number of MMCSS threads has been reached, which leads to a significantly increased probability of audio dropouts.

The number of active MMCSS threads depends on these factors: 

  • Windows creates two MMCSS threads for each MIDI input port when WinRT MIDI is enabled.
  • Cubase/Nuendo creates a MMCSS thread for each logical CPU core. 

The more MIDI inputs are used and the higher the number of logical CPU cores, the more likely it is that the MMCSS thread limit is reached and thus audio dropouts occur.

Using Windows MIDI can also lead to additional MMCSS threads being spawned by Windows, but only temporarily and to a much lesser extent. 

Solutions

If WinRT MIDI is used and audio dropouts occur or the above-mentioned error message appears in Cubase 13, you have these options: 

Disable WinRT MIDI

 If that works for you, you can return to Windows MIDI by unchecking Use Device 'WinRT MIDI' under Studio ▸ Studio Setup ▸ MIDI Port Setup. 

Of course, in this case, you cannot benefit from the advantages of WinRT MIDI.

Reduce the number of MIDI inputs

If possible, you can simply reduce the number of active MIDI input ports in Cubase/Nuendo by disconnecting unneeded MIDI devices and hiding input ports: 

  • Select "Studio Settings..." from the Studio menu.
  • The Studio Settings window opens.
  • Select "MIDI Port Settings" from the menu on the left and uncheck the "Visible" column in the MIDI input row to hide the input in Cubase.

Increase the MMCSS thread limitation

Alternatively, you can use this small tool to manually set the number of possible MMCSS threads:
 

Download MMCSS Tool (< 1 MB)

After running the tool, you can use the slider to set the desired upper limit for MMCSS threads between 32, 64, 96 and 128. The default value of Windows is 32.
Please try the next higher value to see if it resolves the problem. In other words, always use the smallest possible number of MMCSS threads that will allow Cubase/Nuendo to work smoothly on your system.

Please restart your computer after changing the MMCSS thread limitation. Turning on the computer manually after shutdown is not sufficient. 

Unfortunately, Windows updates may restore the original limitation of 32 MMCSS threads. In this case, simply use the tool to set the limitation back to the value that worked best for you.   

Reduce the number of logical CPU cores

At first, it seems absurd to reduce the number of logical CPU cores and thus fundamentally reduce the general performance of the computer. However, this step can make sense if the MMCSS thread limit has been reached and other options have been exhausted. In this case, the audio performance can actually be increased by deactivating logical CPU cores.

There are two ways to reduce the number of logical cores:

  • Deactivate Hyperthreading or simultaneous multithreading
  • Deactivate logical cores in the UEFI/BIOS

In both cases, deactivation takes place in the UEFI/BIOS, which is why we only recommend these steps to experienced users. Please follow the instructions from the manufacturer of your computer or mainboard to deactivate Hyperthreading, Simultaneous Multithreading or logical cores in the UEFI/BIOS.