Fix Windows Bluetooth Audio Lag (SoundKeeper)

AnkiWeb addon 1345112629

Runs SoundKeeper to play a zero stream, preventing Bluetooth headphones from sleeping and cutting off card audio while Anki is open.
AI-generated summary; may contain mistakes.

bugfix-workaround

Open on AnkiWeb GitHub Ask about alternatives

AnkiWeb

Rating
3 (πŸ‘ 3 Β· πŸ‘Ž 0)
Updated
2026-05-12
Anki versions
25.09.4~
Description language
en

Maintenance

active

  • Last update or commit was 109 days before the snapshot (2026-06-14).

GitHub

Repository
vrubleg/soundkeeper Β· more by vrubleg
Stars
⭐ 572 · forks 32 · open issues 7
Last commit
2026-06-14
License
MIT
Languages
C++, C#, Batchfile
Tests
0

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
25.09.4+2026-05-12
History across monthly snapshots

Loading…

Similar addons

Bluetooth Anti-Lag Add-on

Loops silent audio while Anki runs to keep Bluetooth headsets awake, preventing audio lag at the start of card playback.

bugfix-workaround

Rating 2 πŸ‘ 2 Β· πŸ‘Ž 0 Anki 2.1.16~ Updated 2023-06-19
Bluetooth Headset Audio Lag Fix

Plays a continuous silent audio track to keep Bluetooth headsets awake, preventing the one-second lag at the start of Anki card audio.

bugfix-workaround

Rating 12 πŸ‘ 6 Β· πŸ‘Ž 6 Updated 2019-03-28
Zzz (legacy) No Sound Fix (libmpv)

Plays audio and video through python-mpv on Windows after installation and restart, though it may freeze Anki when playing video while opening or closing the Add screen.

bugfix-workaround

Rating 12 πŸ‘ 11 Β· πŸ‘Ž 1 Anki 24.11~ Updated 2025-01-21

README

Sound Keeper v1.3.7 [2026/06/XX] https://veg.by/projects/soundkeeper/

Prevents SPDIF/HDMI digital audio playback devices from sleeping. Uses WASAPI, requires Windows 7+.

You need just one exe file (others can be removed):

  • SoundKeeper32.exe is for x86-32 Windows.
  • SoundKeeper64.exe is for x86-64 Windows.
  • SoundKeeperARM64.exe is for ARM64 Windows.

The program doesn't have a GUI. It starts to do its job right after the process is started. To close the program, just kill the SoundKeeper.exe process. To autorun, copy SoundKeeper.exe into the startup directory (to open it, press Win+R, enter "shell:startup").

Default behavior can be changed by adding settings to the Sound Keeper executable file name or by passing them as command line arguments. Setting names are case insensitive.

Supported device type settings:

  • "Primary" keeps on primary audio output only. 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.
  • "Marked" keeps on outputs that are marked with an exclamation mark "!" in their name. Just add "!" to desired outputs.

Supported stream type settings:

  • "OpenOnly" opens audio output, but doesn't play anything. Sometimes it helps.
  • "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).

Sine and noise stream parameters:

  • F is frequency. Default: 1Hz for Sine and 50Hz for Fluctuate. Applicable for: Fluctuate, Sine.
  • A is amplitude. 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.

Known issue: streaming audio prevents automatic sleep mode on Windows 11. To counter that, you can use these switches:

  • "SleepL" to make Sound Keeper sleeping when current user session is locked.
  • "SleepD" to make Sound Keeper sleeping when monitor is turned off.
  • "SleepLD" or "Sleepy" to make Sound Keeper sleeping in both cases.

Examples:

  • SoundKeeperZeroAll.exe generates zero amplitude stream on all enabled audio outputs.
  • SoundKeeperAll.exe generates default inaudible stream on all enabled audio outputs.
  • SoundKeeperSineF10A5.exe generates 10Hz sine wave with 5% amplitude on primary audio output. It is inaudible.
  • SoundKeeperSineF1000A15.exe generates 1000Hz sine wave with 15% amplitude. It is audible! Use it for testing.
  • "SoundKeeper.exe sine -f 1000 -a 15" is a command line version of the previous example.
  • "SoundKeeper.exe brown -a 0.1" (settings are command line arguments) generates brown noise with 0.1% amplitude.

What's new

v1.3.7 [2026/06/XX]:

  • An option to run Sound Keeper on explicitly marked (with "!") output devices only.

v1.3.6 [2026/06/08]:

  • Handle Windows 8+ suspend/resume events that should help to avoid battery drain during modern standby.
  • Optional sleep with user session lock or/and with display to counter the Windows 11 sleep issue.

v1.3.5 [2025/07/05]:

  • Handle ASIO exclusive mode by waiting until it ends, similar to WASAPI exclusive mode.

v1.3.4 [2024/09/15]:

  • Tune the Windows 8-10 WASAPI memory leak workaround to make it effective for longer time.
  • Native ARM64 version (with statically linked runtime hence the bigger binary).

v1.3.3 [2023/08/19]:

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

v1.3.2 [2023/08/18]:

  • "Fluctuate" treats 32-bit 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.

v1.3.1 [2023/01/30]:

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

v1.3.0 [2022/07/28]:

  • "Fluctuate" is 1 fluctuation per second by default. Frequency can be changed using the F parameter.
  • Periodic playing of a sine sound with optional fading.
  • "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).
  • The program is not confused anymore when PC auto sleep is disabled on Windows 10.

v1.2.2 [2022/05/15]:

  • Work as a dummy when no suitable devices found.
  • Sound Keeper shouldn't prevent PC from automatic going into sleep mode on Windows 10.

v1.2.1 [2021/11/05]:

  • Sound Keeper works on Windows 11.
  • The workaround that allowed PC to sleep had to be disabled on Windows 11.

v1.2.0 [2021/10/30]:

  • Sound Keeper doesn't prevent PC from automatic going into sleep mode on Windows 7.
  • New "Sine" stream type which can be useful for analog outputs or too smart digital outputs.
  • When a user starts a new Sound Keeper instance, the previous one is stopped automatically.
  • "Fluctuate" stream type considers sample format of the output (16/24/32-bit integer, and 32-bit float).
  • Command line arguments are supported. Example: "soundkeeper sine -f 1000 -a 10".
  • The workaround for the Audio Service memory leak is enabled on affected Windows versions only (8, 8.1, and 10).

v1.1.0 [2020/07/18]:

  • Default behavior can be changed by adding options to the Sound Keeper executable file name.
  • Primary audio output is used by default.
  • Inaudible stream is used by default.
  • Workaround for a Windows 10 bug which causes a memory leak in the Audio Service when audio output is busy.

v1.0.4 [2020/03/14]: Fixed a potential memory leak when another program uses audio output in exclusive mode. v1.0.3 [2019/07/14]: Exclusive mode doesn't prevent Sound Keeper from working. v1.0.2 [2017/12/23]: 64-bit version is added. v1.0.1 [2017/12/21]: Waking PC up after sleeping doesn't prevent Sound Keeper from working. v1.0.0 [2014/12/24]: Initial release.

(c) 2014-2026 Evgeny Vrublevsky me@veg.by