Плотно занимаюсь настройкой звука в LINUX уже много лет. Можно долго настраивать и случайно получить определённый звук (я выделил 5 архетипов), но всегда сложно повторить результат 1 в 1! Просто перезагружаешь компьютер или экспериментируешь дальше, а при следующем включении звук уже не тот (протухает)! Многие спишут это на "показалось", но дело в другом. Хотелось бы рассказать о важных особенностях системы Linux, до самостоятельного понимания которых многие люди никогда не дойдут!
Обо всём более конкретно буду выкладывать в следующих статьях, а сейчас только об общих вещах, мешающих повторить "тот самый звук", пойманный в моменте.
Самое главное - "сдвиги"
Обычно люди представляют себе настройку параметров так: какой параметр, такой и звук, всегда и без условий. Это совершенно не верно, не нужно быть наивными. Для большинства параметров в linux звук зависит не только от текущего, но и от начального его значения (при старте системы).
Раньше, настраивая звук на слух и меняя параметры, удавалось получить интересные варианты. Но после перезапуска звук будто портился, и если поставить старое значение, то оно может стать лучше нового, что сначала просто казалось странным, но спустя много времени натолкнуло на верную мысль.
Например, параметры ядра в /etc/sysctl.conf при загрузке:
dev.hpet.max-user-freq = 4495
4495 - это один звук, а если поменять на 4444 - это другой звук (и он действительно будет отличаться после перезапуска плеера или всей системы). Но как именно будет звучать этот параметр в данный момент - зависит от значения при запуске системы! При следующем запуске 4444 будет стоять сразу, и он не будет звучать так же, как понравилось при настройке на слух "налету"!
То есть, получив определённый звук, нужно в точности повторить условия, при которых он получился, иначе ничего не выйдет. При запуске должно быть начальное значение, после запуска - конечное (которое понравилось). А если сразу будет стоять конечное, то и звук съедет. Определённый звук в Linux даёт не только значение параметра, но и насколько он сдвинулся.
К сожалению, я этого не знал, и очень часто делал "прорывы", которые были из-за того, что звук сначала "протухал", а потом не составляло труда его исправить. Я просто долго топтался на одном месте!
"Сдвиги" могут наблюдаться на чём угодно (права доступа, параметры в плеере, параметры юнита плеера, список выключенных модулей...), но могут и не влиять для других вещей. Конечно, сложно повторять сдвиги для всего, однако изредка приходится это делать, когда получается выдающийся звук. Но конечно же не вручную, а специальным самописным скриптом, без участия человека. Однако, всегда стараюсь подобрать параметры так, чтобы после перезапуска они сразу звучали сами по себе как нужно или не сильно хуже (но без сдвига). А чтобы убедиться в этом, нужно обязательно перезапускать систему!
Перезагрузки системы
К сожалению, после перезапуска звук отличается от того, который был получен "налету" после долгих настроек. И не только из-за сдвигов, а из-за особенностей самой системы. На звук, который выдаёт плеер, влияет команда, которая его запускает, а также оболочка, какой пользователь и с какими полномочиями совершает запуск.
Когда звук настраивается налету, то плеер перезапускается от имени пользователя под оболочкой bash (я про свою систему Linux Mint, не бросайтесь камнями), а когда запускается автоматическим скриптом, то от суперпользователя и в другой оболочке sh. Да, можно и вручную перезапускать плеер так же, как это делает система, войдя в нужную оболочку под нужным окружением, и настраивать звук на слух именно таким образом. Но всё равно, иногда звук после перезапуска отличается! И очень редко в лучшую сторону, хотя иногда бывают исключения.
И конечно, перезагрузки не только отнимают много времени, но и сбивают с толку (нельзя мгновенно сравнить звук и убедиться в правильности выбора). Однако, без этого нельзя получить готовое для использования изделие.
Фокусы или странности Linux
Вы можете не поверить, но в системе столько то ли недочётов, то ли недоработок, которые по логике не должны никак влиять на звук, но заметно влияют! Многие из них покажутся глупостью (и я сам даже не пытался пробовать много лет проверять многие из них), но это действительно заметно влияет на звук, и может помешать!
Например, случайно сделал "ошибку" внутри юнита плеера (даже не считаю это своей ошибкой, а недоработкой разработчиков системы):
LimitMEMLOCK=33M # 32M 1M
Что тут такого - просто поставил комментарий, чтобы не забыть. Но система жрёт целиком всю строку как значение: "33M # 32M 1M", а не как "33М".
Я это случайно увидел в журнале ошибок, и принялся исправлять, но всё получалось хуже, чем вот так с ошибкой. Поэтому решил оставить как есть.
Ещё один пример, который я встретил только с двумя одновременно работающими в паре звуковыми картами. Когда настраиваешь приоритеты IRQ-потоков, то последний выставленный приоритет влияет на тональность всего звука (чем меньше приоритет, тем светлее звук)!
Даже если делать это для несуществующего процесса, звук всё равно меняется
sudo chrt -f -p 1 64435345
Из-за этого можно сделать неверные выводы, когда настраиваешь приоритеты оборудования! Однако, с одной картой я такого не наблюдал, поэтому проблема не массовая, а только у энтузиастов вроде меня (и то если такие вообще существуют).
Пожалуй, самое простое, но и самое глупое - влияют пустые строки в конце конфигов. Чаще всего, лучше 2 строки, иногда 1 или без пустых строк, но встречаются и безразличные конфиги (например, /etc/modprobe.d/alsa-base.conf) Да, логики тут нет никакой совершенно, и программисты или опытные линуксоиды (не аудиофилы) скажут, что мне пора в больничку! Однако, не зная эту особенность, вы надолго можете застрять в дебрях linux в поисках звука, потому что часто самый действенный способ - это самый простой (даже детский). Логику в нём искать никакую не надо - просто принять это и учесть при настройке.
Считаю, я уже много наговорил. Но есть ещё много странных фишек в linux, которые не должны, но влияют на звук! Как минимум, могу вспомнить ещё 2-3 таких фишки. Хотя, может быть, напишу о них по ходу изложения о непосредственно настройке звука в linux.
Извиняюсь, картинок мало, потому что просто нечем проиллюстрировать, а какие попало картинки ни о чём не вижу смысла вставлять.
Подпишитесь на меня! Впереди много интересного и нового о звуке в Linux и не только!