Thursday, July 5, 2012

Getting multi-channel audio from PowerDVD 12 via HDMI

In PowerDVD's audio options it has
  1. decoded to PCM by PowerDVD
  2. Non-decoded Dolby Digital/DTS to external device
  3. Non-decoded HD audio to external device
Since it's connected to an Onkyo TX-NR609 receiver which has DTS-HD and Dolby HD, and I want the receiver to handle Bluray sound as well as apply Dolby Pro-logic II matrixing to stereo (mainly kids' DVDs), obviously it's option 3 I want.

But when I chose option 3, it came to the receiver as 2.0 channel, despite the receiver being capable of 192kHz 24 bit HD sound - even according to Control Panel ->; Sound -> NVIDIA HD Audio Device -> Properties -> Supported Formats

Found this post which mentioned the Windows speaker setup. Indeed, it was still on 2 speakers. Switched it to 7.1 and now the receiver says it's receiving 5.1 Multi-channel for DVD sources - good. However, music from Windows Media Center is now sent to the receiver as 5.1, with no sound on the centre or surround channels. Worse, the receiver won't apply Pro-logic, as it's already getting 5.1 channels thanks to Windows. Music sounds dull.

Found this post for XBMC and a similar one for WMC which I now can't find, which suggest setting Windows' Speaker Settings to 2.0 channel, and enabling multi-channel output in WMC/XBMC. This works perfectly - music comes to the receiver as stereo, and Cyberlink PowerDVD sends raw encoded audio to the receiver which does its magic.

Sunday, June 24, 2012

Windows 7 HTPC won't got to sleep

The Logitech Harmony universal remote control can only send the computer a power toggle command - that's all that PCs seem to support (note to designers - FIX IT please!). So the universal remote has to remember whether the computer is on or off - but when it refuses to go into standby, the remote gets it wrong and when the remote tries to turn it on, the computer turns off instead!!
  • Run cmd but do so as an Administrator (right click on the icon and select the menu option.
  • Use powercfg -requests to see what is preventing the system from sleeping.
  • Use powercfg -requestsoverrides to prevent those things from preventing sleeping.
  • Use powercfg -lastwake to see what caused the wake - but note that it seems to be totally wrong at least for hardware (is this because it tries to identify the device from the IRQ but can't tell which device on the same IRQ caused the wake? Pure speculation.)
While playing TV, found this output of powercfg -requests:

C:\Windows\system32>powercfg /requests
DISPLAY:
None.

SYSTEM:
[DRIVER] NVIDIA High Definition Audio (HDAUDIO\FUNC_01&VEN_10DE&DEV_0014&SUBSYS_
10DE0101&REV_1001\5&27db68e6&0&0101)
An audio stream is currently in use.
[PROCESS] \Device\HarddiskVolume2\Windows\ehome\ehshell.exe
[DRIVER] Legacy Kernel Caller

AWAYMODE:
None.

Stopped playback and tried to suspend, but it didn't. Ran the same again and the NVIDIA High Definition Audio was still there, but the others weren't.... is that the smoking gun?

Had NVIDIA GeForce GT 425M driver version 280.19, now there is 301.42. But according to this Asrock forum article, I need the desktop driver. Or there is this technique to use the theoretically correct 425M driver.

Noticed that there was still the same NVIDIA HD Audio sleep prevention request shortly after playing a sound (though it disappeared within 10s).

At cmd prompt:
powercfg -requestsoverride DRIVER "NVIDIA High Definition Audio" SYSTEM

Hopefully that cures it.

PS: had to add others - \FileSystem\srvnet and Legacy Kernel Caller. Then discovered that the wired network card would wake the computer up immediately on entering standby - disconnecting cured that. Tried setting the power management settings for it to "Only allow a magic packet to wake the computer" - otherwise I guess any network traffic addressed to this computer (e.g. Media player on the laptop polling) would wake it.

Fix Logitech di Novo Keyboard won't let computer sleep

The beautiful Logitech di Novo Bluetooth Keyboard/Trackpad, when it's plugged into its charging stand, won't let my Windows 7 stay asleep - when it was on the charging stand, the computer would always wake up immediately.

A solution seems to be to disable the ability of the Keyboard and Trackpad to wake the computer from sleep - although this means that the keyboard's sleep button won't unsleep it:
  • Start, type 'Device Manager' and open it.
  • Find Keyboard / Logitech HID Compliant Keyboard and Mice... / Logitech HID-compliant Touch Pad Mouse 
  • Open each and go to the Power Management tab
  • Uncheck 'Allow this device to wake the computer from sleep'
PS: Did the keyboard one just go back to its original setting (enabled) by itself, or did I set it myself...?