Monday, August 26th 2019
Windows 10 1903 Has a Nasty Audio Stutter Bug Microsoft Hasn't Managed to Fix
Windows 10 May 2019 Update (version 1903) is the pinnacle of neglect and contempt Microsoft has shown towards the all-important audio subsystem of the modern PC. With it, Redmond has one-upped its last big move against audio, by killing the DirectSound hardware pipeline and mongrelizing PC audio under Intel's lousy and fundamentally anti-competitive Azalia specification that solves common audio compatibility problems under a scorched-earth guiding principle - "kill any feature that could possibly lick our aftersales support budget, by dumping every aspect of audio onto a very restrictive host-signal processing (HSP) architecture, let people come up with their own soft DSPs, because CPUs can handle them." Windows 1903 proves how this approach wasn't a silver bullet against PC audio problems, and is fallible.
I've never owned a PC without a discrete sound card. My first "multimedia PC experience" was powered by a Creative kit that included a Sound Blaster PCI, an Infra-CDROM drive, a clip-on mic, and tiny stereo speaker boxes. ISA-based integrated audio solutions back then were bested by greeting cards. I've since made it a habit to buy a sound card every 5 or so years. No gleaming SNR numbers by Realtek can convince me that an integrated audio solution can best a $100 discrete sound-card, and I've owned plenty of motherboards over the years with the most premium Azalia implementations (be it the ALC889 or the modern ALC1220). My current machines feature an ASUS Xonar AE (a bang-for-the-buck ESS ES9023P implementation with a 150 Ω amp), and a Creative SB Recon 3D. Both cards implement the Azalia pipeline at some level, to survive operating with post-Vista Windows. The SB Recon 3D uses a chip that converts PCIe to the HDA bus; while the Xonar AE uses a PCIe to USB chip and a USB (Azalia) to I2S chip (essentially a USB headset laid out on a sound card with a high-quality analog side). Both cards are borked after the "upgrade" to Windows 10 May 2019 Update (1903), and two successive "Patch Tuesday" updates haven't managed to solve it.Symptoms
Audio stuttering and glitching, and lots of it. Think Winamp circa 1999 running on a Pentium 133 with its CPU priority toggle set to "low," and the CPU being subject to the rigors of Internet Explorer rendering Yahoo.com over a 56K PCI soft-MODEM. That bad! My AMD Ryzen 7 2700X has 8 cores and 32 GB of DDR4-2667 memory at its disposal, and yet iTunes playing back Apple Music Radio in the background with Google Chrome rendering Twitter is sufficient to send me 20 years back in time. My Intel Core i5-9400F doesn't fare any better.
What's Wrong
Drawing inspiration from the other world-famous Washingtonian product, the Boeing 737 MAX airplane, Microsoft introduced Windows 10 1903 with a boatload of insufficiently-documented under-the-hood changes. Some of these changes affect Deferred Procedure Call (DPC) tick-rate, causing spikes in DPC latency, affecting the audio pipeline. Focusrite beautifully summarized DPC affecting audio:
First Public Acknowledgment by Microsoft
Pete Brown, among other things, heads client-segment audio hardware user-experience at Microsoft, and Tweeted the first acknowledgment by Microsoft that it screwed up:In the above Tweet, Pete posted a link to an Update applicable to Windows 1903 chronicled under KB4505903. This update was touted to fix audio glitches, and would go on to be part of the August Patch Tuesday rollout (you can separately download it here).
Did the Patch Work?
No. At least not in case of my sound cards. ASUS and Creative are possibly the last two discrete sound-card manufacturers with extensive lineups of discrete audio solutions in various form-factors (internal cards, external USB boxes, USB headsets, etc.), and even they haven't begun unpacking the mess that is 1903. The two have dozens of EOL sound cards between them (many still in the retail channel), and haven't updated their Windows 10-compatible drivers in years. My Xonar AE isn't EOL, yet. Realtek released updated HD Audio drivers for both its UAD and legacy driver-models. Most online tech communities simply advocate updating these single-origin Realtek drivers, and with KB4505903, the overwhelming majority of PC users who listen to Realtek CODECs have possibly solved their audio problems, prompting Pete's team to call it a day. But those on discrete audio solutions that don't get driver updates as regularly as Realtek CODECs do, are shortchanged. Pandering to "creators" no more?
What You can Try
If you want to take Microsoft's approach to solving problems (scorched earth) and absolutely, positively want your audio to work (maybe because you're a music composer whose discrete audio hardware puts food on the table), then paste the following line in an elevated Command Prompt and hit Enter (and reboot):
I've never owned a PC without a discrete sound card. My first "multimedia PC experience" was powered by a Creative kit that included a Sound Blaster PCI, an Infra-CDROM drive, a clip-on mic, and tiny stereo speaker boxes. ISA-based integrated audio solutions back then were bested by greeting cards. I've since made it a habit to buy a sound card every 5 or so years. No gleaming SNR numbers by Realtek can convince me that an integrated audio solution can best a $100 discrete sound-card, and I've owned plenty of motherboards over the years with the most premium Azalia implementations (be it the ALC889 or the modern ALC1220). My current machines feature an ASUS Xonar AE (a bang-for-the-buck ESS ES9023P implementation with a 150 Ω amp), and a Creative SB Recon 3D. Both cards implement the Azalia pipeline at some level, to survive operating with post-Vista Windows. The SB Recon 3D uses a chip that converts PCIe to the HDA bus; while the Xonar AE uses a PCIe to USB chip and a USB (Azalia) to I2S chip (essentially a USB headset laid out on a sound card with a high-quality analog side). Both cards are borked after the "upgrade" to Windows 10 May 2019 Update (1903), and two successive "Patch Tuesday" updates haven't managed to solve it.Symptoms
Audio stuttering and glitching, and lots of it. Think Winamp circa 1999 running on a Pentium 133 with its CPU priority toggle set to "low," and the CPU being subject to the rigors of Internet Explorer rendering Yahoo.com over a 56K PCI soft-MODEM. That bad! My AMD Ryzen 7 2700X has 8 cores and 32 GB of DDR4-2667 memory at its disposal, and yet iTunes playing back Apple Music Radio in the background with Google Chrome rendering Twitter is sufficient to send me 20 years back in time. My Intel Core i5-9400F doesn't fare any better.
What's Wrong
Drawing inspiration from the other world-famous Washingtonian product, the Boeing 737 MAX airplane, Microsoft introduced Windows 10 1903 with a boatload of insufficiently-documented under-the-hood changes. Some of these changes affect Deferred Procedure Call (DPC) tick-rate, causing spikes in DPC latency, affecting the audio pipeline. Focusrite beautifully summarized DPC affecting audio:
DPC (Deferred Procedure Call) is the operation that Windows uses to assign a priority to processes/drivers that run simultaneously in the same system. If processes that are involved in streaming audio aren't assigned high enough priority then various issues can occur since the audio will not be streamed correctly in 'real-time'. These can include pops/clicks, "glitchy" audio and device disconnections.It goes on to postulate that outdated drivers for audio devices that have gone EOL (end of life) that aren't ready for dynamic DPC could effectively render your otherwise physically-perfect discrete sound cards unusable. "A common cause for DPC latency is out of date device drivers and Windows processes that are not optimized correctly. Many processes/drivers are involved in streaming audio and many other processes/drivers can cause interruptions in the audio stream."
First Public Acknowledgment by Microsoft
Pete Brown, among other things, heads client-segment audio hardware user-experience at Microsoft, and Tweeted the first acknowledgment by Microsoft that it screwed up:In the above Tweet, Pete posted a link to an Update applicable to Windows 1903 chronicled under KB4505903. This update was touted to fix audio glitches, and would go on to be part of the August Patch Tuesday rollout (you can separately download it here).
Did the Patch Work?
No. At least not in case of my sound cards. ASUS and Creative are possibly the last two discrete sound-card manufacturers with extensive lineups of discrete audio solutions in various form-factors (internal cards, external USB boxes, USB headsets, etc.), and even they haven't begun unpacking the mess that is 1903. The two have dozens of EOL sound cards between them (many still in the retail channel), and haven't updated their Windows 10-compatible drivers in years. My Xonar AE isn't EOL, yet. Realtek released updated HD Audio drivers for both its UAD and legacy driver-models. Most online tech communities simply advocate updating these single-origin Realtek drivers, and with KB4505903, the overwhelming majority of PC users who listen to Realtek CODECs have possibly solved their audio problems, prompting Pete's team to call it a day. But those on discrete audio solutions that don't get driver updates as regularly as Realtek CODECs do, are shortchanged. Pandering to "creators" no more?
What You can Try
If you want to take Microsoft's approach to solving problems (scorched earth) and absolutely, positively want your audio to work (maybe because you're a music composer whose discrete audio hardware puts food on the table), then paste the following line in an elevated Command Prompt and hit Enter (and reboot):
BCDEDIT /SET DISABLEDYNAMICTICK YESAnd when Pete's team has finally figured out how to use a discrete sound card, and released a patch that works, you can revert the above change to let Windows 1903 function as intended:
BCDEDIT /SET DISABLEDYNAMICTICK NOOr you can just disconnect your studio rig from the Internet, flick on CSM, and install Windows XP SP3 x64 over multi-boot.
186 Comments on Windows 10 1903 Has a Nasty Audio Stutter Bug Microsoft Hasn't Managed to Fix
And installed the softwares from Daniel_K's SB X-Fi Series Support Pack 4.0
biased and ill-informed
this is a new low for tpu
first of all direct sound has been dead since windows 7 zero support for hardware-accelerated anything has been the norm for 10 years
and recommending people install xp for any reason is ignorant and frankly dangerous
it is not Microsoft's fault that your hardware vendor can't be bothered to update their drivers
and stop using consumer audio devices for professional work if you need a pro solution, buy pro hardware doi
is there issues with dynamic tick yes, is it entirely Microsofts fault Not a chance
the latency is entirely the hardware vendors fault as they don't config the driver correctly
docs.microsoft.com/en-us/windows-hardware/drivers/audio/low-latency-audio
and you are flat wrong on the last point its incredibly well documented
sadly vendors can't be bothered to read, because its easier to point the finger just like the op
And, all of the individual patches are available, in a convenient manner (clearly and precisely labeled in terms of the full functionality, for instance) via Microsoft's website — without requiring users to jump through hoops like account-mandating software stores?
Otherwise, it's definitely a problem unless Windows 10 has become bug-free. One of the biggest problems with Microsoft Windows is the recent fad of dropping backward compatibility, imitating one of Apple's biggest failings.
The time fallacy hits tech discussion forums constantly. The erroneous notion is that simply because something is of a certain age it's no longer worth anything. This same mistaken thinking applies to not taking backward compatibility seriously enough.
A key difference between systems that work for the user and systems that work for the seller of the systems is how much effort is put into not disrupting/breaking a user's workflow. Less and less attention is paid to that as computing "progresses". UI is changed haphazardly, on whims. Software is irrevocably broken, with "too bad, so sad — buy buy buy" from everyone who has no personal investment in using it. Many times there isn't even a satisfactory replacement for the product or functionality, so just throwing one's credit debt around won't work — even though increasing the speed of planned obsolescence is a huge driver in this trend.
Windows became an industry standard in large part because of backward compatibility. Microsoft apparently thinks it can more closely emulate Apple's scorched earth tactics. Perhaps it can. It's amazing how it has gotten away with user-hostile design in Windows 10 to the degree it has already.
The boiled frog analogy is flawed because frogs actually jump out of the water. People, by contrast, don't seem to.
Person 1: "My wheel isn't working because you changed the axel. Please restore its compatibility so that I may continue my work."
Person 2: "Naw... Your wheel is obsolete. Outdated. Not updated. Not current. It's no good."
Person 1: "My wheel works fine. It's your change of the axel that has caused the problem and I didn't ask for it nor am I going to pay for the fix for it. Since you broke it, you fix it!
Person 2: "Naw... You don't understand. The seller is king. I dictate to you, rather than the other way around. I say your wheel is broken and you have to fix your situation by buying another wheel. Here, sign on the dotted line and I'll get you fixed up. It's an update. It's the latest thing. It's very shiny!
If you want to keep using the roads you'll have to use the latest wheels."
I don't even have to resort to hyperbole to illustrate the situation we're in. What's the sound that frogs make?
Windows 10 broke Topspin and Topspin 2, to name just two games that people spent money on and want to play. Both work fine in Windows 7. Compare the effort it would take to maintain compatibility with those with the amount of effort that has gone into creating redundant and confusing new UI all over the place, radically changing the way Windows Update works from a user engagement standpoint, etc. The priorities are way off for users but the system isn't being designed for them.
In Soviet Modern Times computer use you. Code bloat is due to inefficient use of resources, mainly due to using very high-level programming systems to speed up development time. That's not always a bad thing, by any means, because it often means companies can provide more features than they would be able to if they would have to spend more resources on code efficiency.
Backward compatibility is rarely an inefficient use of resources. Typically, the code is already done and, at most, needs to have some minor adjustments to work with updated subsystems. The worst thing that can happen is security vulnerabilities but those are everywhere already, including in the latest shinies.
The amount of resources needed to maintain backward compatibility pales in comparison with the benefit to user workflow. That is the far greater efficiency. But companies aren't interested in user workflow efficiency. They're interested in force-feeding people increasingly fast planned obsolescence. Apple's insane empire is increasingly built in a day. So, every patch is completely separated so people can install only what they want to have?
They're all concisely and adequately labeled, so people will know what they do — with no hidden gotchas?
None of them have dependencies that require that users install things, like enhanced "telemetry" that they don't want — in order to get functionality they need?
I somehow doubt that this is the situation, given the user-hostile hoops one has to jump through (disabling the update services, for instance) already.
Telemetry is needed to know what went wrong. As a programmer, I know this. Those who have never written a line of programming code in their lives don’t know this.
That's like saying the masses should be glad to have zero privacy (and thus zero personal IP) because it helps people solve problems. It solves the problem of the masses competing with the rich.
Apple controls the whole ecosystem from the hardware all the way to the top of the chain with the software and even they can’t get it right. And you expect Microsoft to get it right all the damn time with an ecosystem that’s as vast as the universe itself? Get real! You’re full of yourself if you think Microsoft can get it right without debug data from its users.
The fact that Windows runs as well as it does and doesn’t fall flat on its face on such a vast and varied hardware ecosystem with an equally vast and varied software ecosystem on top is, if you ask me, a fucking miracle of biblical proportions.
PS SBZ It's still on sale for almost 100 euros, I won't add anything else.
When MS has time to code Windows 10 force-feed-ware to hijack Windows 7 installations it has time to made a useful product.
When MS has time to try to take over the web browser market when there are already adequate browsers available it has time to make Windows, a product one paid for, useful.
Given that MS decided to really aggressively establish Windows as the world standard desktop operating system it has the responsibility to make a good product. (See OS/2 if you're unclear on how aggressively.) Your point of view doesn't coincide with history. Once upon a time, there was no broadband for MS to exploit. :rolleyes:
The actually controversial thing is forcing people to surrender their IP.
Oh, so tell me why despite the very real fact that Mozilla Firefox undergoes beta testing before every new release yet a week or two after a big release there's a .1 and a .2 update afterward? You'll tell me that they should have fixed these bugs in beta and that they shouldn't have released it knowing that they had those bugs. To which if that were the case a new version of Firefox would never be released because the testing would never be finished. Eventually, something has to released and no matter how much testing you do inside a closed environment there's always going to be bugs found once it has been released to the public because that's how things work. You know what they say about the best-laid plans, right?
So here we have Mozilla and they're writing a web browser, something that is a tiny fraction of the size of the codebase that Windows consists of and yet even Mozilla with it being open source and all and they even can't get things right. And like I said before, Apple can't even get it right and they control the whole ecosystem from the top to the bottom. And what about nVidia, they release new versions of their drivers every month and what do they do? Oh yeah, they fix bugs. The same can be said about how AMD does the same with new driver versions. Google comes out with new versions of Android every year and yet despite how long each new version of Android spends in beta they still find and fix bugs months later. Google does the same with Google Chrome, they come out with new versions of Google Chrome every month or two and yet despite all of the testing and how much of Google Chrome is based upon the open source Chromium, they still find and fix bugs. The same can be said about the open source Linux kernel and how each new version of the Linux kernel fixes bugs all the time.
I really can go on all day and all night citing example after example after example but you'd tire of that so I've purposely limited it to a few examples of how and where things have gone wrong despite the oh so lauded beta phase.
So what have we learned here folks!?!? That the almighty beta phase doesn't catch everything. You eventually need to throw it out to the public and have people bang on it for bugs to come to the surface and have things fixed. Anyone who doesn't understand this has never written a line of programming code in their lives and need to back up and shut up for you don't know what you're talking about. I, myself, have written programming code so I do indeed have an idea of just how many things can go wrong despite how much testing is done once something has been thrown to the sharks.
I am not defending Microsoft in any way, I'm simply pointing out that despite how much testing is done no matter what project you're talking about you cannot find and fix all of the bugs in a closed testing environment. You eventually need to throw it out to the sharks and hope for the best. Sometimes it works and no bugs are found but that's a rarity with today's massive programs that can have tens of millions of lines of code. If Microsoft changes an API then yes, drivers need to be fixed. Oh, but you say that there should be backward compatibility so that existing drivers continue working but that backward compatibility then results in a layer on top of a layer on top of a layer of code that results in an ever-increasing massive heap of code. The size of the OS/2 codebase doesn't even come close to the size of the codebase that is Windows. Come back to me with a better example. Oh yes, we have such an example already. The Linux kernel but I already talked about that above so yeah...
I have written this post to point out several and very valid examples of things that can and have gone wrong even with projects that are a tiny fraction of the size of Windows; namely Firefox and Google Chrome. I have even cited the Linux kernel which is on the order of the size of Windows yet despite the fact that it's open source bugs can still slip through the cracks and new versions need to be released to fix them. I have even cited Google Android. And then there's MacOS and Apple iOS that despite how they control the whole ecosystem from top to bottom they still indeed have to fix bugs.
/mic drop