Настройка звука PulseAudio

Ответить
dragon
Сообщения: 126
Зарегистрирован: 15 мар 2016, 17:16
Operating system: ROSA Desktop Fresh R10 KDE
Откуда: Балаково, Саратовская обл.

Настройка звука PulseAudio

Сообщение dragon » 16 фев 2018, 11:33

Когда практически отсутствуют заметные заботы и хлопоты (в частности, ОС работает в лучшем виде), часто возникают мысли что-то еще улучшить. Ну, например, звук. Решил - поехал. Сначала за информацией. Несмотря на то, что встроенная звуковушка SupremeFX (она же Realtek ALC1150) сама по себе, судя по параметрам, оказалось весьма не слабой, тем не менее поддался на многочисленные комментарии, что Realtek де УГ и что дискретные звуковушки рулят...

Естественно, перелопатил кучу обзоров, отзывов и, конечно же, руководствуясь данными какие звуковушки поддерживаются ALSA: http://alsa-project.org/main/index.php/Matrix:Main , заказал и стал ожидать доставки вот этой внешней USB карты: Creative X-Fi HD.

Но при этом, не теряя времени, решил настроить звук в самой системе - ну, дескать, чтобы потом не отвлекаться. Оказалось, что для настройки нужно подредактировать файл /etc/pulse/daemon.conf. Причем, не весь файл, а только четыре строчки. А именно, вот эти (если память не изменяет, по умолчанию были указаны именно эти - минимальные - значения - чтобы не грузить процессор, а то мало ли...):

Код: Выделить всё

; resample-method = speex-float-1
; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
Причем точка с запятой (;) перед строкой означают, что строка воспринимается как комментарий и чтобы новое значение присвоилось, символ точки с запятой нужно убрать. Но для этого, а также для изменения этих четырех значений нужно было еще отредактировать под рутом. Навскидку воспользовался командой:

Код: Выделить всё

sudo nano /etc/pulse/daemon.conf
Но предварительно нужно еще сделать две вещи. Во-первых (конкретно касается Росы, как в других системах не знаю), установить консольный редактор nano - есть в репозитории и устанавливается как всякая другая программа, в приложении "Установка и удаление программ". Во-вторых, посмотреть, какие ресемплы (resample-method) вообще допускаются. Чтобы получить список всех допустимых значений resample-method можно воспользоваться командой:

Код: Выделить всё

pulseaudio --dump-resample-methods
У меня так получилось вот что:

Код: Выделить всё

trivial
speex-float-0
speex-float-1
speex-float-2
speex-float-3
speex-float-4
speex-float-5
speex-float-6
speex-float-7
speex-float-8
speex-float-9
speex-float-10
speex-fixed-0
speex-fixed-1
speex-fixed-2
speex-fixed-3
speex-fixed-4
speex-fixed-5
speex-fixed-6
speex-fixed-7
speex-fixed-8
speex-fixed-9
speex-fixed-10
ffmpeg
auto
copy
peaks
soxr-mq
soxr-hq
soxr-vhq
Выбрал speex-float-9 - просто стер 1 и вбил 9. Ну, и другие параметры поменял. Разумеется удалив во всех четырех срочках символ комментария (;). Дискретизацию по умолчанию решил оставить как есть 44100, а вот альтернативную поставил по максимуму для Creative X-Fi HD, т.е. 96000. При том, что уставленный в материнке Realtek ALC1150 поддерживает вдвое большую дискретизацию - до 192000.

Кстати, чтобы посмотреть поддерживаемые звуковушкой частоты дискретизации можно зайти в папку /proc/asound/, в которой открыть файл cards (например, с помощью KWriter, выбрав его при открытии данного файла) и там определить, какое устройство нас интересует: card0, card1, card2 ... Тогда вывести список поддерживаемых частот дискретизации можно командой:

Код: Выделить всё

grep rate /proc/asound/cardХ/codec#0
где Х = 0, 1, 2 - порядковый номер интересующего нас устройства. В моем случае Х=1. Вот что получилось:

Код: Выделить всё

    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    rates [0x560]: 44100 48000 96000 192000
    rates [0x560]: 44100 48000 96000 192000
    rates [0x560]: 44100 48000 96000 192000
    rates [0x560]: 44100 48000 96000 192000
    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    rates [0x560]: 44100 48000 96000 192000
    rates [0x560]: 44100 48000 96000 192000
    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    rates [0x560]: 44100 48000 96000 192000
Таким образом, редактируемые четыре строки приобрели следующий вид ( default-sample-format, как видим, тоже изменил):

Код: Выделить всё

resample-method = speex-float-9
default-sample-format = s24le
default-sample-rate = 44100
alternate-sample-rate = 96000
Вообще, как пишут, для default-sample-format допускаются следующие значения: u8, s16le, s16be, s24le, s24be, s24-32le, s24-32be, s32le, s32be float32le, float32be, ulaw, alaw. https://sllite.ru/2016/03/улучшаем-каче ... ulseaudio/
Ну, поверим, чего уж там... :)

В конце требуется еще перезапустить pulseaudio командой:

Код: Выделить всё

pulseaudio --kill && pulseaudio --start
Иногда, правда рекомендуют перед всеми этими метаморфозами сохранить копию дефолтного файла /etc/pulse/daemon.conf, но я добрый совет самоуверенно проигнорировал. В крайнем случае, дефолтные занчения можно найти в Интернете...

И каков же результат? Да, качество звука заметно улучшилось, хотя и без "вау-эффекта", скажем так. Вывод звука осуществлялся и осуществляется на гарнитуру-середнячок HyperX Cloud, хотя в дальнейшем к внешней звуковушке было намерение прикупить аудиофильские наушники от Аудиотехники... Но то, что звук заметно улучшился - это факт. При этом опасения, что возрастет нагрузка на процессор не оправдались - столбик нагрузки процессора плазмоида "Монитор нагрузки системы" при воспроизведении звука не шевелился (если что, процессор AMD A10-6800K).

И вот свершилось - пришла внешняя карточка, а вместе с ней переходник с 3,5" на 6,3", и оптический кабель ODT Toslink (по отзывам на Линуксе звук заметно лучше по оптике в сравнении с USB, хотя не совсем понятно почему - и тут и там идет ведь цифровой сигнал). И тут меня ждало горькое разочарование. Несмотря на хвалебные отзывы в адрес дискретных карт с одновременным поношением встроенных... отличий качества звука не обнаружил. :( Мало того, возникли дополнительные проблемы:
а) Несмотря на установленную утилиту lirc, как это рекомендовано на вышеупомянутом сайте со списком звуковых карт, поддерживающих ALSA, громкость не регулировалась. При том, что на экране полоска громкости при вращении колесика таки отображается и полоска двигается туда-сюда, но громкость при этом не меняется:
Изображение
При этом, на том же сайте в дальнейшем разъяснении сказано, что надобно создавать какие-то три файла и дадее что-то делать... Все на английском... Короче, у меня, как говорится, моск взорвался. :)
б) Как видно от вышеприведенного скриншота (под спойлером), оптический выход - четвертая строчка - Встроенное аудио Цифровое стерео (IEC958) вроде как присутствует, но, в то же время, не активно. И есть, и нет.
в) Наконец, маленький кусочек металла - переходник с 3,5" на 6,3" выполнен настолько коряво, что звук то пропадал, то появлялся... Короче, требовалось постоянно шевелить, а, поймав нужное положение, не дышать, дабы не сбить.
Короче, сплошное расстройство. Отключил и положил в коробку (хотя сегодня ради скриншота опять извлек и подключил ненадолго). Про аудиофильские наушники тоже решил забыть - предполагалось их подключить к внешней зауковушке для музыки и видео, а гарнитуру HyperX Cloud оставить на встроенной звуковушке для болтовни в онлайне, записи видео с экрана и т.п. Теперь же выяснилось, что качество встроенного и внешнего звука практически не отличаются. Поэтому было решено присмотреть гарнитуру от той же Аудиотехники - как я понимаю, на базе прошлогодней аудиофильской модели. Хотя и стоимость подороже аудифильских (обычных, конечно, не премиальных) наушников этого года.

Ну, а коль скоро остаемся на встроенной звуковушке, буквально сегодня решил вернуться к многострадальному файлу /etc/pulse/daemon.conf. Чтобы, так сказать, выжать из встроенного аудио все, на что оно способно. Красть так миллион, ... ну, и далее там что-то еще было. :D Иными словами, как говорится, "Остапа понесло"... Как уже упоминалось, встроенное аудио поддерживает дискретизацию до 192000. Ну, и остальные параметры тоже подредактировал на всю дурь. Вот что в итоге получилось:

Код: Выделить всё

resample-method = soxr-vhq
default-sample-format = s32le
default-sample-rate = 192000
alternate-sample-rate = 192000
Ну, да, согласен, кошмар-ужас-тихий. Но... таки процессор не реагирует и столбик плазмоида "Монитор загрузки системы" как был внизу при воспроизведении аудио, так и остался, не шелохнулся. А вот улучшился ли звук - вот тут затрудняюсь сказать - вроде бы стал чуть-чуть получше, но не исключено, что это просто своеобразный эффект плацебо. Так или иначе, в последнем изменении заметного улучшения качества звука не заметил. В отличие от первого изменения. Вот такой вот получился опыт экспериментирования со звуком. :)
Изображение

Harrys77
Сообщения: 249
Зарегистрирован: 19 фев 2017, 20:42
Operating system: Rosa Fresh R8.1 64bit; 32bit KDE 4.14
RussianFedoraRemix WS 27 x86_64
Mageia 6 WS x86_64
Windows 7 HP x86_64
Win XP 32 bit Pro
Android 5.1 ))
Откуда: Москва

Re: Настройка звука PulseAudio

Сообщение Harrys77 » 26 мар 2018, 16:15

сюда не пробовали зайти? - viewtopic.php?f=11&t=5449 :)
Последний раз редактировалось Harrys77 26 мар 2018, 16:20, всего редактировалось 2 раза.

dragon
Сообщения: 126
Зарегистрирован: 15 мар 2016, 17:16
Operating system: ROSA Desktop Fresh R10 KDE
Откуда: Балаково, Саратовская обл.

Re: Настройка звука PulseAudio

Сообщение dragon » 26 мар 2018, 16:19

В смысле в alsamixer? Да, заходил.
Изображение

Harrys77
Сообщения: 249
Зарегистрирован: 19 фев 2017, 20:42
Operating system: Rosa Fresh R8.1 64bit; 32bit KDE 4.14
RussianFedoraRemix WS 27 x86_64
Mageia 6 WS x86_64
Windows 7 HP x86_64
Win XP 32 bit Pro
Android 5.1 ))
Откуда: Москва

Re: Настройка звука PulseAudio

Сообщение Harrys77 » 26 мар 2018, 16:21

примерный daemon.conf, звук 5.1, hda_intel driver
; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
shm-size-bytes = 131072 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

resample-method = soxr-vhq
; avoid-resampling = false
enable-remixing = yes
; remixing-use-all-sink-channels = yes
enable-lfe-remixing = yes
; lfe-crossover-freq = 0

flat-volumes = no

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

default-sample-format = float32le
default-sample-rate = 48000
alternate-sample-rate = 48000
default-sample-channels = 6
default-channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe

default-fragments = 2
default-fragment-size-msec = 272

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
вот тогда "заиграет" ))

dragon
Сообщения: 126
Зарегистрирован: 15 мар 2016, 17:16
Operating system: ROSA Desktop Fresh R10 KDE
Откуда: Балаково, Саратовская обл.

Re: Настройка звука PulseAudio

Сообщение dragon » 26 мар 2018, 16:25

Спасибо. Но хорошо бы подробнее - почему именно так, а не иначе? Ну, если не трудно, конечно.
Изображение

Harrys77
Сообщения: 249
Зарегистрирован: 19 фев 2017, 20:42
Operating system: Rosa Fresh R8.1 64bit; 32bit KDE 4.14
RussianFedoraRemix WS 27 x86_64
Mageia 6 WS x86_64
Windows 7 HP x86_64
Win XP 32 bit Pro
Android 5.1 ))
Откуда: Москва

Re: Настройка звука PulseAudio

Сообщение Harrys77 » 26 мар 2018, 16:33

времени пока не много, сорри, под свою карточку смотрите размер буфера - shm-size-bytes =

а так же под свой конфиг правьте:
default-sample-rate =
alternate-sample-rate =
default-sample-channels = ?
default-channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,........

default-fragments =
default-fragment-size-msec =

можете еще с nice livel поиграться, чище звук будет вроде как.

инструкций в гугле много, можно в вики самого пульса глянуть, там все просто. Пробел тоже надо удалять в начале строки, помимо ; :oops:

dragon
Сообщения: 126
Зарегистрирован: 15 мар 2016, 17:16
Operating system: ROSA Desktop Fresh R10 KDE
Откуда: Балаково, Саратовская обл.

Re: Настройка звука PulseAudio

Сообщение dragon » 26 мар 2018, 16:45

Класс! Спасибо, почитаю и попробую еще поиграть с параметрами...
Изображение

Harrys77
Сообщения: 249
Зарегистрирован: 19 фев 2017, 20:42
Operating system: Rosa Fresh R8.1 64bit; 32bit KDE 4.14
RussianFedoraRemix WS 27 x86_64
Mageia 6 WS x86_64
Windows 7 HP x86_64
Win XP 32 bit Pro
Android 5.1 ))
Откуда: Москва

Re: Настройка звука PulseAudio

Сообщение Harrys77 » 26 мар 2018, 19:44

давно уже разбирался со звуком в Росе, точно не помню уже всего, но знаю что там все в порядке, только пульса поднастроить, а настройки alsa все в норме вроде. Единтсвенное что стоит еще глянуть, так это частоту в /usr/share/alsa/alsa.conf

параметр - defaults.pcm.dmix.rate 48000

само-собой надо выставлять частоту своей карточки.

п.с. ну и сборка виртуальных устройств многоловых тоже вполне возможна. И можно раскидывать по источникам каналы, переназначать их и т.п.. У Arch Linux толковая вики по звуку и не только у них. Утилитки все в Росе есть, только возможно что-то придется доустанавливать из пакетов по звуку.

Ответить