I know this is old, but I thought I'd share what I found out/know (not much:)). I needed dual audio outputs because my Denon Receiver's Zone 2 only takes an Analog signal and I mostly need to use HDMI for the 5.1. After a WHOLE ton of frustration I realized that Windows 7 just flat out doesn't allow 2 audio outs (if you find out differently please let me know).
As far as a fix: I had to go into Sound under the Control panel and click on the Recording tab. There should be a Stereo Mix item (or maybe it's part of my card. either way for this to work you need to be able to record), right-click it, show properties and click on the Listen tab. Click on the "Listen to this Device" radio button and then select your HDMI Audio output from the dropdown list just below titled, "Playback through this Device" . This will have your soundcard (I think?) RECORD the sound your computer is sending out through the analog signal and then play it back through the HDMI. Then under the Playback tab of the Sound window, you'll have to make sure Speakers (your analog output) is set as the Default player and not the HDMI. Unfortunately this means only stereo (2channel) sound is outputted through the HDMI which is why I needed EventGhost, so I could create macros to switch back and forth from my Logitech remote so I can enjoy 5.1 99% of the time, but analog when I want to play music through my Zone 2.
In case you are curious these are my EventGhost's:
"Enable HDMI":
- Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="1494">
<Macro Name="Enable HDMI" Expanded="True">
<Event Name="Keyboard.LCtrl+LAlt+1" />
<Event Name="Keyboard.RCtrl+RAlt+1" />
<Action>
System.Execute(u'rundll32.exe', u'shell32.dll,Control_RunDLL mmsys.cpl,,0', 0, False, 2, u'')
</Action>
<Action>
EventGhost.ShowOSD(u'HDMI', u'0;-48;0;0;0;700;0;0;0;0;3;2;1;34;Arial', (255, 255, 255), (0, 0, 0), 4, (0, 0), 0, 4.0, True)
</Action>
<Action>
EventGhost.Wait(0.10000000000000001)
</Action>
<Action>
Window.FindWindow(u'rundll32.exe', u'Sound', u'#32770', u'', u'SysListView32', 1, False, 8.0, 0)
</Action>
<Action>
Window.SendKeys(u'{Down}', False)
</Action>
<Action>
EventGhost.Wait(0.10000000000000001)
</Action>
<Action>
Window.SendKeys(u'{Tabulator}{Tabulator}{Enter}', False)
</Action>
<Action>
EventGhost.Wait(0.10000000000000001)
</Action>
<Action>
Window.SendKeys(u'{Escape}', False)
</Action>
</Macro>
</EventGhost>
...and "Enable Analog":
- Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="1494">
<Macro Name="Enable Analog" Expanded="True">
<Event Name="Keyboard.LCtrl+LAlt+2" />
<Event Name="Keyboard.RCtrl+RAlt+2" />
<Action>
System.Execute(u'rundll32.exe', u'shell32.dll,Control_RunDLL mmsys.cpl,,0', 0, False, 2, u'')
</Action>
<Action>
EventGhost.ShowOSD(u'Analog', u'0;-48;0;0;0;700;0;0;0;0;3;2;1;34;Arial', (255, 255, 255), (0, 0, 0), 4, (0, 0), 0, 4.0, True)
</Action>
<Action>
EventGhost.Wait(0.10000000000000001)
</Action>
<Action>
Window.FindWindow(u'rundll32.exe', u'Sound', u'#32770', u'', u'SysListView32', 1, False, 8.0, 0)
</Action>
<Action>
Window.SendKeys(u'{Down}{Down}', False)
</Action>
<Action>
EventGhost.Wait(0.10000000000000001)
</Action>
<Action>
Window.SendKeys(u'{Tabulator}{Tabulator}{Enter}', False)
</Action>
<Action>
EventGhost.Wait(0.10000000000000001)
</Action>
<Action>
Window.SendKeys(u'{Escape}', False)
</Action>
</Macro>
</EventGhost>
On an unrelated note, I'm worried about such contingencies as me accidentally firing the "Enable HDMI" EventGhost when HDMI is already enabled or maybe when the Sound dialog box is already open. Does anybody have any tips/tricks for making these a bit more idiot proof?