Многоканальный звук в Linux

Обсуждения статей на wiki Росы. Внимание: придерживаемся правила "одна статья на вике -- один топик"
Ответить
Аватара пользователя
JaamMaiKa
Сообщения: 21
Зарегистрирован: 03 окт 2014, 23:37
Operating system: Роса 2016.1 Plasma

Многоканальный звук в Linux

Сообщение JaamMaiKa » 04 апр 2015, 17:24

Многоканальный звук в Linux

ВНИМАНИЕ!
На смену Пульсаудио пришел PipeWire.
Читаем об этом ниже.

В Linux возникает проблема с включением
многоканального звука на некоторых звуковых кодеках (например ALC662).
Проблема именно с выводом звука через линейный выход (система видит только HDMI).
Решается следующим образом (перед настройкой отключите внешние устройства: камера, наушники и т. д. Так же, обязательно удалите конфиги Пульсы ~/.config/pulse/ и перезагрузите ПК).
Команда aplay -l покажет все звуковые устройства в системе.
(Если aplay -l пишет ...no soundcards found... - значит в системе нет драйвера под этот звуковой кодек, случается и так, что его вообще не существует под Линукс, выход - дискретная звуковая карта).

Нас интересует аналоговый вход/выход:
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog] (ПРИМЕР! И далее, на примере для звуковой системы 5.1)
Выполним в терминале: alsamixer,
нажав F6, вызовем меню выбора звуковой карты и
выбираем действующую - HDA Intel PCH
Смотрим колонку " Master", чтобы громкость была 100% и колонка "PCM" была включена. Так же включаем каналы Front , Surround , Center , LFE (активные отображены 00, не активные мм, переключаются латинской м). Двигаясь по настройкам вправо, в пункте "Channel" ставим 6 каналов.
(ВАЖНО! задать многоканальность именно в альсамиксере - иначе басов вы не услышите, сабвуфер будет работать как обычная колонка).
Если alsamixer не сохраняет настройки,
выполнить в терминале:
sudo alsactl store
После сохранения выйти из альсамиксера (Esc).

Перезагружаем систему. Можно воспользоваться командами чтобы перезапустить Пульсу ( pulseaudio -k и pulseaudio --start ), но часто демон отваливается, поэтому будем перезагружаться).

Необходимо установить Audacious (много плееров поющих, удобных, а нам нужен лучший по звуку).
Настроим Audacious, переходим и активируем - файл > настройка > звук > PulseAudio
разрядность - выше чем реальная разрядность аудио-карты поднимать не стоит - искажение, щелчки (cмотрим какие значения поддерживает оборудование:
aplay --device hw /dev/urandom —dump-hw-params).
переходим > модули > эффекты:
Вкл. > Кристаллизатор
Вкл. > Расширенное стерео
Для улучшения звука ставим в систему ladspa и pulseaudio-equalizer. Pulseaudio-equalizer глючная штука и чтобы настройки не сбрасывались, делаем следующее:
запускаем pulseaudio-equalizer, активируем EQ Enabled и в терминале выполняем:
kwrite /tmp/eqcommands.sh
копируем строку:
load-module module-ladspa-sink sink_name=ladspa_output.mbeq_1197.mbeq master=alsa_output.pci-0000_00_1b.0.analog-stereo plugin=mbeq_1197 label=mbeq control=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
(на аргумент "master" система ругается, поэтому ставим "sink_master" и обратите внимание! каналов звука 2 - analog-stereo) выполняем в терминале от рута:
kwrite /etc/pulse/default.pa
и в открывшийся документ добавляем ранее скопированную (исправленную) запись, сохраняем. Перезагружаемся.
Далее, в системных настройках звука переключаем профиль «Line Out» на «LadSpa».

Возможно,
ваша аудио-карта поддерживает воспроизведение сигнала с более высокой опорной частотой (чаще всего defaults - 48000Hz). Тогда, просто необходимо настроить alsa на работу в высокочастотном режиме.
Чтобы узнать частоту дискретизации пишем в терминале:
grep rate /proc/asound/card0/codec#
и жмем Tab
codec#0 codec#3
теперь, меняя номер кодека (codec#0/codec#3) находим нашу карту:
grep Codec /proc/asound/card0/codec#0
Codec: Realtek ALC662 rev1
grep Codec /proc/asound/card0/codec#3
Codec: Intel PantherPoint HDMI
Наш вариант - codec#0, выполняем:
grep rate /proc/asound/card0/codec#0
rates [0x160]: 44100 48000 96000
rates [0x160]: 44100 48000 96000
rates [0x160]: 44100 48000 96000
rates [0x160]: 44100 48000 96000
rates [0x160]: 44100 48000 96000
rates [0x160]: 44100 48000 96000
rates [0x160]: 44100 48000 96000
крайний столбец, это и есть максимальная частота дискретизации действующей карты.
От рута открываем alsa.conf:
kwrite /usr/share/alsa/alsa.conf
изменим строку:
defaults.pcm.dmix.rate 48000
на частоту нашей аудио-карты
defaults.pcm.dmix.rate 96000
ставим 6 каналов:
defaults.pcm.dmix.channels 6

По умолчанию и в pulse установлено минимальное качество звука, меняем на лучшее - от рута открываем daemon.conf:
kwrite /etc/pulse/daemon.conf
находим строки:
resample-method = speex-float-1
default-sample-format = s16le
заменим на:
resample-method = soxr-vhq
default-sample-format = float32le
здесь же, в демоне, пропишем частоту нашей аудио-карты:
default-sample-rate = 96000
alternate-sample-rate = 96000
раскомментируем (убрать точку с запятой), сохраняем и перезапустим pulse (перезагрузить систему).

С сабвуфером на кодеке ALC662 полная засада.
Чтобы он начал звучать в системных настройках
ставим два канала вывода звука (на 5.1 переключаем только когда многоканальный звук имеем в источнике).
В настройках Пульсы (daemon.conf) изменение каналов на 6, enable-remixing = yes и lfe-crossover-freq = 42 ни на что не влияют. 5.1 Пульса берет из заданных нами 6 каналов в альсмиксере.

Все возможные значения параметра resample-method можно узнать командой:
pulseaudio --dump-resample-methods
а узнать какие значения параметров сейчас установлены у PulseAudio:
pulseaudio --dump-conf


На смену Пульсаудио пришел PipeWire.
Системд-юнит сам запустит, настроит и сделает так, чтобы программы, которым требуется Пульса, взаимодействовали с PipeWire.
Да, Пульса выпилится (только настройки Альсы будут работать).
Что получаем от перехода на PipeWire?
Меньшую нагрузку на процессор.
Памяти жрет тоже меньше.
Латентность PipeWire значительно ниже чем у Пульсы.
Для установки нужны следующие пакеты:
pipewire
pipewire-alsa
pipewire-pulse
ну и Джек, если пользуетесь:
pipewire-jack

Из улучшательств, можно повысить частоту дискретизации (/etc/pipewire/pipewire.conf):
default.clock.rate = 96000
"sample-format" по дефолту имеет значение "float32le".
И настроить Audacious:
Модуль вывода>Pulsefudio
Эффекты> Кристаллизатор
> Расширенное стерео
>Sox Ресемплер (выставить частоту
дискретизации вашей карты).
В системных настройках звука ставим два канала вывода звука (Analog Stereo).

Текущие настройки смотрим командой:
pactl info

Пробуем, сравниваем.
Вложения
снимок7.png
снимок4.png
снимок2.png
снимок1.png
Последний раз редактировалось JaamMaiKa 30 апр 2021, 22:02, всего редактировалось 69 раз.

Аватара пользователя
VictorR2007
Сообщения: 6422
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2021.1
Откуда: Северодвинск

Re: Многоканальный звук в Rosa Linux

Сообщение VictorR2007 » 04 апр 2015, 17:33

Спасибо.
Только неудобно приложены картинки.
При создании сообщения, внизу есть кнопка "Стандартный ответ".
Если её нажать, то можно прикладывать картинки к сообщению здесь, на форуме.

Аватара пользователя
JaamMaiKa
Сообщения: 21
Зарегистрирован: 03 окт 2014, 23:37
Operating system: Роса 2016.1 Plasma

Re: Многоканальный звук в Rosa Linux

Сообщение JaamMaiKa » 04 апр 2015, 19:33

Исправил.

Аватара пользователя
JaamMaiKa
Сообщения: 21
Зарегистрирован: 03 окт 2014, 23:37
Operating system: Роса 2016.1 Plasma

Re: Многоканальный звук в Rosa Linux

Сообщение JaamMaiKa » 08 апр 2015, 18:25

Дополнил.
23.11.2015

*d0s
Сообщения: 953
Зарегистрирован: 26 апр 2015, 18:11
Operating system: OS X

Re: Многоканальный звук в Rosa Linux

Сообщение *d0s » 12 июн 2016, 11:00

А зачем ставить high-priority = yes? По умолчанию ведь приоритет высокий? Куда ещё выше?
default-sample-rate = ????? alternate-sample-rate = ????? на мой взгляд от них никакого толку. Разве что лишняя нагрузка.
А настройка alsoftrc.conf разве бесполезна?

Аватара пользователя
JaamMaiKa
Сообщения: 21
Зарегистрирован: 03 окт 2014, 23:37
Operating system: Роса 2016.1 Plasma

Re: Многоканальный звук в Rosa Linux

Сообщение JaamMaiKa » 12 июн 2016, 22:06

А зачем ставить high-priority = yes?
На всякий случай. Пользовался UBUNTU, под нагрузкой были хрипы.
default-sample-rate = ????? alternate-sample-rate = ?????
Чтобы PULSEAUDIO не резала герцы - разница в звуке, даже на встроенной звуковой ощутимая.
А настройка alsoftrc.conf разве бесполезна?
Дополни, может кому и будет интересно.

*d0s
Сообщения: 953
Зарегистрирован: 26 апр 2015, 18:11
Operating system: OS X

Re: Многоканальный звук в Rosa Linux

Сообщение *d0s » 13 июн 2016, 06:34

JaamMaiKa писал(а):Дополни, может кому и будет интересно.
Нечего тут дополнять. В конфиге все расписано. Почему-то редактирование данного конфига считается необходимым только для игрушек, но я так не считаю.

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

# cp -p /etc/openal/alsoft.conf /etc/openal/alsoft.conf.sample
# cd /etc/openal/
# chmod a+r-w-x alsoft.conf.sample
Редактируешь от рута /etc/openal/alsoft.conf на свое усмотрение.

Аватара пользователя
Vochatrak
Сообщения: 805
Зарегистрирован: 22 сен 2014, 01:21
Operating system: Rosa fresh R5

Re: Многоканальный звук в Rosa Linux

Сообщение Vochatrak » 13 июн 2016, 22:59

Почему-то редактирование данного конфига считается необходимым только для игрушек, но я так не считаю.
А где можно еще задействовать OA?
Нечего тут дополнять. В конфиге все расписано.
Что конкретно править советуете?

*d0s
Сообщения: 953
Зарегистрирован: 26 апр 2015, 18:11
Operating system: OS X

Re: Многоканальный звук в Rosa Linux

Сообщение *d0s » 14 июн 2016, 15:24

Vochatrak писал(а):А где можно еще задействовать OA?
mplayer?
Vochatrak писал(а):Что конкретно править советуете?
hrtf (44100kHz only);
wide-stereo;
drivers;
emulate-eax (false)

Есть ещё fmod. Мне попадались плееры, использующие либы fmod.

Аватара пользователя
Vochatrak
Сообщения: 805
Зарегистрирован: 22 сен 2014, 01:21
Operating system: Rosa fresh R5

Re: Многоканальный звук в Rosa Linux

Сообщение Vochatrak » 14 июн 2016, 22:27

А где можно еще задействовать OA?
mplayer?
Но зачем? Тем более, звук через OA хуже.
Что конкретно править советуете?
hrtf (44100kHz only);
Обрезать себе диапазон? Ради чего?
wide-stereo;
Да (не всегда) нужно.
emulate-eax (false)
Чем EAX не угодил?

supperyura
Сообщения: 1
Зарегистрирован: 06 июн 2021, 00:48
Operating system: linux mint

Многоканальный звук в Linux

Сообщение supperyura » 06 июн 2021, 01:02

Всем здравствуйте!
Помогите пожалуйста разобраться с pipewire. Не могу настроить сабвуфер на системе с 5.1. Пробовал настроить в Fedora 34. Стереозвук идет с пяти колонок, а вот звук на сабвуфер не идет.
Согласно рекомендации настройки звука из шапки для pulseaudio работает очень хорошо. Приятно слушать музыку не выкручивая звук на большую громкость, так как качество очень хорошее и слышно все детали. Но хотелось бы перейти в перспективе на Fedora, т.к. мне очень понравился 40 гном. Очень удобное переключение между виртуальными рабочими столами. Но проблема именно со звуком 5.1, а там pipewire. Настройки в Alsamixer указал, что система 5.1,т.е. 6 - chanel. Звуковая карта Creative X-FI Titanium.
Огромное спасибо за помощь. В Linux системах, еще не очень глубоко разбираюсь, если какие данные нужны будут, то возможно спрошу, но в случае, если не найду через поисковые системы.

Ответить