SPDIF/HDMI Sound Keeper v1.1.0 [2020/07/18]

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.7z (15KB). Source code →

Features

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

Settings

  • Default behavior can be changed by changing file name of the Sound Keeper executable.
  • Primary audio output is used by default. Add "All" or "Digital" to executable file name to enable Sound Keeper on all or digital only outputs.
  • Inaudible stream is used by default. Add "Zero" to executable file name to use stream of digital zeroes (like it was in v1.0.0).

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. #51
    lightstorm22

    Thank you so much @DornoDiosMio for the registry tweaks and @VEG for the software. I have a Denon AVR-891 and AMD 5350 HTPC and this has been driving me insane for months. One of the hardest things was finding the right thing to Google search and come across this. For me it was not just losing the first couple seconds of sound. Kodi would do that then be ok, but in things like YouTube (in Chrome) or VLC (via Remote Desktop) I would hear the first second or two, then lose audio completely until I refresh the page or restart my Remote Desktop session. You could see the receiver detect and lose the stream, I just didn't know that is because of a keep alive. It was infuriating, but I think one of these two solutions is going to work for me.

  2. #52
    Gaurav

    Hi. I need a version of SoundKeeper for Windows 95/98 for a similar problem in a VirtualBox VM on Windows 10 64-bit. Can you please compile it for these older OSes. Some older programs in a VM are a lot of fun with sound properly working.

  3. #53
    VEG Author

    Gaurav, it is not possible to build it for Windows 98. It uses WASAPI which appeared in Windows Vista.

  4. #54
    Taryngar

    I'm so grateful software like this exists to get around the issue of trying to use high-definition digital outputs instead of dealing with clunky analog cables to receivers. So thank you!

    Lately, I've been noticing that sometimes, either right when my computer starts, or when I bring it out of screen blank (not standby, since my computer never does that), my sound is gone. Stopping the soundkeeper process immediately restores the sound (but with the same wakeup delay that this program is designed to fix). If I restart the process, it works fine again. I am using optical S/PDIF from my motherboard, which is registering itself as a Realtek USB Audio device (kinda sad that an $800+ TRX40 motherboard would have use a simple USB audio bridge for this, but whatever, digital is digital).

    I see that there's some code that's newer than the 1.0.3 release to address background recovery of the soundkeeper process. Do you think any of this new code might be the solution to this problem? If not, I'd be happy to run some debugging to see what's actually causing it to lock up my sound device.

  5. #55
    joshuacant

    I can confirm what Taryngar is saying. Killing soundkeeper or disabling and re-enabling the audio device in the Sound control panel fixes the issue. My setup is HDMI to a Sony receiver.

  6. #56
    VEG Author

    Taryngar, joshuacant, please try this debug version:

    https://veg.by/files/z/SoundKeeper64d.7z

    It will display a console window with debug output. Reproduce the issue and tell what Sound Keeper outputs in the console window.

  7. #57
    Alex

    Hi,

    Chrome is flagging the zip file as potential malware and won't allow download. You should have a talk with them to avoid damage to your reputation :).

    Edge works fine.

  8. #58
    VEG Author

    Google doesn't accept complaints from small developers like me. Usually it takes some time for them to figure out that some new program is safe. Hope, it will be soon =)

  9. #59
    Taryngar

    Chrome's Safe Browsing system got a release that completely broke a lot of downloads for several hours on July 17th. It should have been fixed by the 20th, but I guess some computers might not update the Safe Browsing subsystem as quickly as others. I will note that I've downloaded the file in Chrome without issue before and after the recent bug. I just haven't been able to reproduce the issue (which means it may have been fixed by it restarting itself frequently).

    Here's the master Chromium bug for that issue, which has several other bugs merged into it due to how many people reported the impact: https://bugs.chromium.org/p/chromium/issues/detail?id=1106858#c1

    It was almost as bad as the Cloudflare failure that also happened on Friday and took out half the Internet for a couple of hours.

  10. #60
    Alex

    Still broken for me, can you update Safe Browsing system manually?

  11. #61
    VEG Author

    Google really considers it harmful and doesn't let you download the file normally. Firefox uses the same Google's Safe Browsing to detect suspicious downloads, so it doesn't let you download the file also. Sent them a request to review the file.

    It is hilarious that every tiny program is often considered as some suspicious software. I like to make tiny programs, and I encounter this prejudice quite often. If you make a 100MB monster, nobody will complain. But when your program is just 14KB, stupid AV software starts to claim that it is definitely a virus. But why? It is not that hard to make a 100MB virus.

  12. #62
    VEG Author

    They already rejected my request a few hours ago. I'm quite sure that the decision is done by a stupid bot and nobody actually read my request. It is not the first time I have to deal with Google. Recently, Google also removed Chrome version of my Pure URL extension because "the description is inaccurate", and they didn't care about my explanations that it is a mistake from their side.

    Google harms all small independent developers. When you see that somebody sets a password to an archive with their program, it is because of the Google. But I don't want to set passwords to archives with my software, it is just stupid. Will try to use 7z instead of zip.

  13. #63
    Pat

    Hi Veg, thank you for making such a useful and efficient program!
    Could you please update the source code with the code for the 1.1.0 version? I'd like to build it for myself.

    Thanks!

  14. #64
    VEG Author

    Pat, BitBucket sunsets support of Mercurial repositories. They already switched all my repos to read only mode, so I can't update it right now. The only unpublished part is parsing settings from executable file name. I plan to convert my repos to Git and to move them to GitHub later, so it will be published then.

  15. #65
    Dude Guyman

    "Default behavior can be changed by adding options to the Sound Keeper executable file name."
    Does this mean adding them to the shortcut target? If so what syntax? SoundKeeper64.exe -Digital? SoundKeeper64.exe /Digital?
    What about if I start soundkeeper via registry?

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    "SoundKeeper64"="C:\\Program Files\\apps\\SoundKeeper\\SoundKeeper64.exe -Digital"?

    Thanks.

  16. #66
    VEG Author

    Dude Guyman, just add it to the executable file name itself. For example: DigitalSoundKeeper64.exe. I know that it is a bit unusual, but it was the simplest thing I could do. Probably, in newer versions I'll make it reading settings from registry.

    But, you probably don't need to change the new default mode. By default, Sound Keeper works on current primary sound output. When you enable "Digital", it starts to work on all digital outputs (SPDIF/HDMI), as it was in the v1.0. When you enable "All", it starts to work on all outputs (even if they are detected as not digital). Usually, users need to keep current primary output only.

  17. #67
    VEG Author

    AV software were complaining a lot about 32-bit version of the program for some reason. Added standard runtime library to make executables a bit bigger. According to VirusTotal, it is much better now. I hope that it will help. Waiting when Google rescans the file.

  18. #68
    Taryngar

    It appears that my problems have been fixed by not using the terrible Realtek onboard audio device that comes on my ridiculously expensive TRX40 motherboard. Kinda sad that a literal top-of-the-line board has the digital audio dangling off the internal USB bus, but there you have it.

    Now I'm using an EVGA Nu Audio Pro board, and thus far I've had zero instances of the sound randomly deciding to go on vacation. I'll give it a bit more time to screw up before forgetting about SoundKeeper just running in the background doing its job.

    Thanks again for this program. It's going to continue being very helpful until I end up buying a $1500 receiver to handle 7.1 channels through analog.

  19. #69
    Halex

    I have a Marantz HD-DAC1 headphone amp and there's a relay that disables the output when no sound is playing. Not only is it annoying to hear but I fear that the relay will reach its end of life in no time. Your program works perfectly, thank you!

  20. #70
    fatguy666

    VEG, thank you very much for this. Not sure how I never seen it before as I'd seen posts from DornoDiosMio about the reg fix.

    Unfortunately, the reg fix wasn't doing anything for me. What I had been doing was setting one of the "recording" devices to "listen to this device" and having it output "silence" to my soundbar. Even then, sometimes the "playback through this device" would switch to "default playback device" and even though I only had one enabled playback device it just stopped the process.

    I can tell that this is working as the Dolby Home Theatre app is showing a flatline https://i.imgur.com/oCLLIZU.jpg

    Thanks again!

  21. #72
    HyuckJoon

    Thank you very much! Solved the annoying problem at once!

    My system is a Logitech Z-5500 and the sound card is Sound Blaster 5.1 V3!

  22. #73
    Link

    I'm not sure if you're able to help me on this one, it's quite specific:

    My setup consists of HDMI from the computer to a 4x2 HDMI Matrix - this Matrix has three outputs though, two of them output to monitors like a normal matrix with the third outputting a passthrough audio signal to AV receivers for sound only. This allows me to switch to audio sources of any of the inputs and display any combination to either screen.

    When running SoundKeeper, everything works perfectly as intended, but, as soon as I turn off the AV receiver, my virtual memory usage will go up by ~10MB per second. That might not seem like much when I have 16GB of RAM with a 24GB pagefile, but over the course of about 15-30 minutes, I'll be out of virtual memory with applications crashing and Windows grinding to a dead halt until I restart.

    If the AV receiver is either on or off, Windows will still see the monitor that it's connected to, it just doesn't know that it can no longer output sound to it when the AV receiver is off. To make matters worse, even after turning my AV receiver back on, it won't release that used up memory until I restart Windows - at least it'll stop using up the virtual memory from that point onwards.

    It took a while to narrow down that the issue is actually SoundKeeper. I initially came across this problem because I wanted to save a bit of power when the AV receiver isn't in use at all, but I was still using the computer itself. 50+ watts of idle power across a whole day starts to add up. So far, the workaround has been to either leave the AV receiver on or kill the SoundKeeper process.

    Do you have any suggestions or ideas on how to workaround this issue? or will I have to keep on killing the process?

    Thanks

  23. #74
    VEG Author

    Link, what version of the Sound Keeper do you use? What version of Windows do you have?

  24. #75
    Link

    @VEG, my apologies, I had an older version (1.0.4) - using 1.1.0 appears to fix the issue. It looks like I downloaded 1.0.4 back in late June when I needed to keep my audio device to stay awake and didn't update since then.

    For reference, I'm using Windows 10 Pro 1909.
    Sorry, that should have been the first thing to check. Thanks for the reply.

  25. #76
    VEG Author

    Link, actually, it is caused by a bug in Windows 10 (Windows 7 is not affected). I made an ugly workaround in the v1.1.0 to fix it.

    Waiting when Microsoft fixes the memory leak. I already reported it to the Windows developers, and hope that it will be fixed in the version 20H2. I'll remove the workaround after that moment.

  26. #77
    Jon Heal

    Microsoft Defender on Windows 10 2004 is saying the app contains this:

    Trojan:Win32/Spursint.F!cl

  27. #78
    VEG Author

    Apparently, it is a false-positive. AV software often considers small programs as suspicious.

  28. #79
    Martin_HM

    My findings with Foobar2000. Veg, if I'm wrong, please comment.
    Initialy, I couldn't get Soundkeeper to work in combination with Foobar and its original WASAPI component. This component requires Exclusive Control of the audio output. In result, I could see the Soundkeeper task running and I could also see it in the Mixer, but at every gap between two songs, SPDIF would switch off.
    I did get it working with the new SHARED WASAPI component, which Foobar offers since last year. Selecting WASAPI (shared) SPDIF as output device allows Soundkeeper to work perfectly.
    Thank you very much, Veg!