Pull to refresh

Comments 40

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

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

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

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

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

P.S. такой вопрос, а чем отличается «неслышный поток» от нулей? Что это такое?
Правильно ли я делаю переименовав файл в «SoundKeeper32Zero.exe» или нет? В инструкции, честно, ничего не понятно: разница не объяснена от простой передачи параметра это очень сильно отличается :)
При Zero оно генерирует поток из нулей. Без Zero генерит поток из семплов -(1/32767), 0, 1/32767, 0 по кругу (минимально возможная амплитуда для 16-разрядного звука). Такой сигнал никак не услышать, и он универсальнее, так как помогает против засыпания на некоторых «умных» драйверах, которые поток из нулей воспринимают как повод отключить аудиовыход.
Понятно, спасибо, а правильно именовать файл для нулей надо так «ZeroSoundKeeper32.exe» или как? Можно ли убрать упоминание 32 или 64 из имени?
Без разницы. Оно просто подстроку в имени файла ищет.
Кстати, на тему неслышимости звука:
-(1/32767), 0, 1/32767, 0 по кругу (минимально возможная амплитуда для 16-разрядного звука)

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

Раньше по умолчанию был 0. Некоторые пользователи жаловались, что не помогает. В пример рабочих решений приводили аналоги Sound Keeper, где по умолчанию как раз «inaudible», причём с амплитудой в два раза выше, чем я сделал в Sound Keeper.

Sound Keeper генерирует сигнал с частотой выше 22кГц и амплитудой 1.0/32767=0.0000305185. С такой маленькой амплитудой сигнал любой частоты не будет слышим, а 22кГц — тем более.
Впрочем да, точности ради, когда буду делать новую версию, можно будет добавить определение, какая разрядность установлена пользователем для данного аудиовыхода, и если 24 бита, то амплитуду можно ещё в 256 раз уменьшить.
Ну да, вот так хорошо будет. Дёргать младшим битом в 22 кГц можно, но надо обязательно учитывать разрядность. Хорошо что мне и нули помогают, не для того я городил полностью цифровую систему где аналог только на динамике после усилителя класса D получается ¯\_(ツ)_/¯

P.S. и да, надо дёргать именно младшим битом ибо уже сейчас широко распространены как 24 так и 32 битные тракты.
А вы уверены, что системный микшер поддерживает вывод финального звука в виде 32-битного PCM? Сведение идёт в формате float32, но на сколько я вижу, сведённый сигнал идёт дальше всегда или в int16, или в int24.

image
Этот параметр от возможности устройства вывода зависит.

P.S.на счёт S/PDIF я вообще не уверен, что он больше 24bit/192kHz поддерживает, вот коаксиал точно поддерживает.
Коаксиал и есть S/PDIF. Просто два типа соединения на выбор (оптический и коаксиал), но стандарт тот же. По спекам что я нашёл — максимум 24 бита. HDMI и DisplayPort — тоже максимум 24 бита для аудио. Не думаю, что системный микшер поддерживает что-то нестандартное.
Так оно стандартное 32bit/384kHz DAC точно есть:
imageimage

Realtek ALC4042

Realtek ALC4050

Realtek ALC5686 — вообще шикарные параметры:
— PCM decoding ability: up to 32bit/384kHz
— SNR: ≥124dB
— THD+N: -95dB
— Frequency response: 20-80000Hz
— Recommend earphone impedance: 16-32Ω
— Standby current: 0mA
— Static working current: 31mA

Есть и более адовые машинки:

AK4493 — 32Bit/768kHz DSD512 DAC

P.S. да, S/PDIF и коаксиал одно и тоже и больше чем 24bit/192kHz не поддерживает для 2.0 и только 24bit/96kHz для 5.1. Зато по USB всё проще.
OK, убедили =) А там int32 или float32? Отдельную поддержку int24 для генерации inaudible тона уже добавил.
А там int32 или float32?

Не знаю, можно документацию на них глянуть, int наверное, но я не уверен.
Sign up to leave a comment.

Articles