Windows 10 - Possible Latency Fixes

I started this new Xeon-based system build at the beginning of April. I have been struggling with a number of issues related to audio dropouts. I thought, how could this be on a 12-core Broadwell Xeon with 3.0-3.5 GHz clock speed? Here are a few things I’ve learned…

  • Most of the tweaks from previous DAW tweaking guides still apply, but setting processor scheduling to best performance for background services seems to be outdated now as does disabling HyperThreading since Cubase 7.

  • Nvidia video drivers will kill you on DPC latency. I replaced my NVS 510 (not even really a 3D card) with a FirePro W4300 and that fixed that issue.

  • Intel NIC (Network Interface Controller) cards are not so great after driver v19.1, so if you are on Windows 10 like me, you might want to get a different vendor add-on NIC card if your onboard is Intel or just disable NIC drivers before running Cubase. I made some batch files to disable and enable the NICs with DevManView and put them on my desktop.

  • Install the storage drivers for your motherboard so the default Microsoft drivers aren’t running your storage. Intel RST, Samsung NVMe, whatever they may be, you need to get them from the storage controller vendor. The Microsoft storage drivers seem to add some unwanted latency to OS processes like ntoskrnl.exe and Wdf01000.sys.

  • Sometimes even if you disable SpeedStep/TurboBoost in the BIOS, Windows 10 doesn’t care. You can force it though. Run this at the command line… “powercfg -attributes SUB_PROCESSOR 5d76a2ca-e8c0-402f-a133-2158492d58ad -ATTRIB_HIDE” (without the quotes) and you will get a new option in advanced power plan settings. Here you can set “Processor idle disable” to “Disable idle” under “Processor power management”. This will run your CPU at full turbo on all cores all the time (but it will look like they are running at 100% load in Task Manager).

  • Windows 10 screws around with system clocks too much and won’t use your motherboard’s HPET (High Precision Event Timer). It uses it’s own clocks and scales that clocking dynamically (I’m guessing to make it run better on tablets). This tweak dropped DPC latency on many OS processes like ntoskrnl.exe and Wdf01000.sys dramatically. Run these three commands at an admin command prompt…

  • bcdedit /set useplatformclock yes
    bcdedit /set tscsyncpolicy Enhanced
    bcdedit /set disabledynamictick yes

These will set things back to default if your system doesn’t like them…

  • bcdedit /set useplatformclock no
    bcdedit /set tscsyncpolicy Default
    bcdedit /set disabledynamictick no

You will need to reboot after any bcdedit.

WinTimerTester will show you if you are on the HPET if the QueryPerformanceFrequency is now ~14.3 MHz instead of ~2.9 MHz.

As with any system tweak, try these at your own risk. YMMV

Thanks for posting this. After everything I’ve been through on Windows 10, I’m seriously considering going back to Windows 7. My performance has taken a huge hit. Something interesting that I read on a forum is that professionals who design specific daw computers are actually writing their own bios software to turn off and circumvent many of the shortcomings with windows 10. It’s an expensive route to take, but I may be headed that direction.

Hey Omniphonix ! Thank-you for posting these tips. Yes, I am unfortunately in the same (mine is an Asus i76700HQ) laptop under Windows 10, 1200ms dpc latency ! boat. Horrible.

I tried your system clock tweak above, but, i must be missing a slash or space or something because Windows does not recognize the command. Do they need to be input one at a time and “Enter” or all at once ? Anyway, I am missing something.

I’ll have to try each and every tweak that you have mentioned.

Thanks omniphonix! I’ll add these to my arsenal of gathered tweaks during my quest to the ultimately optimized system. I’m still not fully satisfied with the audio performance of my setup. My system for instance needs hyperthreading to be disabled otherwise the performance meter will hit red very soon. I have a suspicion that this mainboard is not the most suitable one for this kind of thing. It’s rock solid but not very impressive when it comes to real time audio processing. Maybe time to give up and go look for another one?

O.K. I see…one has to copy all of the above and then paste it into the command line. Enter. It worked.

But, my system was happier without the tweak unfortunately. In fact, all system tweaks seem to be a matter of hit & miss. It works for one and not another. Even the ol’ “update your drivers !” is not always the best idea. I did and now my system is worse for it.

1 Like

Doing some further work with my system, I found that “useplatformclock yes” is not so great actually, but the other two do help. In the end, I found that my motherboard is very finicky about the video card installed. Both an Nvidia NVS 510 card and an AMD FirePro W4300 caused audio clicks and drop-outs, Returning to my old Radeon 4850HD cleared up any audio problems I was having. I haven’t had a drop-out since. I hope this card can continue to hang in there a while until I can find a modern video card that works well with my system. Maybe I should keep it simple and just get a Radeon 7750 with multiple DisplayPort outputs. I remember Matrox was really great for staying out of the way of the rest of your system, but their latest cards have ridiculous pricing given the feature set.

Yes, Windows 10 especially I think has issues with drivers (namely, the drivers being immature). Look at my comment about Intel NIC drivers as an example. They haven’t sorted out the DPC latency issue in their drivers that they added after v19.1. Trouble is, if you’re on Windows 10, you can’t use v19.1. Pete Brown needs to hammer this point home at Microsoft, WHQL certification should include a check for DPC latency of the driver. This is the double-edged sword of WIndows. We get less expensive hardware and far more flexibility, but we have to tweak things to death to get them running smooth. Mac users plug in, install software, and get to work. Still not going to get me to buy that new trash can they call a Mac Pro though…

Here are some other tweaks I am liking…

Add this to your hosts file and all the Windows 10 call-home gather your data in the background stuff is over…
#BLOCK Microsoft Telemetry and data sending
#-----------------------------------------------------------
0.0.0.0 vortex.data.microsoft.com
0.0.0.0 vortex-win.data.microsoft.com
0.0.0.0 telecommand.telemetry.microsoft.com
0.0.0.0 telecommand.telemetry.microsoft.com.nsatc.net
0.0.0.0 oca.telemetry.microsoft.com
0.0.0.0 oca.telemetry.microsoft.com.nsatc.net
0.0.0.0 sqm.telemetry.microsoft.com
0.0.0.0 sqm.telemetry.microsoft.com.nsatc.net
0.0.0.0 watson.telemetry.microsoft.com
0.0.0.0 watson.telemetry.microsoft.com.nsatc.net
0.0.0.0 redir.metaservices.microsoft.com
0.0.0.0 choice.microsoft.com
0.0.0.0 choice.microsoft.com.nsatc.net
0.0.0.0 df.telemetry.microsoft.com
0.0.0.0 reports.wes.df.telemetry.microsoft.com
0.0.0.0 services.wes.df.telemetry.microsoft.com
0.0.0.0 sqm.df.telemetry.microsoft.com
0.0.0.0 telemetry.microsoft.com
0.0.0.0 watson.ppe.telemetry.microsoft.com
0.0.0.0 telemetry.appex.bing.net
0.0.0.0 telemetry.urs.microsoft.com
0.0.0.0 telemetry.appex.bing.net:443
0.0.0.0 settings-sandbox.data.microsoft.com
0.0.0.0 vortex-sandbox.data.microsoft.com

(hint: always block things with 0.0.0.0 in your hosts file instead of 127.0.0.1, with 0.0.0.0 it will timeout immediately)

Remove built-in apps…
–Run Powershell as admin
–Run this command (without quotes) “get-appxpackage | select PackageFullName”
–Now you get a list of all the universal apps built into WIndows 10
–You can remove the ones you don’t want, here using Bing Health and Fitness as an example…
–remove-appxpackage Microsoft.BingHealthAndFitness3.0.4.322_x64_8wekyb3d8bbwe
–This is especially helpful for apps that will call out for data in the background

If you’re like me and don’t do stupid things on the Internet with your DAW, you don’t really need antivirus but Win10 will force Defender on you. Kill it for good with this registry setting…
-----[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
-----“DisableAntiSpyware”=dword:00000001

By default, MMCSS will leave 20% of your CPU power for other things besides your multimedia task. You can put the squeeze on it by modifying this registry key…
-----[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
-----“SystemResponsiveness”=dword:0000000a
This setting reduces it to 10%, but you can play around with the values, just remember to translate the percentage to hex. The default of 20 is hex 00000014.

Again, these are all try at your own risk. Every Windows computer is different.

Oh, I almost forgot, the hosts file is protected now in Windows 10. There are two ways to edit the file…

  1. Take ownership of the file and then modify security settings so you have write access (I don’t recommend this for security reasons).
  2. Right-click notepad (or your text editor of choice) and run it as an administrator. Use the File > Open method in the text editor to open your hosts file. While running as admin, you will have write access. The hosts file is in \Windows\System32\drivers\etc

1 Like

My advice would be “leave the system clock alone” unless You really have DPC problems.
I have experimented with various HPET optimizations throughout Win XP, 7 and 10. Yes it’s an old hat :slight_smile:
It resurfaces with every new Windows version, especially in the gaming community.
And it might help on “your” exact motherboard, firmware and other hardware configuration. But from experience I would be cautious, it can give you other problems, like ghosting mouse cursor and other grafix problems, even blue screens.
On a well running PC it will give you nothing, it’s not an optimization, and should not be applied without thought.
I welcome the discussion, I have used a lot of time tweaking my computers through the years, that is until Windows 10 came along. Probably the first Windows OS that I really could leave alone and just enjoy, with hardly any optimization.
YMMV

1 Like

By default, MMCSS will leave 20% of your CPU power for other things besides your multimedia task. You can put the squeeze on it by modifying this registry key…
-----[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
-----“SystemResponsiveness”=dword:0000000a
This setting reduces it to 10%, but you can play around with the values, just remember to translate the percentage to hex. The default of 20 is hex 00000014

Mine hexidecimal is set to 0…Does that mean that the reserve CPU is basically off ?

Mine hexidecimal is set to 0…Does that mean that the reserve CPU is basically off ?

no,
(decimal) 20 is the default;
registry settings to value lower than 10 evaluates to 10 (decimal) only,
10% is everytimes reserved for system tasks

also remarks:

a)

MMCSS sends a special command to the network stack of the operating system, telling it to throttle network packets during the duration of the media playback. this is because network DPC is hardware interrupt based (higher priority then the user software (user-mode code)).

b) from the microsoft book windows internals revision 7 part 1
MMCSS supports a feature called deadline scheduling. The idea is that an audio-playing program does not always need the highest priority level in its category. If such a program uses buffering (obtaining audio data from disk or network) and then plays the buffer while building the next buffer, deadline scheduling allows a client thread to indicate a time when it must get the high priority level to avoid glitches, but can live with a slightly lower priority (within its category) in the meantime.

Hi omniphonix, Does this disable all telemetry, or just some of it? I didn’t think it was possible to disable it completely in Home (or even Pro for that matter). I’ve read this is only possible with Enterprise. Cheers…

I can’t say for sure if Microsoft has added more domains to send telemetry since the original RTM of Win10. I imagine it would be very easy for them to add new ones via Windows Update. Admittedly, I got this particular tweak from some other site and have not validated with packet captures. Either way, any reduction of background network traffic is good for a DAW.

Hi, thanks for a very interesting thread (bearing in mind advice from peakae, of course).

Any idea how to find out which apps are doing this?

I’m not really that well versed in the deeper levels of operating systems but I believe that Microsoft does what’s best for windows. And everything posted here just seems to have identified some probabilities.

Despite the seemingly good performance I am getting from my newer computer… is there a starting point besides drivers to start tracking issues we may not realize are creating a problem? For me, suddenly finding out that xxxx has been slowing down my hard earned enjoyment , eats at me . :wink:

1 Like

It can be done, but it’s not easy and very technical. The best way I can think is to use Wireshark and Windows Resource Monitor to watch which executables are sending data and where they are sending it.

Microsoft does what’s best for Microsoft and tries to be everything to everyone. They keep saying they are working to make Windows 10 better for musicians, but I still see them having a long way to go (has anybody stopped using ASIO drivers on their Win10 machines?). As I keep saying in this thread, YMMV. There are things people can try and see if they might help with issues they are having. Just about every PC is unique, that’s why I provide a back-out plan for just about every tweak.

Omniphonix: you got me. I reread each of these 19 posts…what is YMMV. I actually read a lot of this with a moderately clear understanding but…I have gone in and done a few things that have worked great and at other times, REALLY screwed things up to the point of FORMAT, so I’ll pass … but thanks!