Sound Keeper v1.3.4 [2024/09/15]

Prevents SPDIF/HDMI/Bluetooth digital audio playback devices from sleeping. Uses WASAPI, requires Windows 7+. It doesn't have GUI and starts to do its job right after the program is started. To make it autorun, copy the soundkeeper.exe into the startup directory that you can access by pressing Win+R and entering shell:startup. To close the program, run the soundkeeper.exe kill command or just kill its process.

Download: soundkeeper.7z (90KB). Source code →

The archive contains a few builds (you can remove unused ones):

  • SoundKeeper64.exe is for x86-64 versions of Windows, most people need this version.
  • SoundKeeper32.exe is for x86-32 versions of Windows, if you have a very old PC with 32-bit Windows.
  • SoundKeeperARM64.exe is a native ARM64 build, if you have a new ARM based PC.

There is also a debug version that outputs all debug logs into a console window. Please provide the logs when you report issues.

Features

  • Sound Keeper is fully automatic and doesn't require any user interaction.
  • Supports keeping on multiple sound outputs (e.g. an SPDIF and an HDMI).
  • Detects new sound outputs on the fly (e.g. when you connected a TV via HDMI).
  • Supports various stream types that should help in all possible cases.

Settings

Default behavior can be changed by changing file name of the Sound Keeper executable (just add desired settings to the Sound Keeper file name) or by passing them as command line arguments. All settings are case insensitive.

Primary audio output is used by default. If current primary audio output has changed, the Sound Keeper detects this and switches to the new output automatically. If you want to run Sound Keeper on all enabled audio outputs, just add All to executable file name to enable Sound Keeper on all outputs.

All supported audio output type modes:

  • Primary keeps on primary audio output only. It is used by default.
  • All keeps on all enabled audio outputs.
  • Digital keeps on all enabled SPDIF and HDMI audio outputs (like it was in Sound Keeper v1.0).
  • Analog keeps on all enabled audio outputs except SPDIF and HDMI.

Inaudible stream of zeroes with infrequent smallest possible non-zero samples (fluctuations) is used by default. Add Zero to executable file name to use stream of zeroes only.

All supported stream types:

  • OpenOnly opens audio output, but doesn't stream anything. Sometimes it helps if it's a driver only issue.
  • Zero plays stream of zeroes. It may be not enough for some hardware.
  • Fluctuate plays stream of zeroes with the smallest non-zero samples once in a second. Used by default.
  • Sine plays 1Hz sine wave at 1% volume. The frequency and amplitude can be changed. Useful for analog outputs.
  • White, Brown, or Pink play named noise, with the same parameters as the sine (except frequency).

If the default inaudible stream doesn't help, try the new Sine stream type. It generates a sine wave, and can be customized. There are two parameters: F (frequency) and A (amplitude). The value goes right after the parameter character. For example, add SineF10A5 to executable file name to generate 10Hz sine wave with 5% amplitude. Low frequencies (below 20Hz) and high frequencies (above 20000Hz) with low amplitude (up to 10%) are inaudible.

Stream parameters:

  • F is frequency. Default: 1Hz for Sine and 50Hz for Fluctuate. Applicable for: Fluctuate, Sine.
  • A is amplitude (i.e. volume). Default: 1%. If you want to use inaudible noise, set it to 0.1%. Applicable for: Sine, Noise.
  • L is length of sound (in seconds). Default: infinite.
  • W is waiting time between sounds if L is set. Use to enable periodic sound.
  • T is transition or fading time. Default: 0.1 second. Applicable for: Sine, Noise.

Examples:

  • SoundKeeperAll.exe generates default inaudible stream on all enabled audio outputs.
  • SoundKeeperZero.exe generates zero stream on primary audio output.
  • SoundKeeperAllZero.exe generates zero amplitude stream on all enabled audio outputs.
  • SoundKeeperSineF10A5.exe generates 10Hz sine wave with 5% amplitude on primary audio output. It is inaudible.
  • SoundKeeperSineF1000A100.exe generates 1000Hz sine wave with 100% amplitude. It is audible! Use it for testing.
  • SoundKeeper.exe sine -f 1000 -a 100 is command line version of the previous example.
  • SoundKeeper.exe brown -a 0.1 generates brown noise with 0.1% amplitude.

What's new in v1.3.4

  • Tune the Windows 8-10 WASAPI memory leak workaround to make it working for longer time.
  • Native ARM64 build (with statically linked runtime hence the bigger binary).
  • [2024/11/12] Added digital signature.

What's new in v1.3.3

  • Fixed arguments parsing bug: All or Analog after specifying stream type led to amplitude set to 0.

What's new in v1.3.2

  • Fluctuate treats 32-bit PCM output format as 24-bit since WASAPI reports 24-bit as 32-bit for some reason.
  • Fluctuate generates 50 fluctuations per second by default. It helps in many more cases.
  • Sound Keeper doesn't exit when it is muted.

What's new in v1.3.1

  • A potential deadlock when audio devices are being added or removed has been fixed.
  • Fluctuate treats non-PCM output formats (like Dolby Atmos) as 24-bit instead of 16-bit.
  • Frequency parameter F is limited by half of current sample rate to avoid generation of unexpected noise.
  • More detailed logs in debug build. Debug output is flushed immediately, so it can be redirected to a file.

What's new in v1.3.0

  • Fluctuate is 1 fluctuation per second by default. Frequency can be changed using the F parameter.
  • Periodic playing of a sound (parameters L and W) with optional fading (parameter T).
  • New White, Brown, and Pink noise signal types.
  • Self kill command is added. Run soundkeeper kill to stop running Sound Keeper instance.
  • Analog switch was added. It works as the opposite of Digital.
  • Ignores remote desktop audio device (this feature can be disabled using the Remote switch).
  • New OpenOnly mode that just opens audio output, but doesn't stream anything.
  • New NoSleep switch which disables PC sleep detection (Windows 7-10).
  • Work as a dummy when no suitable devices found.
  • Sound Keeper shouldn't prevent PC from automatic going into sleep mode on Windows 10.
  • The program is not confused anymore when PC auto sleep is disabled on Windows 10.
  • The workaround that allowed PC to auto sleep had to be disabled on Windows 11.

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

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

Known issue: streaming audio prevents automatic sleep mode

When a program streams any audio (even silence), the system doesn't go into sleep mode automatically after specified time of inactivity. Sound Keeper uses the NtPowerInformation(SystemPowerInformation, ...) function to retrieve time when system is going to sleep, and disables itself right before this time. On Windows 7, it works perfectly. Windows 10 waits for 2 minutes more after any sound was streamed, so the PC goes into sleep mode after 2 minutes when Sound Keeper disabled itself. For some reason, Windows 11 always reports that the system is going to sleep in 0 seconds. So, the workaround had to be disabled on this OS until a better solution is found. You can try to use the powercfg to workaround this issue at the system level. Details →

  1. #451
    Dave J

    Hello. Just wanted to check in and say it's been working pretty well so far after a few days. No issues whatsoever. Resource utilization in the Task Manager is usually below 0.1% which is basically nothing.

    I was thinking maybe the unsigned executable was because the install indicated the publisher didn't sign it. Thanks for the clarification.

    Thank you for the update!

  2. #452
    VEG Author

    The publisher is me and I didn't sign it because I don't have a code signing certificate. I consider it too expensive for just a hobby project (more than 100€ per year).

  3. #453
    VEG Author

    Sound Keeper v1.3.4

    • Tune the Windows 8-10 WASAPI memory leak workaround to make it working for longer time.
    • Native ARM64 build (with statically linked runtime hence the bigger binary).
  4. #454
    Tob

    I just cant make it work, HDMI to DENON AVR A100, lyps syncro, on/off... ARC... nothing. Maybe INTEL UHD770 is problematic? any ideas? thanks!

  5. #455
    VEG Author

    What modes of Sound Keeper did you try?

  6. #456
    Tob

    default 64bit, foobar, powerdvd... same thing, there is no silence, but sound starts white 1-2 second less.

  7. #457
    VEG Author

    Did you actually read this page? It explains how to configure Sound Keeper for your case. For example, try to rename the file to SoundKeeperSineF1A1.exe or SoundKeeperSineF10A5.exe and then run it in this new mode.

  8. #458
    Tob

    Yes, I just already read, changed the name of 64 bit version to 3 different names and no luck.

    Maybe because it's a DP to HDMI cable? anyone has tested?

  9. #459
    VEG Author

    Probably, it's a non-primary audio output device? If you use SineF1000A10, do you hear the 1000Hz sine sound on that device? If not, you might need to add All to the Sound Keeper file name to enable it on all audio outputs (or make it primary).

  10. #460
    GregMo

    If anyone else comes across this app that also has the Monster X6 PA speaker system, the best options I can come up with is SoundKeeperSineF1A100L6W870.exe. Bear in mind, you have to have your computer volume up a tad or this won't work. With my setup, I had to have the computer volume at 10%. Tried everything with the computer volume at 6% and it wasn't enough to keep the speaker alive. I definitely recommend playing with length(L) of the sound and your computer's volume level as YMMV.

  11. #461
    naburu

    Thank u so much my bro, this fix my problem after im trying to much and reinstall my windows :')

  12. #462
    ABC

    PLEASE! I need a setting that I can't hear but avoid my Creative T40 speaker go to sleep. Thanks in advance

  13. #463
    VEG Author

    ABC, I'm quite sure that you can achieve this with existing settings. Just play with values a little bit until you find something suitable.

  14. #464
    ABC

    Thanks "VEG" for your reply, but I have tried many different settings and still my Creative T40 speaker go to sleep the blue light on the speaker shut-off.

  15. #465
    VEG Author

    Does it stay awake when you use audible SineF1000A10?

  16. #466
    ExcessiveGBH

    Your program works but have slight buzzing sound on idle. Denon AVC A1H 7.1.4.
    Probably need to use - "Zero" plays stream of zeroes. It may be not enough for some hardware (to see if this works).
    Not sure how implement it, tried making short cut but must have the sting wrong or is this completely wrong what I'm doing?
    Do you have an example of the config?
    My work around for now is to have small video paused minimized to task bar so as not to revert back Multi channel. If I don't do this, I will have horrendous
    static through all speakers because when starting a game or even YouTube Dolby Access does not take affect most of the time.

  17. #467
    ExcessiveGBH

    Your program works but have slight buzzing sound on idle. Denon AVC A1H 7.1.4.
    Probably need to use - "Zero" plays stream of zeroes. It may be not enough for some hardware (to see if this works).
    Not sure how implement it, tried making short cut but must have the sting wrong or is this completely wrong what I'm doing?
    Do you have an example of the config?
    My work around for now is to have small video paused minimized to task bar so as not to revert back Multi channel. If I don't do this, I will have horrendous
    static through all speakers because when starting a game or even YouTube Dolby Access does not take affect most of the time.

    Ok found out the Zero needs to be before exe not after.
    This so far has stopped the slightly buzzing sound on idle.

  18. #468
    ABC

    Yes "VEG", stays awake when I use SineF1000A10, but I can hear the sound.

  19. #469
    VEG Author

    ExcessiveGBH, yes, it should be SoundKeeperZero.exe.

    ABC, it's just for testing, that's the point of the audible sine. If you can hear it, it means that Sound Keeper actually does something; and if it keeps your audio device awake, it means that you can try to find an inaudible signal that will still keep your audio device awake.

    Try to find the lowest values that still work, e.g. SineF10A5.

  20. #470
    ABC

    VEG, I tried SineF10A5 but still go to sleep mode. Maybe you can create one setting that only make a sound every 5 or 10 minutes?

  21. #471
    VEG Author

    ABC, there are already such settings that allow you to specify a periodic sound. You just need to find the lowest F and A that produce a signal that still works for you, and then make it periodic if you wish (L and W parameters).

    So, try SineF10A5, SineF10A10, SineF15A5, SineF15A10, SineF20A5, SineF20A10, SineF25A5, SineF25A10, etc. (just try to slowly increase both numbers) until you find the lowest value that keeps your audio device awake. You can also try brown noise BrownA5 or BrownA10. And when you have the lowest working signal, post it here, and I'll help you make it periodic so it's generated for a few seconds once in 10 minutes.

  22. #472
    ExcessiveGBH

    Thanks for the program.
    Have a very expensive home cinema set up Denon AVC AH1 7.1.4 with Triad speakers BUT Dolby Access (using for gamming) was causing big issues and they never replied to my problem, even though they said they would TWICE!
    Could plug HMDI into Denon directly but the amp is only VRR but not G-sync compatible. This causes big issues like turning off G-sync via LG Oled Game Optimizer overlay will result in loss of signal display on screen.
    Have donated.

  23. #473
    ABC

    VEG,
    I finally found the perfect settings (see below) for my Creative T40 speakers. With your software and your help, my speakers don't go to standby anymore.

    Thank You!!

    SoundKeeperSineF35A15L1W600

  24. #474
    Shreve

    Hi,

    I have my Nvidia card routed through my LG TV EARC to a Denon Receiver. Works flawlessly for 7.1 LPCM sound. If I switch it to spatial sound like Dolby Atmos and DTS:X, games work perfectly.

    BUT>>>>>

    Randomly (a Few times per day) if I open up a web browser like chrome or a youtube video, I will get a lound screaching / electronic noise out of my speakers. It wont stop unless I turn the receiver or TV off.

    This never happens if 7.1 LPCM sound is enabled. Only happens (occasionally) with ATMOS and DTS:X

    Anyone else experience this? If so, does this software "sound keeper" help prevent it?

  25. #475
    VEG Author

    I don't think that Sound Keeper can help in your case, it sounds more like a serious hardware or audio driver issue. Why you can't just use 7.1 LPCM if it works fine?

  26. #476
    Shreve

    Funny enough. I have replicated this on various LG TV's, Using a 4090 and a 3080 TI both with a Denon Receiver and a soundbar. Different installs of windows etc... Super frustrating

    I do use 7.1 LPCM most of the time and upmix it on the Denon, but I hava a 7.4.2 system and when the game is optimized for spatial audio via Atmos and DTS:X, it's super cool getting the true height speaker effects.

    So what I do now is go through the annoying task of going into the control panel and turning ATMOS on or off depending on whether I'm playing an important game or not.

  27. #477
    Shreve

    Three days in a row, and I haven’t experienced that annoying issue since I started using Sound Keeper! Thank you!

  28. #478
    VEG Author

    🎉🎉🎉

  29. #479
    VEG Author

    Added a digital signature to the latest build to make Windows Defender happier. It increased file size of every exe file by 15KB, but it should help to reduce annoying Smart Screen warnings that people were complaining about sometimes.

  30. #480
    ExcessiveGBH

    Shreve,
    Hi, have almost the same set up
    LGC1 77 Denon AVC A1H 7.1.4 using e-ARC
    I get the exact same issue! It's fucking a horrendous sound thought I was going to blow my speakers.
    Don't worry about sending the bug to Dolby, they don't reply. Tried twice.

    The only solution it the make Sound Keeper exe as this "SoundKeeperZero.exe" without quotes.
    If you don't have the zero in there will hear slight buzzing sound in speakers.

    Paste "SoundKeeperZero.exe" into C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup or past this into RUN shell:startup.

    On YouTube occasionally I get sound drops outs. It seems to happen if I move mouse or a popup on the YouTube video BUT cannot repeat it 100% of time, it's just random. All other sounds Movies and Games have no issues.

  31. #481
    ExcessiveGBH

    Shreve,
    If you also want other tips on how I set up my PC to AMP. Have done stuff with a simple remote HDMI switch but not in the conventional way it was how you would set it up. As my LGC1 does not support DTS Neural:X, DTS Virtual:X, and DTS:X on Pass Through I think all latter models do.

  32. #482
    fallendaemon

    Thank you immensely for this bit of code. I have been having continuous problems with my Samsung Soundbar disconnecting when there is not audio paying for several minutes. If I wanted to start watching a movie or listen to music after a period of time, I would have to reconnect the Bluetooth device every time in settings. With this program, I no longer have to do that. Using your program in its basic as-installed setup mode, my Samsung Soundbar stays connected always with no ill effects to my system. Again, many thanks for your work here!

Comments are temporarily closed. Refresh this page in a minute.