SPDIF/HDMI Sound Keeper v1.0.2 [2017/12/23]

Prevents SPDIF/HDMI digital playback devices from falling asleep. Uses WASAPI, requires Windows 7+. To close the program, just mute the Sound Keeper in the Volume Mixer or simply kill the soundkeeper.exe process. If you don't like to run it manually after every system reboot, copy soundkeeper.exe to the startup subdirectory (to open it, press Win+R, enter "shell:startup", and press Enter).

Download: soundkeeper.zip (19KB). Source code →

Features

  • Sound Keeper is fully automatic and doesn't require any user interaction.
  • Sound Keeper can keep sound on many digital sound outputs simultaneously (e.g. SPDIF and HDMI).
  • Sound Keeper detects new digital sound outputs on the fly (e.g. when you connected TV via HDMI).

Sound Keeper vs. SPDIF Keep Alive vs. SPDIF-KA

Sound Keeper v1.0 SPDIF Keep Alive v1.2 SPDIF-KA v1.4
Fully automatic: Yes No No
Multiple outputs: Yes No No
GUI: No Yes Yes
Requires .NET: No Yes Yes
Executable size: 17KB 668KB 163KB
CPU usage (on Intel Core i5 4460): 0.004% 0.06% 0.06%
RAM usage (Private Working Set): 1636KB 13704KB 10600KB
  1. #1
    NK

    Excellent program! Unfortunately sending silense doesn't work with some receivers that treat it as end of stream. Is it possible to send inaudible wave instead like spdifka does?

  2. #2
    VEG Author

    NK, I plan to add this feature. But it should be optional, so I need to add GUI with possibility to select different modes for different outputs, and it requires some time to create. Currently, I have a lot of work at work, so I can't tell when I'll add this feature to this program.

  3. #3
    NK

    Right. Thank you for your work and for sharing!

  4. #4
    Freak*96

    Perfect Programm, looking for something like this since SoundSwitch v2 stoped working for me.
    I have a HDMI conection between my HTPC (with Mediaportal) and an AVR. Hope that this Programm fix the silent stream bug.

    BUt it only works until the first audio stream like TV starts, after the end of the stream Soundkeeper is still active but doesnt work anymore. Any Idea?

  5. #5
    VEG Author

    Freak*96, does it stop working after any sound from any program on your PC, or after some specific programs? Do you watch TV streams on your PC, or you just switch between TV and PC display modes of your TV? Can you try “SPDIF Keep Alive” and “SPDIF-KA” to check if they have the same problem? Please check them in different modes (Silence and Inaudible).

    Currently, Sound Keeper supports only the first mode (complete silence), but as it turned out some receivers require “inaudible” sound to prevent them from sleeping, so I plan to add this mode in the future (as an option). Maybe it is your case, at least partially.

  6. #6
    Freak*96

    Hey, thanks for the quick reply.
    It seems to stop after playing a Video File, tested it in VLC and MediaPortal.
    I watch TV streams on my PC with MediaPortal as a DVB Server.
    I also try SPDIF Keep Alive and SPDIF KA, same problem there with all different modes.

    I also tested a Browser Video like youtube, this works without a problem.

    I think it apperas if the AVR changed the streaming mode.

    In the past AVR Audio Guard did the trick for me but since Win 10 this app uses constantly 28% CPU Power.

  7. #7
    MG

    Also not working for me. SPDIF-KA works OK in both modes.

  8. #8
    KH

    Just a command line option for the inaudible wave would be enough. I honestly prefer how it is with no GUI. The fact that it doesn't even need a tray icon is awesome!

    I can use SPDIF-KA with inaudible sound option on but I need it on multiple outputs since it breaks when I switch my default output device around.

  9. #9
    Sebato

    Hi, if you are still developing this, could you maybe also include a dialogue for selecting the audio device? Currently your program chooses the windows default, but I have several audio devices in my PC (internal soundchip, AMD HDMI OUT etc.) and thus have to change the default device first and then run your program, then change it back again etc.

    I'm also in favour of adding options for different outputs (silence, inaudible sound).

    Thank you for your work.

  10. #10
    VEG Author

    Sebato, actually, it should detect all digital audio devices on your system and work for all of them.
    It's a surprise for me that some audio drivers are not satisfied with pure silence and require some inaudible sound. It's still in plans, and the program is not actively developed at the moment.

  11. #11
    Matias

    Thank you for this excellent program! Solved the annoying problem with ease.

  12. #12
    NanoPolymer

    Is it possible to use the tool for normal audio output? I have connected an analog 5.1 system which switches off after a few minutes without sound. With this tool you can currently only keep digital outputs active.

  13. #13
    Billy Blair

    Hi. I have an issue with Soundkeeper not working after running Kodi 17.6 on Windows 10 (v1803) Intel NUC i3. I have to force quit the soundkeeper process and restart it after exiting Kodi. I have Kodi using WASAPI for its audio so passthrough can work if that makes any difference? Let me know if need any more details.

  14. #14
    SuHeAndZl

    thank you!very good software!

  15. #15
    DornoDiosMio

    Thanks man, this is really great and perfectly solves the issues I was having with HDMI sound missing for the first couple seconds when playing a video or pausing the video for a bit.

    I don't use windows system sounds, so the issue wasn't too bad, but I was having an issue using LAV to decode all the DTS/DD and DD Atmos formats and then sending the LPCM data to AC3Filter. I prefer AC3 filter because it has better Dynamic Range Compression in my opinion. I also like it for a couple other reasons.

    Anyway, every now and then if I paused a video in MPC-HC and I started it again after a few minutes I would lose the center channel and all dialog. Then I'd have to switch to another video and back again to restore the center channel. It probably happens 1 out of 5 times when the AVR signal was lost.

    I haven't tested extensively yet, but windows system sounds work now (I tested them before install). So I'm pretty sure this is the answer to my problems.

    Thanks!

  16. #16
    DornoDiosMio

    There is a way to fix the problem without requiring the use of the SoundKeeper program. The primary reason to do this is so that you can enable the setting that allows programs to take exclusive control of your HD Audio Device. You can enable the setting with SoundKeeper running, but SoundKeeper may stop working when a program takes exclusive control of the HDA device.

    The fix involves changing three registry values to prevent the HDMI source device (your computer's GPU or Soundcard) from going into standby or low power mode.
    Once the device sends any type of sound, it will stay in that state until you reboot or shutdown the machine after you apply this fix. I set Windows 10 to have a startup sound so the device is initialized before signing in and continues to output a signal to my AVR indefinitely.

    If you use sleep instead of turning your machine off you may need a Windows sound upon wakeup. IF you don't have a startup sound the fix will still work fine, it will just miss (one time) the first 500ms of audio of the first sound sent to the AVR after reboot or sleep etc.

    https://forums.geforce.com/default/topic/1056949/geforce-drivers/silent-stream-bug-amp-hdmi-reverting-to-stereo-since-397-93/post/5850660/#5850660

    The link above is to a post made by the person whom originally discovered this fix. His link takes you to a MS website with generalized instructions on how to fix the issue. Refer to those instructions if mine are not clear enough. The M$ instructions don't specify how to identify the specific device, thus I wrote instructions below on how to do that and also how to complete the process.

    To perform the fix follow the instructions below:

    Open Regedit and copy this line into the 'address bar' at the top.

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\

    Next enter the device manager in Control Panel and open the "Nvidia High Definition Audio" device. If you have ATI or Intel or a soundcard with HDMI you would open their audio device in device manager instead.

    After you open the HDA device in device manager, click on the "Details" tab. Go down to the "Class guid" entry. Right click on the "Class guid" entry and copy it. Mine looks like this {4d36e96c-e325-11ce-bfc1-08002be10318} just to give you an idea of what you are looking for.

    Return to regedit and Ctrl+F to bring up the search prompt. Paste the "Class guid" entry into that field and search.

    This will take you to the appropriate registry entry for your device. At this point export the entire key and save it by clicking "File" in the top left corner, then "Export" and save the file. This is so you can revert any change if you mess up.

    Once at the correct key expand it and then expand the 0000 folder. Once the 0000 folder is expanded click on "power settings".

    You want to change the following three values in this 'folder' to "00 00 00 00". The values are ConservationIdleTime, IdlePowerState and PerformanceIdleTime. To edit the values right click on the name and select "modify". A window will pop up. You can hit delete once and then hit zero. That will change the first value to 00, which is likely the only one you need to change.

    Usually only the first pair of zeroes need to be changed, but you can just hit delete as many times as needed, then hit zero until you see "00 00 00 00" in the saved entry.

    Reboot your computer when convenient and the problem will be fixed.

    When your computer comes back online the first sound output will initialize your HD Audio Device and it will stay initiated and keep your AVR alive until you reboot or put the PC to sleep. When you turn the PC back on the process repeats where the first sound output will initialize the device and keep it on indefinitely.

    This isn't necessarily a better fix than SoundKeeper, it is merely an alternative one. So if you are confused by the instructions above just use SoundKeeper and don't give the issue another thought.

    This fix may be particularly helpful for those of you that for whatever reason are having difficulty getting SoundKeeper to fulfill its intended function. I can't state with certainty that this will work on AVR's that don't respond to a silent stream, such as the one SoundKeeper uses. My AVR doesn't have that issue, but this is probably worth a try because the fix can be easily reverted by importing a saved registry entry from before the changes were made.

    If anyone uses this fix on an AVR that drops audio with Soundkeeper please leave a comment and let us know whether it worked or failed to work.

    Lastly, I believe this issue is known by the developers but can't/won't be fixed because doing so would require the audio device to remain powered at all times which would likely cause it to fail certification for standby power usage limits. At least that is my theory, lol.

  17. #17
    DornoDiosMio

    To get directly to the registry key you need to change you can paste this entry into your regedit 'address bar'

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\YOUR CLASS GUID VALUE GOES HERE\0000\PowerSettings

    so for me it looks like the entry below.

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0000\PowerSettings