SPDIF/HDMI Sound Keeper v1.2.2 [2022/05/15]

Программа предотвращает засыпание цифровых аудиовыходов SPDIF и HDMI при отсутствии сигнала, и таким образом решает проблему обрезки начала звука при начале воспроизведения, которая вызвана тем, что звуковому тракту требуется небольшое время на пробуждение. Если у вас нет такой проблемы — значит драйвер аудиокарты не отправляет аудиотракт в сон при остановке воспроизведения. Если же проблема имеет место — Sound Keeper решит проблему непрерывным воспроизведением тишины.

Скачать: soundkeeper.7z (17КБ). Исходный код →

Особенности

Sound Keeper работает через WASAPI на Windows 7 и новее. Программа написана на C++, без использования тяжёлых фреймворков вроде .NET, поэтому она очень легковесна и расходует минимум памяти.

Sound Keeper внешне никак себя не проявляет и работает полностью автоматически: находит все цифровые выходы (SPDIF или HDMI) и предотвращает их засыпание. Если во время работы программы появится новый цифровой выход (например, если вы подключили компьютер по HDMI к телевизору) — это будет корректно обработано, перезапуск программы не требуется. Для отключения Sound Keeper вы должны либо выключить звук в микшере для этой программы (после чего Sound Keeper автоматически закроется), либо просто убить процесс soundkeeper.exe. Для автоматической загрузки программы вместе с системой просто скопируйте исполняемый файл soundkeeper.exe в каталог Автозагрузка (чтобы открыть его, нажмите Win+R, введите "shell:startup" и нажмите Enter).

Настройки

  • Поведение по умолчанию может быть изменено добавлением опций к имени исполняемого файла.
  • По умолчанию используется основной аудио выход. Добавьте "All" к имени исполняемого файла программы для включения Sound Keeper на всех аудио выходах.
  • По умолчанию используется неслышимый сигнал. Добавьте "Zero" к имени исполняемого файла чтобы использовать поток нулей в качестве сигнала (как это было в Sound Keeper v1.0).

Если режим по умолчанию не помогает, попробуйте новый тип потока "Sine". Он генерирует синусоиду, и может быть настроен. Имеется два параметра: F (частота) и A (амплитуда). Значение параметра идёт сразу за символом параметра. Например, добавьте "SineF10A5" к имени исполняемого файла для генерации синусоиды 10Hz с амплитудой 5%. Низкие частоты (ниже 20Hz) и высокие частоты (выше 20000Hz) с низкой амплитудой (до 10%) являются неслышимыми.

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

Sound Keeper v1.0 SPDIF Keep Alive v1.2 SPDIF-KA v1.4
Полный автомат: Да Нет Нет
Поддержка нескольких выходов: Да Нет Нет
Графический интерфейс: Нет Есть Есть
Требует .NET: Нет Требует Требует
Объём EXE-файла: 17КБ 668КБ 163КБ
Расход CPU (на Intel Core i5 4460): 0.004% 0.06% 0.06%
Расход RAM (Private Working Set): 1636КБ 13704КБ 10600КБ

Ссылки

  1. #51
    Алексей

    Спасибо за ответ. Сначала искал командные аргументы, оказалось все куда проще, чеерез имя файла.

    Поигрался с настройкой, оказалось что слышу независимо от частоты.
    Видимо какой то гремлин в Windows, ибо на громкость этого звука влияет именно громкость в микшере для SoundKeeper

  2. #52
    VEG Автор

    Алексей, странно. Loudness Equalization в настройках аудиовыхода выключен? Оно должно быть на вкладке Enhancements (Улучшения) в свойствах аудиовыхода.

  3. #53
    Алексей

    VEG, вкладки Enhancements вообще нет для этого устройства, проверил по вашему совету раньше.

  4. #54
    VEG Автор

    Алексей, а в режиме Zero проблема тоже проявляется?

  5. #55
    Алексей

    VEG, в случае с Zero к сожалению SoundKeeper перестает "работать". Звуковое устройство засыпает, и появляются тихие щелчки при старте/остановке звука в приложениях. Собственно то, что я им и решаю :)

  6. #56
    Sound Keeper 123

    Здравствуйте!
    Объясните пожалуйста как сделать, чтобы Sound Keeper не мешал уходить ПК на Windows 10 в сон? Пробовал разные комбинации в переименовывании exe файла. Никак не решить проблему. Если Sound Keeper запущен, то ПК в сон не уходит.

  7. #57
    VEG Автор

    Sound Keeper 123, убедитесь, что у вас последняя версия Sound Keeper. На Windows 10 в сон должно уходить нормально.

    Причина в том, что Windows отключает автоматический переход в режим сна, когда любая программа воспроизводит какой-то звук (даже если это тишина). Для Windows 7-10 нашёлся способ это обойти, но он не работает в Windows 11 (так как там сломана функция, которая сообщает, сколько осталось до сна). Если у вас Windows 10, то на последней версии Sound Keeper v1.2 автоматический переход в режим сна должен работать.

  8. #58
    Sound Keeper 123

    Windows 10 Домашняя x64 21H2
    Sound Keeper 1.2.1
    Порядок действий:
    Скачиваю Sound Keeper. Переименовываю SoundKeeper64.exe в DigitalSoundKeeper64.exe (требуется чтобы не засыпал SPDIF).
    Добавляю ярлык в автозагрузку через run -> shell:startup
    Как я не пробовал... Не уходит в сон ПК.
    Список запущенных процессов:

    €¬п ®Ўа §                      PID €¬п бҐббЁЁ          ь ᥠ­б        Џ ¬пвм
    ========================= ======== ================ =========== ============
    System Idle Process              0 Services                   0         8 ЉЃ
    System                           4 Services                   0     2я836 ЉЃ
    Registry                       172 Services                   0    85я176 ЉЃ
    smss.exe                       624 Services                   0     1я216 ЉЃ
    csrss.exe                      860 Services                   0     5я772 ЉЃ
    wininit.exe                    836 Services                   0     6я952 ЉЃ
    csrss.exe                      808 Console                    1     5я832 ЉЃ
    services.exe                   960 Services                   0    10я680 ЉЃ
    lsass.exe                      972 Services                   0    19я996 ЉЃ
    winlogon.exe                  1040 Console                    1     9я768 ЉЃ
    svchost.exe                   1160 Services                   0    25я764 ЉЃ
    fontdrvhost.exe               1188 Services                   0     3я368 ЉЃ
    fontdrvhost.exe               1192 Console                    1     8я732 ЉЃ
    svchost.exe                   1276 Services                   0    14я396 ЉЃ
    svchost.exe                   1332 Services                   0     8я380 ЉЃ
    dwm.exe                       1404 Console                    1    76я208 ЉЃ
    svchost.exe                   1580 Services                   0    15я924 ЉЃ
    svchost.exe                   1600 Services                   0    17я444 ЉЃ
    svchost.exe                   1640 Services                   0     6я288 ЉЃ
    svchost.exe                   1708 Services                   0    14я184 ЉЃ
    svchost.exe                   1716 Services                   0    10я152 ЉЃ
    svchost.exe                   1724 Services                   0    11я564 ЉЃ
    svchost.exe                   1812 Services                   0     8я336 ЉЃ
    svchost.exe                   1820 Services                   0    11я872 ЉЃ
    svchost.exe                   1896 Services                   0     9я844 ЉЃ
    svchost.exe                   1924 Services                   0     6я548 ЉЃ
    svchost.exe                   1928 Services                   0     7я744 ЉЃ
    svchost.exe                   2056 Services                   0    12я668 ЉЃ
    svchost.exe                   2136 Services                   0     6я916 ЉЃ
    NVDisplay.Container.exe       2192 Services                   0    20я268 ЉЃ
    svchost.exe                   2204 Services                   0     9я508 ЉЃ
    svchost.exe                   2316 Services                   0     5я784 ЉЃ
    svchost.exe                   2324 Services                   0    13я988 ЉЃ
    svchost.exe                   2332 Services                   0     7я696 ЉЃ
    Memory Compression            2460 Services                   0     1я292 ЉЃ
    svchost.exe                   2504 Services                   0     8я196 ЉЃ
    svchost.exe                   2536 Services                   0     9я112 ЉЃ
    svchost.exe                   2572 Services                   0     8я416 ЉЃ
    svchost.exe                   2580 Services                   0     9я208 ЉЃ
    svchost.exe                   2688 Services                   0     9я108 ЉЃ
    NVDisplay.Container.exe       2900 Console                    1    54я252 ЉЃ
    svchost.exe                   2928 Services                   0    20я160 ЉЃ
    svchost.exe                   3212 Services                   0     8я628 ЉЃ
    svchost.exe                   3300 Services                   0    21я292 ЉЃ
    svchost.exe                   3432 Services                   0    17я688 ЉЃ
    svchost.exe                   3440 Services                   0     7я000 ЉЃ
    svchost.exe                   3448 Services                   0    10я260 ЉЃ
    svchost.exe                   3592 Services                   0    19я528 ЉЃ
    svchost.exe                   3660 Services                   0    13я704 ЉЃ
    wlanext.exe                   3744 Services                   0     7я756 ЉЃ
    conhost.exe                   3764 Services                   0    10я100 ЉЃ
    spoolsv.exe                   3772 Services                   0    15я580 ЉЃ
    svchost.exe                   3952 Services                   0    19я060 ЉЃ
    svchost.exe                   3996 Services                   0     7я800 ЉЃ
    svchost.exe                   4128 Services                   0     8я132 ЉЃ
    svchost.exe                   4136 Services                   0     7я336 ЉЃ
    svchost.exe                   4172 Services                   0     9я156 ЉЃ
    svchost.exe                   4348 Services                   0    30я968 ЉЃ
    svchost.exe                   4356 Services                   0    13я512 ЉЃ
    svchost.exe                   4368 Services                   0    10я488 ЉЃ
    DtsApo4Service.exe            4376 Services                   0    16я532 ЉЃ
    svchost.exe                   4384 Services                   0     7я212 ЉЃ
    AdjustService.exe             4396 Services                   0    15я088 ЉЃ
    GigabyteUpdateService.exe     4404 Services                   0    13я208 ЉЃ
    svchost.exe                   4420 Services                   0     6я804 ЉЃ
    svchost.exe                   4428 Services                   0    19я532 ЉЃ
    svchost.exe                   4436 Services                   0     5я768 ЉЃ
    nvcontainer.exe               4452 Services                   0    38я168 ЉЃ
    RtkAudUService64.exe          4476 Services                   0    11я788 ЉЃ
    service_update.exe            4484 Services                   0     8я608 ЉЃ
    WMIRegistrationService.ex     4496 Services                   0    12я548 ЉЃ
    LMS.exe                       4596 Services                   0     9я532 ЉЃ
    svchost.exe                   4892 Services                   0     5я592 ЉЃ
    jhi_service.exe               4944 Services                   0     6я412 ЉЃ
    service_update.exe            4956 Services                   0     7я116 ЉЃ
    svchost.exe                   4968 Services                   0    12я140 ЉЃ
    rundll32.exe                  5700 Console                    1     7я476 ЉЃ
    sihost.exe                    6140 Console                    1    29я116 ЉЃ
    svchost.exe                   4340 Console                    1    24я972 ЉЃ
    svchost.exe                   4304 Console                    1    33я172 ЉЃ
    taskhostw.exe                 5880 Console                    1    17я212 ЉЃ
    MSIAfterburner.exe            2992 Console                    1     6я660 ЉЃ
    svchost.exe                   6196 Services                   0     8я084 ЉЃ
    svchost.exe                   6224 Services                   0    19я688 ЉЃ
    ctfmon.exe                    6248 Console                    1    20я988 ЉЃ
    explorer.exe                  6472 Console                    1   170я872 ЉЃ
    svchost.exe                   6532 Services                   0    18я240 ЉЃ
    nvcontainer.exe               6956 Console                    1    29я560 ЉЃ
    nvcontainer.exe               6980 Console                    1    60я640 ЉЃ
    svchost.exe                   7020 Console                    1    23я512 ЉЃ
    svchost.exe                   7452 Services                   0     5я580 ЉЃ
    StartMenuExperienceHost.e     7652 Console                    1    74я300 ЉЃ
    RuntimeBroker.exe             8160 Console                    1    26я900 ЉЃ
    SearchApp.exe                 8372 Console                    1   201я488 ЉЃ
    SearchIndexer.exe             8396 Services                   0    37я072 ЉЃ
    RuntimeBroker.exe             8540 Console                    1    39я792 ЉЃ
    TextInputHost.exe             9312 Console                    1    49я848 ЉЃ
    NVIDIA Web Helper.exe         8952 Console                    1    12я696 ЉЃ
    conhost.exe                   5652 Console                    1       656 ЉЃ
    svchost.exe                   6156 Services                   0     6я032 ЉЃ
    svchost.exe                  10492 Services                   0    21я432 ЉЃ
    SettingSyncHost.exe           9668 Console                    1     4я980 ЉЃ
    RTSS.exe                     10332 Console                    1     2я228 ЉЃ
    EncoderServer.exe            11328 Console                    1     1я116 ЉЃ
    RTSSHooksLoader64.exe        11416 Console                    1       860 ЉЃ
    nvsphelper64.exe             11628 Console                    1    14я184 ЉЃ
    NVIDIA Share.exe             11648 Console                    1    62я880 ЉЃ
    NVIDIA Share.exe             11980 Console                    1    36я576 ЉЃ
    NVIDIA Share.exe             11620 Console                    1    79я772 ЉЃ
    steam.exe                    11592 Console                    1   109я940 ЉЃ
    svchost.exe                  11404 Services                   0     9я704 ЉЃ
    steamwebhelper.exe           12580 Console                    1   211я796 ЉЃ
    steamservice.exe             12776 Services                   0    12я332 ЉЃ
    steamwebhelper.exe           12816 Console                    1    14я912 ЉЃ
    steamwebhelper.exe           12920 Console                    1   119я364 ЉЃ
    steamwebhelper.exe           13124 Console                    1    28я640 ЉЃ
    audiodg.exe                  13244 Services                   0    39я560 ЉЃ
    steamwebhelper.exe           12952 Console                    1   124я136 ЉЃ
    steamwebhelper.exe           12944 Console                    1    46я796 ЉЃ
    steamwebhelper.exe           13284 Console                    1   114я456 ЉЃ
    RuntimeBroker.exe            13492 Console                    1    16я548 ЉЃ
    RtkAudUService64.exe         14004 Console                    1    15я248 ЉЃ
    Twinkle Tray.exe             13724 Console                    1    77я872 ЉЃ
    Twinkle Tray.exe             14128 Console                    1    37я540 ЉЃ
    Twinkle Tray.exe             14256 Console                    1    77я392 ЉЃ
    Twinkle Tray.exe             13432 Console                    1    36я548 ЉЃ
    Twinkle Tray.exe             13684 Console                    1    62я024 ЉЃ
    dllhost.exe                  14816 Console                    1    13я764 ЉЃ
    ApplicationFrameHost.exe     15004 Console                    1    30я508 ЉЃ
    svchost.exe                  12012 Services                   0    11я552 ЉЃ
    ShellExperienceHost.exe       4320 Console                    1    74я120 ЉЃ
    svchost.exe                  11688 Console                    1    20я468 ЉЃ
    SgrmBroker.exe                4612 Services                   0     7я884 ЉЃ
    svchost.exe                  10732 Services                   0    11я884 ЉЃ
    svchost.exe                   8052 Services                   0     9я652 ЉЃ
    svchost.exe                  11584 Services                   0    11я600 ЉЃ
    SecurityHealthService.exe    14020 Services                   0    16я376 ЉЃ
    WmiPrvSE.exe                 10692 Services                   0    11я104 ЉЃ
    svchost.exe                  14312 Services                   0     8я168 ЉЃ
    taskhostw.exe                10052 Console                    1    17я676 ЉЃ
    svchost.exe                   7984 Services                   0     8я780 ЉЃ
    svchost.exe                   9912 Services                   0    17я028 ЉЃ
    dllhost.exe                  14332 Services                   0     8я396 ЉЃ
    RuntimeBroker.exe             1292 Console                    1    17я848 ЉЃ
    DigitalSoundKeeper64.exe     14840 Console                    1    11я092 ЉЃ
    smartscreen.exe              15016 Console                    1    26я196 ЉЃ
    svchost.exe                   1988 Services                   0    11я708 ЉЃ
    WmiPrvSE.exe                 15192 Services                   0    10я676 ЉЃ
    cmd.exe                      12400 Console                    1     4я552 ЉЃ
    conhost.exe                   6160 Console                    1    20я976 ЉЃ
    tasklist.exe                 10812 Console                    1     9я268 ЉЃ
  9. #59
    Sound Keeper 123

    Забыл добавить, что я пробовал убивать не важные для системы процессы один за одним. Думал исключением получится вычислить какой процесс может мешать, но безуспешно.

  10. #60
    Sound Keeper 123

    Нет указания на какой-то процесс. Только на устройство.

    C:\Windows\system32>powercfg -requests
    
    DISPLAY:
    Нет.
    
    SYSTEM:
    [DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_1220&SUBSYS_1458A0D5&REV_1001\4&299cb129&0&0001)
    Аудиопоток уже используется.
    
    AWAYMODE:
    Нет.
    
    ВЫПОЛНЕНИЕ:
    Нет.
    
    PERFBOOST:
    Нет.
    
    ACTIVELOCKSCREEN:
    Нет.
  11. #61
    VEG Автор

    Судя по выводу powercfg -requests, система не уходит в сон именно из-за вывода звука. Если это только Sound Keeper, то он должен автоматически выключиться, когда таймер до выхода в сон приблизился к нулю. Если же какие-то другие программы кроме Sound Keeper выводят звук, то компьютер всё равно не уйдёт в сон.

    Доработал вывод отладочной информации относительно оставшегося время до сна. Можете собрать самостоятельно или использовать этот отладочный билд, который выводит на экран отладочную информацию. Запустите, подождите минут пять, в норме, когда вы ничего не делаете (нельзя даже мышкой водить), где-то раз в минуту должно выводить сколько времени осталось до сна, и это число должно уменьшаться. После теста отправьте сюда копию вывода.

  12. #62
    Sound Keeper 123

    После отсчета система не ушла в сон, а перезапустила таймер с 4294967266 секунд. Я не знаю связано это как-то или нет, но может быть дело в том, что на последних чипсетах Intel (500 и 600 серии) встроенный звук материнской платы сидит на USB линиях чипсета и это как-то конфликтует с Sound Keeper. Я честно не знаю какой еще процесс может мешать Sound Keeper. Я даже Realtek Audio Universal Service и DTS в службы отключал.

    Вот что выдала отладочная версия:

    10:10:44.027 [ 1424] Windows Build Number: 19044 (buggy WASAPI).
    10:10:44.027 [ 1424] Remaining time to sleeping: 300 seconds.
    10:10:44.027 [ 1424] Main thread started.
    10:10:44.028 [ 1424] Exe File Name: SoundKeeper64d.exe.
    10:10:44.028 [ 1424] Device Type: Primary.
    10:10:44.028 [ 1424] Stream Type: Fluctuate.
    10:10:44.030 [ 1424] Main loop started.
    10:10:44.032 [ 1424] Starting...
    10:10:44.033 [15152] Rendering thread started.
    10:10:44.033 [15152] Render.
    10:10:44.034 [15152] Format: PCM 2ch 96000Hz 32-bit integer.
    10:10:44.035 [15152] Format: PCM 2ch 96000Hz 32-bit float.
    10:11:19.088 [ 1424] Remaining time to sleeping: 270 seconds.
    10:11:49.150 [ 1424] Remaining time to sleeping: 240 seconds.
    10:12:19.199 [ 1424] Remaining time to sleeping: 210 seconds.
    10:12:49.259 [ 1424] Remaining time to sleeping: 180 seconds.
    10:13:19.321 [ 1424] Remaining time to sleeping: 150 seconds.
    10:13:49.356 [ 1424] Remaining time to sleeping: 120 seconds.
    10:14:19.393 [ 1424] Remaining time to sleeping: 90 seconds.
    10:14:49.448 [ 1424] Remaining time to sleeping: 60 seconds.
    10:15:19.488 [ 1424] Remaining time to sleeping: 30 seconds.
    10:15:49.542 [ 1424] Remaining time to sleeping: 0 seconds.
    10:15:49.543 [ 1424] Going to sleep...
    10:15:49.558 [15152] Rendering thread finished. Return code: 0.
    10:16:17.506 [ 1424] Remaining time to sleeping: 4294967266 seconds.
    10:16:17.508 [ 1424] Starting...
    10:16:17.513 [11564] Rendering thread started.
    10:16:17.514 [11564] Render.
    10:16:17.516 [11564] Format: PCM 2ch 96000Hz 32-bit integer.
    10:16:17.517 [11564] Format: PCM 2ch 96000Hz 32-bit float.
    10:16:47.567 [ 1424] Remaining time to sleeping: 4294967236 seconds.

    Список процессов:

    €¬п ®Ўа §                      PID €¬п бҐббЁЁ          ь ᥠ­б        Џ ¬пвм
    ========================= ======== ================ =========== ============
    System Idle Process              0 Services                   0         8 ЉЃ
    System                           4 Services                   0     2я548 ЉЃ
    Registry                       172 Services                   0    26я104 ЉЃ
    smss.exe                       628 Services                   0     1я236 ЉЃ
    csrss.exe                      872 Services                   0     5я624 ЉЃ
    wininit.exe                    920 Services                   0     6я824 ЉЃ
    csrss.exe                      924 Console                    1     5я732 ЉЃ
    services.exe                   996 Services                   0    10я476 ЉЃ
    lsass.exe                     1008 Services                   0    19я928 ЉЃ
    winlogon.exe                  1060 Console                    1    10я984 ЉЃ
    svchost.exe                   1160 Services                   0    24я736 ЉЃ
    fontdrvhost.exe               1192 Services                   0     3я336 ЉЃ
    fontdrvhost.exe               1200 Console                    1     8я816 ЉЃ
    svchost.exe                   1280 Services                   0    13я376 ЉЃ
    svchost.exe                   1336 Services                   0     8я272 ЉЃ
    dwm.exe                       1412 Console                    1    67я672 ЉЃ
    svchost.exe                   1560 Services                   0     5я324 ЉЃ
    svchost.exe                   1624 Services                   0    16я968 ЉЃ
    svchost.exe                   1644 Services                   0    15я972 ЉЃ
    svchost.exe                   1676 Services                   0    10я352 ЉЃ
    svchost.exe                   1684 Services                   0    14я208 ЉЃ
    svchost.exe                   1692 Services                   0    11я588 ЉЃ
    svchost.exe                   1764 Services                   0     6я028 ЉЃ
    svchost.exe                   1820 Services                   0     7я936 ЉЃ
    svchost.exe                   1876 Services                   0    18я432 ЉЃ
    svchost.exe                   1896 Services                   0     6я324 ЉЃ
    svchost.exe                   1940 Services                   0     7я352 ЉЃ
    svchost.exe                   1888 Services                   0    11я768 ЉЃ
    NVDisplay.Container.exe       2116 Services                   0    20я540 ЉЃ
    svchost.exe                   2152 Services                   0    11я524 ЉЃ
    svchost.exe                   2160 Services                   0     9я540 ЉЃ
    svchost.exe                   2200 Services                   0     6я988 ЉЃ
    svchost.exe                   2320 Services                   0     5я684 ЉЃ
    svchost.exe                   2328 Services                   0    13я324 ЉЃ
    svchost.exe                   2336 Services                   0     7я632 ЉЃ
    Memory Compression            2456 Services                   0       960 ЉЃ
    svchost.exe                   2500 Services                   0     8я148 ЉЃ
    svchost.exe                   2536 Services                   0     8я160 ЉЃ
    svchost.exe                   2544 Services                   0     8я244 ЉЃ
    svchost.exe                   2552 Services                   0     8я912 ЉЃ
    svchost.exe                   2692 Services                   0     8я344 ЉЃ
    svchost.exe                   2924 Services                   0    20я052 ЉЃ
    svchost.exe                   3156 Services                   0     8я656 ЉЃ
    svchost.exe                   3228 Services                   0    18я496 ЉЃ
    svchost.exe                   3364 Services                   0    14я636 ЉЃ
    svchost.exe                   3380 Services                   0    10я072 ЉЃ
    svchost.exe                   3388 Services                   0     6я784 ЉЃ
    svchost.exe                   3564 Services                   0    19я216 ЉЃ
    svchost.exe                   3628 Services                   0    13я124 ЉЃ
    wlanext.exe                   3712 Services                   0     7я600 ЉЃ
    conhost.exe                   3736 Services                   0    10я056 ЉЃ
    spoolsv.exe                   3744 Services                   0    15я592 ЉЃ
    svchost.exe                   3924 Services                   0    18я988 ЉЃ
    svchost.exe                   3956 Services                   0     7я976 ЉЃ
    svchost.exe                   3952 Services                   0     7я952 ЉЃ
    svchost.exe                   4104 Services                   0     7я284 ЉЃ
    svchost.exe                   4140 Services                   0     8я980 ЉЃ
    svchost.exe                   4320 Services                   0    19я476 ЉЃ
    svchost.exe                   4328 Services                   0    14я208 ЉЃ
    AdjustService.exe             4348 Services                   0    14я924 ЉЃ
    svchost.exe                   4356 Services                   0    10я508 ЉЃ
    svchost.exe                   4364 Services                   0     7я072 ЉЃ
    GigabyteUpdateService.exe     4388 Services                   0    13я456 ЉЃ
    svchost.exe                   4396 Services                   0     5я616 ЉЃ
    svchost.exe                   4412 Services                   0    19я472 ЉЃ
    svchost.exe                   4420 Services                   0     6я700 ЉЃ
    nvcontainer.exe               4428 Services                   0    38я880 ЉЃ
    WMIRegistrationService.ex     4496 Services                   0    12я524 ЉЃ
    LMS.exe                       4592 Services                   0     9я484 ЉЃ
    jhi_service.exe               4884 Services                   0     6я324 ЉЃ
    svchost.exe                   4956 Services                   0     5я436 ЉЃ
    svchost.exe                   4992 Services                   0    12я348 ЉЃ
    rundll32.exe                  5756 Console                    1     7я388 ЉЃ
    sihost.exe                    1704 Console                    1    27я352 ЉЃ
    svchost.exe                   4292 Console                    1    27я356 ЉЃ
    svchost.exe                   1092 Console                    1    28я992 ЉЃ
    taskhostw.exe                 6120 Console                    1    16я732 ЉЃ
    svchost.exe                   6236 Services                   0     7я960 ЉЃ
    svchost.exe                   6276 Services                   0    19я752 ЉЃ
    ctfmon.exe                    6320 Console                    1    20я900 ЉЃ
    svchost.exe                   6604 Services                   0    18я092 ЉЃ
    explorer.exe                  6732 Console                    1   155я224 ЉЃ
    nvcontainer.exe               6868 Console                    1    28я308 ЉЃ
    svchost.exe                   7284 Console                    1    21я576 ЉЃ
    StartMenuExperienceHost.e     7888 Console                    1    64я492 ЉЃ
    RuntimeBroker.exe             8204 Console                    1    24я516 ЉЃ
    SearchApp.exe                 8548 Console                    1   191я672 ЉЃ
    SearchIndexer.exe             8604 Services                   0    31я940 ЉЃ
    RuntimeBroker.exe             8820 Console                    1    39я428 ЉЃ
    RuntimeBroker.exe             9996 Console                    1    18я940 ЉЃ
    TextInputHost.exe            10136 Console                    1    49я352 ЉЃ
    SettingSyncHost.exe          10300 Console                    1     5я172 ЉЃ
    svchost.exe                   9284 Services                   0    13я308 ЉЃ
    svchost.exe                  10708 Services                   0     6я760 ЉЃ
    svchost.exe                   4784 Services                   0     9я080 ЉЃ
    svchost.exe                   7240 Services                   0    10я552 ЉЃ
    svchost.exe                  14116 Console                    1    11я980 ЉЃ
    SgrmBroker.exe                5628 Services                   0     7я120 ЉЃ
    svchost.exe                  14456 Services                   0    11я772 ЉЃ
    svchost.exe                  14620 Services                   0    11я568 ЉЃ
    SecurityHealthService.exe    15008 Services                   0    13я168 ЉЃ
    svchost.exe                   1884 Services                   0     8я636 ЉЃ
    dllhost.exe                   7276 Console                    1    13я712 ЉЃ
    ApplicationFrameHost.exe      4800 Console                    1    27я712 ЉЃ
    svchost.exe                  14692 Services                   0    11я288 ЉЃ
    svchost.exe                   9256 Services                   0    12я912 ЉЃ
    svchost.exe                  10664 Services                   0     8я952 ЉЃ
    ShellExperienceHost.exe       9432 Console                    1    73я236 ЉЃ
    svchost.exe                   2264 Services                   0    19я772 ЉЃ
    svchost.exe                  11532 Services                   0     6я232 ЉЃ
    WmiPrvSE.exe                  5008 Services                   0    10я652 ЉЃ
    svchost.exe                   9708 Services                   0     8я204 ЉЃ
    RuntimeBroker.exe            10964 Console                    1    24я756 ЉЃ
    service_update.exe            8916 Services                   0     9я164 ЉЃ
    service_update.exe            7856 Services                   0     7я472 ЉЃ
    nvcontainer.exe               6036 Console                    1    50я644 ЉЃ
    NVDisplay.Container.exe      13756 Console                    1    52я592 ЉЃ
    NVIDIA Share.exe              1652 Console                    1    68я520 ЉЃ
    NVIDIA Share.exe              7572 Console                    1    37я616 ЉЃ
    NVIDIA Web Helper.exe         7808 Console                    1    59я068 ЉЃ
    conhost.exe                   8668 Console                    1    11я072 ЉЃ
    NVIDIA Share.exe              4020 Console                    1    77я196 ЉЃ
    svchost.exe                  12940 Console                    1     9я484 ЉЃ
    SystemSettingsBroker.exe      1320 Console                    1    17я868 ЉЃ
    svchost.exe                  13036 Services                   0    11я816 ЉЃ
    smartscreen.exe               6028 Console                    1    24я744 ЉЃ
    svchost.exe                  12988 Services                   0     7я896 ЉЃ
    WmiPrvSE.exe                  2824 Services                   0    10я540 ЉЃ
    cmd.exe                        600 Console                    1     4я548 ЉЃ
    conhost.exe                   3460 Console                    1    19я668 ЉЃ
    tasklist.exe                  5660 Console                    1     9я260 ЉЃ
  13. #63
    Sound Keeper 123

    Попробовал оставить из задействованных устройств только аудио выход монитора (Display Port). Все остальные устройства отключил. Тоже не уходит в сон. Значит все таки какой-то процесс.

  14. #64
    VEG Автор
    10:15:19.488 [ 1424] Remaining time to sleeping: 30 seconds.
    10:15:49.542 [ 1424] Remaining time to sleeping: 0 seconds.
    10:15:49.543 [ 1424] Going to sleep...
    10:15:49.558 [15152] Rendering thread finished. Return code: 0.
    10:16:17.506 [ 1424] Remaining time to sleeping: 4294967266 seconds.
    10:16:17.508 [ 1424] Starting...
    10:16:17.513 [11564] Rendering thread started.
    10:16:17.514 [11564] Render.
    10:16:17.516 [11564] Format: PCM 2ch 96000Hz 32-bit integer.
    10:16:17.517 [11564] Format: PCM 2ch 96000Hz 32-bit float.
    10:16:47.567 [ 1424] Remaining time to sleeping: 4294967236 seconds.

    Огромные числа в секундах — это -30 и -60 секунд, прочитанные как положительные числа (из-за особенностей представления отрицательных чисел в памяти). Это сюрприз, что таймер может зайти в минус. Подправлю код, чтобы учитывать это.

    10:15:49.543 [ 1424] Going to sleep...
    10:15:49.558 [15152] Rendering thread finished. Return code: 0.
    10:16:17.506 [ 1424] Remaining time to sleeping: 4294967266 seconds.
    10:16:17.508 [ 1424] Starting...
    10:16:17.513 [11564] Rendering thread started.

    Тем не менее, судя по этому участку, Sound Keeper отключался на почти 30 секунд, и в это время система должна была уйти в сон. Но по-видимому почему-то не ушла. Вы пробовали проверять, работает ли автоматический переход в режим сна без Sound Keeper?

  15. #65
    Sound Keeper 123

    Вы пробовали проверять, работает ли автоматический переход в режим сна без Sound Keeper?

    Да. Без Sound Keeper система автоматически уходит в сон без проблем.

  16. #66
    VEG Автор

    Я разрабатывал и тестировал Sound Keeper на Windows 7. Там система уходит в сон как только таймер до сна доходит до 0 и нет предотвращающих сон факторов. Потестировал сейчас как оно работает на Windows 10. Оказалось, что поведение изменилось. Во-первых, таймер до сна почему-то сбрасывается после первых 5 минут бездействия (не выяснил виновника, возможно, так на чистой системе тоже). Во-вторых, при достижении 0 он идёт в минус, если есть активные аудио-сессии, плюс ещё 2 минуты после закрытия последней аудио-сессии. То есть, если установлен уход в сон через 10 минут неактивности, из-за всех этих факторов система уйдёт в сон через 17 минут. Вместо 60 минут, по-видимому, получится 67 минут, и т.д.

    Обучил Sound Keeper понимать отрицательные значения таймера, и обновил отладочный билд. Проверьте как оно работает у вас. Для отслеживания как меняется состояние powercfg /requests можно воспользоваться следующим bat-файлом, который нужно запускать с правами администратора:

    @echo off
    :loop
    cls
    echo %DATE% %TIME:~0,8%
    echo.
    powercfg /requests
    timeout 1 > NUL
    goto :loop

    При тестировании имейте в виду, что даже обычный браузер может предотвращать уход в сон. Например, у меня просто запущенный Firefox удерживает аудио-сессию открытой и предотвращает сон. Судя по сообщениям в интернете, в Chrome может быть тоже самое, в зависимости от открытых сайтов (например, YouTube).

  17. #67
    Sound Keeper 123

    Так-с. Что-то нащупали. Поставил сон через 1 минуту, чтобы проверить. Прошла минута, потом еще где-то полторы и система уснула.

    20:09:40.399 [13924] Windows Build Number: 19044 (buggy WASAPI).
    20:09:40.399 [13924] Remaining time to sleeping: 60 seconds.
    20:09:40.399 [13924] Main thread started.
    20:09:40.399 [13924] Exe File Name: SoundKeeper64d.exe.
    20:09:40.400 [13924] Device Type: Primary.
    20:09:40.400 [13924] Stream Type: Fluctuate.
    20:09:40.402 [13924] Main loop started.
    20:09:40.402 [13924] Starting...
    20:09:40.404 [ 5000] Rendering thread started.
    20:09:40.404 [ 5000] Render.
    20:09:40.406 [ 5000] Format: PCM 2ch 96000Hz 32-bit integer.
    20:09:40.408 [ 5000] Format: PCM 2ch 96000Hz 32-bit float.
    20:10:30.491 [13924] Remaining time to sleeping: 30 seconds.
    20:11:00.553 [13924] Remaining time to sleeping: 0 seconds.
    20:11:00.554 [13924] Going to sleep...
    20:11:00.570 [ 5000] Rendering thread finished. Return code: 0.
    20:11:30.496 [13924] Remaining time to sleeping: -30 seconds.
    20:12:00.412 [13924] Remaining time to sleeping: -60 seconds.
    20:12:30.338 [13924] Remaining time to sleeping: -90 seconds.
    20:13:00.276 [13924] Remaining time to sleeping: 60 seconds.
    20:13:00.276 [13924] Starting...
    20:13:00.282 [ 8960] Rendering thread started.
    20:13:00.282 [ 8960] Render.
    20:13:00.282 [ 8960] Format: PCM 2ch 96000Hz 32-bit integer.
    20:13:00.282 [ 8960] Format: PCM 2ch 96000Hz 32-bit float.
    20:13:00.978 [13924] Restarting...
    20:13:00.983 [ 8960] Rendering thread finished. Return code: 0.
    20:13:00.985 [12844] Rendering thread started.
    20:13:00.985 [12844] Render.
    20:13:00.986 [12844] Format: PCM 2ch 96000Hz 32-bit integer.
    20:13:00.986 [12844] Format: PCM 2ch 96000Hz 32-bit float.
    20:13:11.550 [13924] Restarting...
    20:13:11.554 [12844] Rendering thread finished. Return code: 0.
    20:13:11.555 [ 4532] Rendering thread started.
    20:13:11.555 [ 4532] Render.
    20:13:11.557 [ 4532] Format: PCM 2ch 96000Hz 32-bit integer.
    20:13:11.557 [ 4532] Format: PCM 2ch 96000Hz 32-bit float.
  18. #68
    VEG Автор

    Попробуйте новую отладочную или бета-версию. Добавил больше отладочной инфы; обучил Sound Keeper более разумно реагировать на случай, когда нет ни одного доступного аудио-устройства вывода; оптимизировал код, обрабатывающий появление или исчезновение аудио-устройств; поднял версию до 1.2.2; добавил в ReadMe.txt информацию, как можно попробовать разрешить системе уходить в сон даже с активными аудио-сессиями.

  19. #69
    Sound Keeper 123

    Скачал бета-версию. Запустил, система уснула, но после пробуждения слышу характерные щелчки на SPDIF выходе. Открыл диспетчер задач и выяснилось, что Sound Keeper нет среди процессов. Стал смотреть журнал событий и там видно, что Sound Keeper был сбой.
    Проверил несколько раз. Сценарий повторяется.

    Из журнала событий:

    Событие 1000, Application Error
    Имя сбойного приложения: DigitalSoundKeeper64.exe, версия: 2022.5.15.0, метка времени: 0x6280ee3e
    Имя сбойного модуля: DigitalSoundKeeper64.exe, версия: 2022.5.15.0, метка времени: 0x6280ee3e
    Код исключения: 0xc0000005
    Смещение ошибки: 0x00000000000029c4
    Идентификатор сбойного процесса: 0x3898
    Время запуска сбойного приложения: 0x01d8685a9e70a41f
    Путь сбойного приложения: D:\Downloads\DigitalSoundKeeper64.exe
    Путь сбойного модуля: D:\Downloads\DigitalSoundKeeper64.exe
    Идентификатор отчета: 169224cc-40e0-431c-907a-b0a99a238fce
    Полное имя сбойного пакета: 
    Код приложения, связанного со сбойным пакетом: 

    Из монитора стабильности:

    Описание
    Неправильный путь приложения:	D:\Downloads\DigitalSoundKeeper64.exe
    
    Сигнатура проблемы
    Имя проблемного события:	APPCRASH
    Имя приложения:	DigitalSoundKeeper64.exe
    Версия приложения:	2022.5.15.0
    Отметка времени приложения:	6280ee3e
    Имя модуля с ошибкой:	DigitalSoundKeeper64.exe
    Версия модуля с ошибкой:	2022.5.15.0
    Отметка времени модуля с ошибкой:	6280ee3e
    Код исключения:	c0000005
    Смещение исключения:	00000000000029c4
    Версия ОС:	10.0.19044.2.0.0.768.101
    Код языка:	1049
    Дополнительные сведения 1:	38b4
    Дополнительные сведения 2:	38b43eb765fa0d2155ced0c5021dd1cb
    Дополнительные сведения 3:	f41f
    Дополнительные сведения 4:	f41f6a1243e99fb6f885117e57aa4058
    
    Дополнительные сведения о проблеме
    ИД контейнера:	bfebdfd7e9b201c17ac0f08a960c8531 (1927805118528128305)
    
  20. #70
    Sound Keeper 123

    Обновленная отладочная версия продолжает работу после выхода из сна.

    13:05:13.585 [ 2256] Windows Build Number: 19044 (buggy WASAPI).
    13:05:13.585 [ 2256] Remaining time to sleeping: 60 seconds.
    13:05:13.585 [ 2256] Main thread started.
    13:05:13.586 [ 2256] Exe File Name: SoundKeeper64d.exe.
    13:05:13.586 [ 2256] Device Type: Primary.
    13:05:13.586 [ 2256] Stream Type: Fluctuate.
    13:05:13.589 [ 2256] Main loop started.
    13:05:13.591 [ 2256] Starting...
    13:05:13.593 [15096] Rendering thread started. Device ID: '{0.0.0.00000000}.{d31a2b51-e4fa-4c48-b93b-d268ec189143}'.
    13:05:13.593 [15096] Render. Device State: 1.
    13:05:13.594 [15096] Getting output format...
    13:05:13.599 [15096] Format: PCM 2ch 96000Hz 32-bit integer.
    13:05:13.599 [15096] Getting mixing format...
    13:05:13.599 [15096] Format: PCM 2ch 96000Hz 32-bit float.
    13:05:13.623 [15096] Starting rendering...
    13:05:13.625 [15096] Rendering loop started.
    13:05:58.691 [ 2256] Remaining time to sleeping: 30 seconds.
    13:06:24.747 [ 2256] Remaining time to sleeping: 0 seconds.
    13:06:24.748 [ 2256] Going to sleep...
    13:06:24.749 [15096] Stopping rendering...
    13:06:24.767 [15096] Rendering thread finished. Return code: 0.
    13:06:54.732 [ 2256] Remaining time to sleeping: -30 seconds.
    13:07:24.696 [ 2256] Remaining time to sleeping: -60 seconds.
    13:07:55.163 [ 2256] Remaining time to sleeping: -90 seconds.
    13:08:24.963 [ 7748] Device '{0.0.0.00000000}.{8abdcac2-1c75-48a2-aeaf-355250e48215}' new state: 2.
    13:08:25.118 [ 2256] Remaining time to sleeping: 60 seconds.
    13:08:25.119 [ 2256] Starting...
    13:08:25.120 [ 3248] Rendering thread started. Device ID: '{0.0.0.00000000}.{d31a2b51-e4fa-4c48-b93b-d268ec189143}'.
    13:08:25.120 [ 3248] Render. Device State: 1.
    13:08:25.121 [ 3248] Getting output format...
    13:08:25.121 [ 3248] Format: PCM 2ch 96000Hz 32-bit integer.
    13:08:25.121 [ 3248] Getting mixing format...
    13:08:25.121 [ 3248] Format: PCM 2ch 96000Hz 32-bit float.
    13:08:25.143 [ 3248] Starting rendering...
    13:08:25.145 [ 3248] Rendering loop started.
    13:08:37.580 [  672] Device '{0.0.0.00000000}.{8abdcac2-1c75-48a2-aeaf-355250e48215}' new state: 4.
    13:08:37.723 [  672] Device '{0.0.0.00000000}.{8abdcac2-1c75-48a2-aeaf-355250e48215}' new state: 2.
    
  21. #72
    Sound Keeper 123

    Сбой вызван переименовыванием исполняемого файла.
    Сбой происходит на обеих версиях если переименовать исполняемые файлы.
    Если переименовать отладочную версию из SoundKeeper64d.exe в DigitalSoundKeeper64.exe, то она тоже сбоит.
    Если бета-версию переименовать обратно из DigitalSoundKeeper64.exe в SoundKeeper64.exe, то соответственно и сбоев нет.

  22. #73
    VEG Автор

    В обновлённой версии тоже сбоит? Кажется, по смещению ошибки 0x00000000000029c4 из журнала событий не хватало именно той проверки что я только что добавил.

  23. #74
    Sound Keeper 123

    Обновленную сейчас буду проверять.

  24. #75
    Sound Keeper 123

    И бета, и отладочная версии пережили пробуждение будучи переименованными в DigitalSoundKeeper64.exe
    Сбоев не было. Я еще бету погоняю. Если что, то сразу отпишусь. Спасибо.

    13:34:34.140 [14624] Windows Build Number: 19044 (buggy WASAPI).
    13:34:34.140 [14624] Remaining time to sleeping: 60 seconds.
    13:34:34.140 [14624] Main thread started.
    13:34:34.140 [14624] Exe File Name: DigitalSoundKeeper64.exe.
    13:34:34.141 [14624] Device Type: Digital.
    13:34:34.141 [14624] Stream Type: Fluctuate.
    13:34:34.143 [14624] Main loop started.
    13:34:34.144 [14624] Starting...
    13:34:34.145 [14744] Rendering thread started. Device ID: '{0.0.0.00000000}.{d31a2b51-e4fa-4c48-b93b-d268ec189143}'.
    13:34:34.145 [14744] Render. Device State: 1.
    13:34:34.147 [14744] Getting output format...
    13:34:34.147 [14744] Format: PCM 2ch 96000Hz 32-bit integer.
    13:34:34.147 [14744] Getting mixing format...
    13:34:34.148 [14744] Format: PCM 2ch 96000Hz 32-bit float.
    13:34:34.170 [14744] Starting rendering...
    13:34:34.172 [14744] Rendering loop started.
    13:35:14.223 [14624] Remaining time to sleeping: 30 seconds.
    13:35:40.789 [14624] Remaining time to sleeping: 0 seconds.
    13:35:40.790 [14624] Going to sleep...
    13:35:40.790 [14744] Stopping rendering...
    13:35:40.797 [14744] Rendering thread finished. Return code: 0.
    13:36:10.740 [14624] Remaining time to sleeping: -30 seconds.
    13:36:40.692 [14624] Remaining time to sleeping: -60 seconds.
    13:37:10.642 [14624] Remaining time to sleeping: -90 seconds.
    13:37:40.987 [15976] Device '{0.0.0.00000000}.{8abdcac2-1c75-48a2-aeaf-355250e48215}' new state: 2.
    13:37:41.109 [14624] Remaining time to sleeping: 60 seconds.
    13:37:41.109 [14624] Starting...
    13:37:41.110 [10704] Rendering thread started. Device ID: '{0.0.0.00000000}.{d31a2b51-e4fa-4c48-b93b-d268ec189143}'.
    13:37:41.111 [10704] Render. Device State: 1.
    13:37:41.111 [10704] Getting output format...
    13:37:41.111 [10704] Format: PCM 2ch 96000Hz 32-bit integer.
    13:37:41.112 [10704] Getting mixing format...
    13:37:41.112 [10704] Format: PCM 2ch 96000Hz 32-bit float.
    13:37:41.134 [10704] Starting rendering...
    13:37:41.135 [10704] Rendering loop started.
    13:37:59.504 [12048] Device '{0.0.0.00000000}.{8abdcac2-1c75-48a2-aeaf-355250e48215}' new state: 4.
    13:37:59.655 [12048] Device '{0.0.0.00000000}.{8abdcac2-1c75-48a2-aeaf-355250e48215}' new state: 2.
    
  25. #76
    VEG Автор

    Отлично! Если больше проблем не будет найдено, выпущу релиз со свежими изменениями.

  26. #77
    VEG Автор

    Sound Keeper v1.2.2

    • Более корректно обрабатывается случай, когда нет ни одного активного аудио-устройства.
    • Sound Keeper не должен предотвращать автоматический переход PC в спящий режим на Windows 10.