Realtek HD Audio Conflicts with NVIDIA HD Audio Drivers

The Problem


For the past few weeks, I’ve been having issues with my audio driver for my Lenovo Y510P mysteriously closing one application using the audio device and opening another, the newly opened program wouldn’t even return an error! It would simply stall. Opening the Audio Devices window, trying to disable then re-enable the device, the response would be This audio device is currently being used by another application. For some time, the only solution I could find was simply to restart the computer.

Needless to say, this was absolutely unacceptable (as a long-time Unix-type systems user, the whole concept of having to restart a computer due to a driver issue is, has been, and always will be absolutely absurd. Although this is a Windows system, restarting services can and will work in many cases to free those odd “hung-up” states). As a developer, this can be a very frustrating thing, since many coders rely on audio for various reasons, one of which is listening to music or ambient sounds to keep distractions down while in the office, or simply providing sounds to keep the mind going steadily when working.

“Making Do, But Not Doing Enough”


Anyhow, this problem was getting quite irritating, to say the least. Upon some research with searches on the web, I’d discovered that restarting the Windows Audio Service seemed to, at the very least, prevent me from having to restart the computer every time. This seemed to work for a while, but it was still annoying to have to open the Services console and restart the Windows Audio Service every time this driver state had occurred.

“Satori”


Then the Nvidia update manger notification popped up today, and something clicked in my head. On a whim, I opened Device Manager only to find that, not only was the Realtek HD Audio driver was enabled, but also two Nvidia HD Audio drivers were running: Nvidia HD Audio and Nvidia Virtual Audio Device (Wave Extensible) (WDM).

“Driver / Config Smell”


My apologies to those who fall within the “I already know this” demographic. You may feel free to skip to “Yeah, Yeah, Soooo…?” below.

“Recursions?!?”


Many developers speak about “code smell,” whereupon when looking at code, something doesn’t “look right,” and is usually the result of poorly written / inefficient code. Such code with a foul “code smell” generally is the target of auditing and re-factoring when trying to fix a bug in an application.

“Yeah, Yeah, Soooo…?”


So, this case is what I call a “driver / configuration smell.” After discovering this issue at NVIDIA’s Knowledge Base, I disabled both the NVIDIA drivers, restarted the computer, and the issues with having to restart the Windows Audio Service have disappeared. Smiley faces all around, everyone gets cookies and milk,

I’ve posted this in the hopes that those with a similar encounter with their system will find this page and resolve their conflict so that they may listen to music, write their code productively, and in general live the computing portion of their life as rich and full as possible.

End


Comments:


I don’t really care to toy with this unless I encounter issues with how this configuration affects other aspects of the system. It seems fine now, but I haven’t found reason to use the inverse configuration just yet. If anyone believes the inverse configuration is a better solution (using the NVIDIA HD Audio driver + NVIDIA Virtual Audio Device) instead, please comment your findings.

Many of us have different tastes in music for writing code. What kind of music do you listen to when writing code / doing research, and in what way does it benefit you when you’ve hit that “flow” moment, much like the runner’s high for joggers?

P.S.:


(Instances such as this would be a good opportunity for those unaware of the terms to look up the programming terms “side-effects,” “shared state,” and “immutability” to have a look - I long for the day that operating systems are built on strongly-typed, side-effect-free, functional code that imposes an “immutability by default” rule in its language specifications)
Post a Comment

Popular posts from this blog

Consuming RdotNET

My Favorite Libraries