Prevents SPDIF/HDMI digital audio playback devices from sleeping. Uses WASAPI, requires Windows 7+.
To enable autorun, copy soundkeeper.exe into the startup directory (to open it, press Win+R, enter shell:startup, press Enter). To close the program, just mute the Sound Keeper in the Volume Mixer or kill the soundkeeper.exe process.
Download: soundkeeper.7z (23KB). Source code →
- 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).
- Default behavior can be changed by changing file name of the Sound Keeper executable.
- Primary audio output is used by default. Add All to executable file name to enable Sound Keeper on all 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).
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.
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.0||SPDIF Keep Alive v1.2||SPDIF-KA v1.4|
|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 don't go into sleep mode automatically. 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 →
Kinson, maybe you could try debug build, it should show something in the logs when you switch from 7.1 to 2.1 and back.
hi there, me again! ha.. got a new TV and along with it came new problems. I'm not entirely sure it's soundkeeper's problem though. I got an LG B2 so i can do 4k120, and everything works just fine for the most part. Using Atmos, when switching things to do with the video (switching to TV only, turning on/off HDR, etc) I lose audio. I can kill/restart soundkeeper and it comes back. But often when starting a game it will either enable HDR or switch resolutions, then i'm stuck with no audio in the game. switching out to kill/restart tends to cause havoc and loss of video signal.
I tried the debug version and it doesn't seem to cause any events when I make a change and the audio drops, so i'm not sure how helpful that would be.
I have tried different cables and different configurations between PC/AVR/TV and all exhibit the same issue. Reading up online there seems to be an Atmos/4k120 issue with the Geforce drivers from about a year ago and they claimed a fix was coming but here we are a year later and I'm still having the issue. Any thoughts or advice?
sneakytiki, sounds like buggy drivers that can't properly handle switching modes when there is an active audio stream. Sound Keeper itself shouldn't cause losing audio, it just plays silence and nothing else.
yeah i figured, soundkeeper is the only thing that fixes it (most of the time) with a kill/restart.. i'll dig through the geforce forums and see if i can find anything, thanks for a quick reply!
hey just to see if you see anything odd, here's a debug log after switching to TV only, having no sound, killing soundkeeper, then running the debug version.. that "unrecognized sample format" caught my attention.. sound works after running this
"Unrecognized sample format" is expected for all non-PCM output formats. Sound Keeper uses output format to choose the minimum possible amplitude of a fluctuation when Fluctuate stream is used, and all non-PCM formats are treated as at least 24-bit.
The log doesn't show any events after it started rendering. This is the problem. OS should notify the Sound Keeper that current stream is interrupted and needs to be restarted, but there is nothing about it. So most probably the driver just forgets to send related notifications. I don't log all possible WASAPI events (like "name of an output has changed") because it might be noisy, but I could add detailed tracing mode to log even such seemingly unrelated events just in case in the future.
I have an idea that might help though. WASAPI reports how many samples it consumed when Sound Keeper feeds it with fresh samples. When current stream in such "zombie" state, it might always report that it consumed 0 samples. If it is the case, I could use it as a trigger to restart the stream if it consumed 0 samples for longer than 1 second. But it is also possible that the system pretends that it consumes all the samples as expected. In this case this workaround won't help. We'll need to experiment a bit with this to figure out if it helps.
I'll make an experimental version later when I have more free time.
sneakytiki, I updated debug build. Please check if it helps.
so for this test i started with Dual monitors, Atmos on, start Sound Keeper, sound works. Then I switched to TV only, and the sound no longer works. the "new state" is when I switched to TV only.
So the system consumes all the samples as expected and the potential workaround didn't help. The latest event means that a device changed its state to "unplugged", but it's not the primary device that is used by Sound Keeper in this case, so Sound Keeper ignores it. You can check current status of all audio outputs in the Sound Control Panel, you should be able to see current primary (or default) playback device, unplugged devices, etc. All the changes there are reported by WASAPI to all audio applications including Sound Keeper.
I didn't add any new debug output into this build because I'm very skeptical that could show anything new. Maybe later.
BTW, if you want to restart Sound Keeper, you can just launch the exe file again. It stops previous instance automatically.
looked at the windows sound settings, TV is the default device, but there was another instance of the TV so i thought maybe it was disconnecting and switching to that one? tried disabling that, but no difference.. here's another log where i opened Sound Keeper, sound was working, opened a game, sound not working.. alt-tab'd out, in "advanced setup" click configure on the device, cancel, sound comes back at the 18:22 mark..
I don't see how I could help here. Maybe it will work normally if you just choose standard PCM output format instead of Dolby Atmos?
oh no problem, just thought there might be something to see in there that would be useful that you could decipher that i can't.. it works fine if i set it to 5.1 but Atmos sounds better and I would like to use it.. in fact, in 5.1 i don't get the silent stream bug like in Atmos which is why I use Sound Keeper to begin with.
It's probably an Nvidia driver problem so i'll see if i can get anyone on the geforce forums to respond at all, not having any luck so far.. thanks for your help though, your program has been essential thus far
sneakytiki, could you please check that running another instance of Sound Keeper correctly stops the previous instance at least and you don't need to kill it explicitly. If it helps, you could just put a Sound Keeper shortcut somewhere and run it whenever you encounter this issue.
yes, simply re-running sound keeper seems to fix the problem.. and i do have kill soundkeeper and run soundkeeper shortcuts, but it's nice to know i don't need to bother with the kill one.. hopefully i can get everything to play ball and if i have to alt tab out of a game every once in a while i'll be fine
the other issue i was having was alt tabbing was causing an unknown video signal and i'd end up with no display on either monitor, but that's a whole different issue that i feel is related to Nvidia drivers.. sometimes i could revert to my monitor using Ultramon, sometimes it wouldn't respond.. switching hardware tends to throw everything out of whack for a while, it all seems to be getting better.. thanks again for your help
I would like to know if this software helps Bluetooth speaker from auto turn off. I can’t find a solution this to problem.
Thank you in advance.
Alan, the only way to know is to try. If your speaker turns off when nothing is playing and doesn't turn off when something is playing, Sound Keeper should help, but default settings might not be sufficient. There are a lot of settings to play with, e.g. you can try SineF5A10 (a low frequency sine signal) or something else, look for details in the readme file.
Hi, does this process run/work when Windows is in "locked mode"?
I'm using this to prevent my HDMI soundbar from going into standby (unfortunately it frequently goes into standby), and it doesn't wake automatically. So I need to try to keep it on or else I'd have to press the on button manually to turn it back on from standby (just a stupid speaker..).
Anyway, I noticed that this does not work if I let my windows screen timeout to lock mode, my soundbar still shuts off.
Yes, it does.
Most probably it's because you connect your soundbar using HDMI that is disabled on screen timeout. In this case, you should either keep your screen always on (disable auto turn off) or connect the soundbar using some other non-display audio output type (e.g. S/PDIF if possible).
I found for my Vizio Atmos soundbar that the SoundKeeperSineF10A5.exe works best for the Dolby Access ATMOS audio going out to the Vizio ATMOS soundbar. It cuts delay for audio from about 6-10 seconds to about 1 second. It really works great.
molitar, did you try lower values, e.g. F5A1? Or F10A5 is the lowest that helps?
Hello. I have an LG C2 paired with a Sonos ARC, and although using your program has completely eliminated the very loud screeching that'd sometimes happen at random, it's only managed to improve the problem of audio popping/distortion, but not entirely eliminate it. Primarily, my main problem now is that after about 25-30 minutes of watching/playing something on my PC, the audio will get heavily distorted, almost like wind whipping through a partially open car window while you're driving on the highway, but then it usually manages to correct itself after about a minute or so and then the audio is fine again. That is until I turn the TV off and then back on again later, in which case the audio distortion will reappear after 25-30 minutes, and then resolve itself after a minute of heavy audio distortion. For the record, before I started using your program, this audio distortion wouldn't go away until I actually turned off Dolby Atmos itself and then re-enabled it. I've tried multiple settings, including SineF10A5, but unfortunately nothing eliminates this recurring distortion. Do you have any suggestions of what I could try next? Any help at all would be greatly appreciated.
Unfortunately, it doesn't sound like an issue that the Sound Keeper could resolve. It's either hardware or driver issue. If it goes away when you don't use Dolby Atmos, just don't use it ;)
Ah, I see. Thanks for your response. I happened to find your software through this particular post on reddit (https://www.reddit.com/r/pcgaming/comments/10xctmg/psa_if_you_have_issues_with_dolby_atmos_randomly/), and I guess I was hoping that by fiddling with the settings enough provided by your program, that it'd solve the issues I was having with Dolby Atmos completely, but I think it just comes down to the fact that Dolby Atmos itself is just really buggy and has inherent problems as far as random audio glitches are concerned. That being said, I just wanted to mention again that your program significantly improved the problem and works perfectly for me by keeping my soundbar from sleeping, since before that the audio glitching was much more frequent. It's still pretty random when the audio glitching occurs, since despite what I said in my first post, sometimes hours will go by until the audio starts glitching out, and in the worst case, it requires me to close whatever it is I'm doing and open it again, but after that the audio stays completely fine. Personally, despite its problems, I prefer Dolby Atmos over standard sound, so I guess I'll just have to accept the issues it's got until hopefully these bugs get ironed out at a later date.