Preventing Windows 7 from reverting to stereo?

I have an Intel Sandy Bridge-based Windows 7 x64 machine primarily used as an HTPC connected to a Pioneer SC-1223-K receiver via HDMI audio. When the receiver goes into standby (i.e.: off), Windows forgets that it is connected to a 5.1 sound system and changes the speaker configuration to stereo. I can of course go to the Sound control panel and change it back to 5.1, but this is a time consuming task, and requires the use of a mouse, which is not desirable on a WMC-driven HTPC interface.

I have tried modifying the EDID of the "Generic PnP Display" as suggested over at AVSForums and gone through this thread that also discusses stereo reversion, but on a game rather than Windows overall, without luck. If it makes a difference, HDMI passthrough is disabled on the receiver, though it did not appear to make any difference when I tried flipping the settings.

I'd like to "lock" Windows' speaker setup on 5.1, delete/disable all the potential speaker configs other the preferred 5.1 setup, or completely bypass the Windows audio subsystem and use an alternate one that always outputs 5.1 sound. Any suggestions how to?


I've been searching for a solution to this for a LONG time. I'll share what I've gathered thus far, but please forgive the less-than-complete answer (I'll update as I find more).

What I've gathered --

HDMI and DisplayPort connections are "Hot Plug Detectable" -- whenever a device is connected with one of these, it communicates two-ways between itself and the main device. This is why Windows will juggle your display/desktops around when you connect or disconnect a monitor with one of these connection types. This does not happen with DVI connections, because Windows doesn't know when the device is turned on or turned off.

The problem with this -- each time your device turns off, Windows uninstalls it from the system. When you turn the device back on, Windows sets it up as a completely new device. I speculate this is what's causing the HDMI sound configuration to keep resetting to Stereo -- the sound device/configuration for my AMD HDMI sound output is getting "uninstalled" whenever I turn my monitor off (or reboot, sleep, etc.), and then gets reinstalled as a new device when I turn it back on again, ...resetting the speaker configuration to Windows' default of Stereo.


The issue is hardware polling. Switching desktop cloning/extending modes in windows is not the solution.

I use a single 27" with Displayport, when I power off my screen, windows uninstalls my screen and resets the running screen resolution to 800x600. This means when I power on my screen, all windows/programs left open are resized to 800x600 and pushed into the top-left corner. Thankfully win7 remembers my icon positions when the desktop returns to 2560x1440 else I would have put my foot through the screen by now.

Displayport is hotswappable thus hardaware polling monitors the connected screens state, if you disconnect, windows simply removes that display, in single monitor mode, this equates to having no screen at all and windows defaults to the generic 800x600 for compatibility reasons.

While is is working "as intened" for hotplug screens, the side effect is that it completely messes with multi monitor set-ups as the OP explained. It also messes with single display solutions, and to date I can't find any damm way to disable this other than hard wiring out a pin on my DP cable to disable the hardware polling.

I can't switch from DP. I need the DP colour bandwidth capabilities for my panel. AMD and Microsoft pretend this is not an issue and have nothing to say for themselves, even though either of them could release a fix/option to disable this behavoiur.

(Source: http://www.overclock.net/t/1235582/dealing-with-displayport-hdmi-autodetect#post_18114801 )


Possible solution? Block pin 19 ("Hot Plug Detect" pin) on your HDMI cable. This will block the on/off detection done by Windows, so the device will appear to stay connected and thus not get uninstalled (taking your settings with it).

This is a double-edged sword, however, because Windows will not be able to detect when the device is connected -- not a problem if you keep your computer on and running, but when you reboot your computer, Windows won't "see" the HDMI/DisplayPort device and thus won't use it.

Here's the source for the pin 19 solution:

SOLUTION: I had the same issue and solved it by cutting the "Hot Plug Detect" pin in my HDMI cable.

Setup: HTPC (and other devices) to receiver to TV all with HDMI cabling.

What I did: Splice the wire and cut the wire associated with the "Hot Plug Detect" pin which is pin 19 of the HDMI connector. It was too hard to remove this pin from such a small connector so I just spiced the wire about an inch and used a continuity tester to determine the correct wire and cut it. For the cable I modified the wire associated with Pin 19, "Hot Plug Detect" was dark purple. (This is the cable between my computer and the receiver.)

Result: Everything works great, the computer detects the tv/monitor through the EDID from the DDC, but the computer DOES NOT detect when my tv/monitor has been turned on/off. The computer acts as though the tv/monitor is always turned on. No resolution re-sizing, no moving windows, no icons changing location, music plays without the tv turned on, etc. The computer simply does not detect the power-on/off of the monitor.

Commentary: While I agree cable/adapter mutilation should not be required, unfortunately it is. Alternatively you can buy a $40-$80 connector box that essentially does the same thing and manages the EDID as well. In my case I figured having a cable with this wire cut was worth it because I will always have a use for it, and my HDMI cables only cost $4 as opposed to $40. If you really want I'm sure you could put an inline switch rather than just cutting the wire.

Summary: MS clearly has no intention of fixing this "feature". Modifying cables or connectors to remove the "Hot Plug Detect" connection is a very good and easy solution. This works for VGA, DVI, and HDMI connections and once done your computer will always assume your tv/monitor is turned on. This is the way to disable display auto-detection.

(Source: http://social.technet.microsoft.com/Forums/windows/en-US/8a9b5aa7-fe33-4e6d-b39b-8ac80a21fdc2/disable-monitor-off-detection-how#71b98215-6f2a-4603-8c97-68bfdbc8fc3b )


Another possible solution I've tried is locking the specific registry key that holds Windows' speaker configuration. This stops even Windows from changing/overwriting it, preventing Windows from resetting to a default "Stereo" configuration.

The problem with this, however, is the same problem as above -- because Windows is uninstalling and reinstalling the monitor (and sound device) each time its turned off/on, it doesn't matter that I lock the registry key for it, because the key is "outdated"/void/unused the next time the monitor is off/on'ed. Each time it's turned back on, Windows creates a completely new device ID for it, along with a new sound configuration key/settings in the registry.


Another solution I've contemplated is automating the setting of the correct speaker setup in Windows sound configuration with a custom program I'm writing myself. I've started writing an AutoHotKey script that, when run, will essentially do the work of going into Windows sound config, setting a 7.1 speaker setup, and then applying and saving the config. Ideally, this script will run GUI-less without needing to visually open the Sound control panel and config windows. It'll basically pull the behind-the-scenes "puppet strings" to accomplish this non-visually so it wouldn't interfere with your work and you wouldn't have to see it happening.

This program would either monitor the current sound device/config in Windows and detect when its been set to "Stereo", or it could just initiate a 7.1-speaker-setting whenever the computer restarts, resumes from sleep, or has a monitor turned on.


And that's the gist of what I've got so far.


The root cause of this issue is not the hot plug capability of HDMI nor Windows assigning a new EDID to the device each time it is re-connected or switched on, but the lack of an exactly matching (screen) driver which would allow Windows to properly re-load its settings (like speaker configuration) as Windows does with any other HDMI device which has a specific driver. Unfortunately, Denon does not provide any Windows driver at all.

Since turning off "HDMI control" is no option for me as I want to control the AVR via my TV's remote control, the solution was still quite easy in my case (Windows 7 Pro, 64 Bit; Denon AVR-X2500H):

Start up the devices in the correct order:

  1. AVR (initiated by TV)
  2. Ensure PC is selected input source
  3. PC

And shut them down in the reverse order:

  1. PC
  2. After PC is shut down, AVR (initiated by TV).