Sound Keeper — предотвращает «засыпание» цифровых аудио-выходов SPDIF или HDMI

    Если вы когда-нибудь пользовались цифровыми аудио-выходами (SPDIF или HDMI), наверняка вы сталкивались с проблемой, когда во время тишины акустика «засыпала», после чего начало следующего звука обрезалось из-за того, что акустике нужно время на «пробуждение» и инициализацию после сна. Это сильно раздражает. Если у вас никогда не было такой проблемы — значит вам повезло с драйвером. Если же проблема имеет место — она решается непрерывным воспроизведением абсолютной тишины. Костыль, но это единственный доступный способ заставить драйвер не выключать цифровой аудио-выход.

    Ранее для этих целей существовала одна программа с названием SPDIF Keep Alive. Но на мой взгляд она слишком тяжёлая для решения такой простой задачи: требует наличия фреймворка .NET, расходует слишком много памяти и процессорного времени. Поэтому я написал на C++ новую программу для решения проблемы.

    Представляю Sound Keeper v1.0


    Программа использует современную звуковую подсистему WASAPI, поэтому будет работать только на Windows 7 и новее. Sound Keeper внешне никак себя не проявляет и работает полностью автоматически: находит все цифровые выходы (SPDIF или HDMI) и предотвращает их засыпание. Если во время работы программы появится новый цифровой выход (например, если вы подключили компьютер по HDMI к телевизору) — это будет корректно обработано, перезапуск программы не требуется. Для отключения Sound Keeper вы должны либо выключить звук в микшере для этой программы (после чего Sound Keeper автоматически закроется), либо просто убить процесс soundkeeper.exe. Для автоматической загрузки программы вместе с системой просто скопируйте исполняемый файл soundkeeper.exe в каталог Автозагрузка в меню Пуск. В будущих версиях, возможно, будет добавлена иконка в область уведомлений с возможностью ручного управления и функцией закрытия приложения из простого меню.

    Скачать: SoundKeeper-v1.0.zip (11КБ).

    Sound Keeper vs. SPDIF Keep Alive

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

    Спасибо за внимание


    Надеюсь, эта программа пригодится кому-то ещё. Буду рад вашим отзывам.
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 25
    • 0
      Эхъ, ещё бы и для аналоговых радионаушников кто-нибудь такое написал… Увидел сабж, обрадовался, содержимое радость поубавило ;(
      • 0
        Программа намеренно игнорирует аналоговые выходы, поскольку я никогда не слышал, что с ними могут быть какие-то проблемы. Расскажите подробнее о проблеме. Если вы проигрываете тишину в плеере — наушники не засыпают? Каким образом наушники по аналогу определяют, что звука нет? Смотрят по какому-то пороговому значению?
        • 0
          тишина разумеется не помогает
          видимо да, пороговое значение не достигнуто за минуту или две — засыпают. в играх бесит нереально.

          я вижу решение в программе, которая мониторит наличие звука сама, и если его нет, раз в минуту пикает тихонько =)
          • +2
            Попробуйте поиграться с Generatosaur, будут ли ваши наушники засыпать при очень тихом звуке низкой или высокой частоты.
            • +1
              20 кгц на минимальной громкости оказались достаточным, попробую так, спасибо )
              • +2
                В принципе добавить поддержку вывода какого-то сигнала вместо тишины на аналоговые выходы несложно. Но автоматически это делать точно нельзя — мало кто из любителей музыки оценит пускай и неслышимый, но шум. Может быть в будущей версии сделаю опциональную возможность подачи какого-то сигнала на аналоговые выходы.
          • +1
            Про наушники ничего не скажу, но кроме них есть еще и колонки, который засыпают через некоторое время (10-15 мин.). Как говорит инструкция к ним — для соответствия директиве/рекомендации ЕС.
            • +1
              Очень бесит, когда такие вещи делают неотключаемыми и ненастраиваемыми…
        • 0
          Помню давно была такая проблема с обыкновенным старым телевизором «Horizont», постоянно во время пауз в фильме\сериале чувствовался резкий переход, думал что я один это замечаю.

          Определённо плюс программе, жаль не могу их ставить. Оптимизация и «рефакторинг» всегда хорошо.
          • 0
            Никогда не замечал таких шумов на настольном компьютере, но недавно услышал их на ноутбуке, причём совпало это с покупкой наушников. Ваша статья оказалась крайне своевременной и уберегла меня от прогулки до магазина.
            Под Linux аналог вашей программы не подскажете? То ли я ищу не по тем словам, то ли их нет.
            Спасибо за статью и программу.
            • 0
              Судя по всему, вы что-то не так поняли. Эта программа предотвращает отключение цифровых аудио-выходов при отсутствии звука. Шумы в таком случае могут появляться разве что при инициализации акустики или её засыпании. Если у вас используется аналоговый выход или присутствуют шумы во время простого воспроизведения при использовании цифрового выхода — у вас какая-то другая проблема.
              • +1
                Для Pulseaudio нужно выключить модуль module-suspend-on-idle в настройках или командой:
                pactl unload-module module-suspend-on-idle
                
            • 0
              Действительно, чтение по диагонали — зло, извините за невнимательность. Проблема действительно схожая, но не та.
              • 0
                Подобная же проблема есть с блютусными наушниками. Я обычно, через речевые движки, слушаю текст и между двумя сформированными фреймами наушники успевают «засыпать» — это выражается в виде слабого щелчка, но раздражает сильно. Нашел решение в виде запуска KMplayer с любым файлом звуковым или видео. Даже не требуется делать воспроизведение, достаточно поставить на паузу.
                • 0
                  Интересно, а каким типом устройства представляются Bluetooth-наушники. Там ведь наверняка цифровой выход. Попробуйте, пожалуйста, Sound Keeper — активируется ли он на аудио-выходе Bluetooth-наушников. Если нет, надо будет проверить, какой тип аудио-выхода сообщает WASAPI программе.
                • +2
                  Несколько неожиданно было в архиве с программой не обнаружить её исходный код.
                  • +1
                    Кроме того, при запуске программы из архива, антивирус ругнулся довольно неприятными словами.
                    Хотя обычно такого не бывает.
                    Скрины
                    image image

                    Для себя проблему засыпания spdif-устройств решил с помощью Virtual Audio Cable.
                    • 0
                      Что интересно, на virustotal.com у Bitdefender тишина.

                      Что уж поделаешь, что некоторые антивирусные продукты считают подозрительными почти любой исполняемый файл маленького объёма. Во времена, когда я пользовался Avira Antivir, натерпелся регулярных ошибочных срабатываний. Например, она могла легко отреагировать на нетипичный набор секций или нестандартные атрибуты у них. Анализом кода, похоже, антивирус вообще не занимался в таких случаях :) Сейчас пользуюсь стандартным антивирусом от Microsoft — судя по всему, оно более-менее адекватное. Bitdefender может быть не понравилась иконка изображениями в PNG :)
                      • 0
                        Ошибочных срабатываний обычно не бывало.
                        Однако, рекомендую, что-то предпринять, дабы исключить подобные вещи в дальнейшем :)
                        А за про программку спасибо, людям пригодится.
                      • +1
                        Видел как-то раз как Аваст при приближении конца лицензии начинал внезапно «находить» много вирусов, показывая свою бесполезность, естественно, вирусов там не было.
                      • 0
                        Я потому и выложил на GeekTimes, поскольку без исходного кода и подробного описания «как это сделано». Но если интересно, то как появится свободное время, постараюсь залить исходный код на bitbucket.org.
                      • 0
                        Symantec EP с упорным постоянством прибивает exe. Можно как-то пофиксить?
                        • 0
                          Возможно, поможет добавление в исключения.
                        • 0
                          К сожалению не решает другую важную проблему HDMI — выключение звука при включенном энергосбережение и гашении монитора.
                          Из-за этого для приходится к ресиверу тянуть и SPDIF просто для звука и многоканальный HDMI для фильмов, и переключаться между ними.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.