У меня есть хобби — написание музыки. Поэтому после установки свежей версии Ubuntu на свой ноутбук мне понадобилось настроить звук чуть более тонко, чем обычным пользователям. К моему сожалению, сделать это у меня не вышло. Тем не менее, я хочу рассказать о шагах, которые немного приблизили меня к результату. Я надеюсь, что кому-то это сэкономит время. А может, с помощью читателей я смогу пройти дальше. Если вы пользуетесь Linux и можете произнести слова sidechain и компрессия в одном осмысленном предложении — Добро пожаловать!
Кратко
Для начала более подробно о сути задачи: есть ноутбук Asus N55 с Kubuntu 17.10 на борту. Нужно добиться той же конфигурации, которую можно получить на Windows:
- Без подключения сабвуфера драйвер работает в режиме 2.0
- При подключении сабвуфера драйвер переключается в режим 2.1. При этом переключении к каналам применяются частотные фильтры — НЧ для сабвуфера и ВЧ для колонок
- При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается
- При необходимости низких задержек можно с помощью выбора другого драйвера перейти в режим, обеспечивающий монопольный захват звуковой карты
Сразу после установки получаем нерабочий сабвуфер и нерабочие наушники.
В результате моих опытов мне удалось добиться следующего состояния системы:
- Драйвер работает в режиме 2.1
- При подключении сабвуфера ничего не изменяется
- При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается, но фильтры продолжают работать и в наушники идут только ВЧ
- При необходимости низких задержек можно адресоваться к карте через ALSA, но в этом режиме не работает сабвуфер, фильтры. Но работает переключение на наушники
Для знакомства с LMMS(с которой как оказалось нормально работать нельзя, но это отдельная тема) этого в общем-то хватает.
Если вы тоже добрались до этого состояния, то ничего нового этой статьей я вам не расскажу.
Обзор
Вы когда-нибудь задумывались о том, как устроена звуковая система Linux? Вот и я нет — обычно звук либо был не нужен, либо как-то работал, колонки играли — ни о каких фокусах подключения сабвуфера или наушников речи не было.
Похоже, теперь самое время узнать об этом немного больше. Гугление показало следующую картину:
- ALSA — это компонент, обеспечивающий взаимодействие звуковых железок с ядром. Обеспечивает самый прямой доступ к устройству из разумных вариантов, но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится.
- Для этих целей как раз и нужен PulseAudio — это sound-сервер, занимающийся маршрутизацией звуковых потоков. Именно он будет отвечать за микширование потоков звука из разных приложений при одновременном использовании. Ценой за такое удобство является дополнительная задержка звукового потока.
- Существует еще JACK — аналог PulseAudio, позиционирующийся как "профессиональный" sound-сервер. Обещает крутые возможности по маршрутизации и минимальную задержку при диспетчеризации потоков.
Мысль первая: удаляем PulseAudio — ставим JACK
Мало кто говорит, что PulseAudio де-факто является стандартом для интеграции звука, по крайней мере в Ubuntu. Практически любой софт, который издает звуки, будет с большой долей вероятности пользоваться PulseAudio API. FF, например, для поддержки JACK надо отдельно собирать.
Поэтому удалять PulseAudio не стоит, если вы не уверены, что все чем вы будете пользоваться, умеет работать с JACK. Видимо, поэтому существует еще вариант интеграции Jack-PulseAudio. Но от этого варианта я отказался, т.к. для работы в том софте, где требуются низкие задержки, меня устраивает монопольный доступ через ALSA(под Windows это работает так же — там, где нужна низкая задержка, запрашивается монопольный доступ). Возможно, когда дело дойдет до установки какого-нибудь Ardour, мне придется вернуться к этому варианту.
Мысль вторая: ALSA и PulseAudio надо настраивать
Так, ну хорошо, JACK не нужен. Выходит, чтобы все заработало, мне надо настроить ALSA-компонент для своей карточки и интеграцию его с PulseAudio
PulseAudio
Тут нам из коробки предлагают вот такую UI консоль
Мне кажется, к такому инструменту пояснения излишни. После применения настроек вы сразу сможете слышать изменения, так что пробуйте.
Еще amarao советует обратить внимание на pactl /pacmd. Если я доберусь — напишу, что там к чему с этими утилитами
Диагностика ALSA
Первым делом понадобятся хоть какие-то инструменты для диагностики — это пакет alsa-utils
sudo apt install alsa-utils
Теперь посмотрим, как видит наше оборудование система
aplay -l
Кроме того, настройки надо проверять. Для этих целей обнаружилась утилита speaker-test
вызов speaker-test --help покажет, что умеет утилита, но мне особенно интересна конфигурация
speaker-test -Dplughw:1,0 -c4
- -D — id устройства. 1,0 — это индексы устройства и подустройства, их мы видели выше в выводе aplay
а вот структура текстовой части описана тут - -c — количество каналов на которые будет выведен тест
В моем случае первые 2 канала работают хорошо, а вот дальше интересно — 3й канал LFO не звучит, но зато звучит 4й канал. Такое ощущение, что LFO настроен как… стерео?.. Мне кажется, это часть моей проблемы.
Настройка ALSA
Тут и тут советуют поизучать dmix — это модуль микшера каналов в ALSA — буду смотреть
alsamixer
alsamixer — псевдографический интерфейс микшера. Половина советов по настройке ограничивается этой утилитой. И действительно, именно эта утилита часто покажет, когда канал неожиданно замьютился или у него сбросился уровень громкости.
Но настройка в микшере результата не дала.
hdajacksensetest
Следующая полезная утилита — hdajacksensetest. Показывает какие разъемы детектируют подключение внешних устройств.
Ок, я вижу, что мой внешний сабвуфер подключен на порт 0x1a.
Давайте попробуем найти как можно объяснить карте, куда выводить LFO.
hdajackretask
Большинство советов по настройке маппинга указывают на утилиту hdajackretask:
Тут вроде бы все понятно — есть порты, есть маппинг. К сожалению, никакие манипуляции с портом 0x1a к успеху не привели.
Может, после настройки надо явно перезагружать сервисы?
sudo alsa force-reload
Нет, смотрим дальше.
HDAAnalyzer
Для настройки маппинга есть еще одна утилита:
скачать ее можно в виде python-скрипта(!!!) вот тут.
Выглядит эта штука как прокачанный вариант hdajackretask — она даже умеет строить схему маршрутизации портов графически. Но эксперименты с этой штукой тоже не привели ни к чему, кроме полной потери звука.
Никакого гайда по настройке я не нашел, поэтому пробовал методом проб и ошибок.
Правка конфигов
Других утилит, способных помочь в настройке звука я не обнаружил. Остается попробовать только одно — искать и править конфиги. С помощью гугла и find, мне удалось обнаружить несколько локаций.
PulseAudio
/usr/share/pulseaudio
в папке alsa-mixer тут лежат конфиги. Т.к. Pulseaudio более-менее работает тут я ничего трогать не стал.
/etc/pulse/daemon.conf
Как я понял, это настройки службы pulseaudio — один из немногих конфигов, изменения в котором на что-то влияют. именно тут настройками:
enable-lfe-remixing = yes
lfe-crossover-freq = 200
я заставил звучать свой сабвуфер из Pulseaudio так, как он должен. Для lfe-crossover-freq 200 — это очевидно частота среза в герцах.
Но тут же становится очевидно, что настроить нечто более сложное(при подключении наушников прекращать отправлять бас на сабвуфер) в этом конфиге возможности нет.
ALSA
/usr/share/alsa/*
Тут лежит несколько shell-скриптов, в т.ч. alsa-info.sh, который может быть полезен при подготовке дефекта в трекере и т.д.
а в папке pcm какие-то конфиги, разобраться в которых мне не удалось:
pcm.!center_lfe {
@args [ CARD DEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_CENTER_LFE_CARD
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.center_lfe.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_CENTER_LFE_DEVICE
]
default {
@func refer
name defaults.pcm.center_lfe.device
}
}
}
type empty
slave.pcm {
@func refer
name {
@func concat
strings [
"cards."
{
@func card_driver
card $CARD
}
".pcm.center_lfe." $DEV ":CARD=" $CARD
]
}
}
hint {
show {
@func refer
name defaults.namehint.basic
}
description "Center and Subwoofer speakers"
device $DEV
}
}
Трогать их я пока не решился.
/etc/modprobe.d/alsa-base.conf
— второй доказанно полезный конфиг. Вот эта строчка, дописанная в низ конфига, реально заставила работать наушники под ALSA:
options snd-hda-intel model=auto,auto probe_mask=1
Про настройку этого конфига написано довольно много. Одна из его целей, как я понял — сопоставить устройствам кодеки(model). Кодеки это… какой-то пресет маппингов… Есть табличка (копия есть тут). Думаю, в большинстве случаев для стандартных конфигураций этого действительно достаточно.
Там описаны модели для разных контроллеров. Но если для вас они не срабатывают, то вам рекомендуют добавить свою конфигурацию.
Звучит классно, но тут я должен сделать 2 ремарки:
- гайда как сделать свою конфигурацию — что конфигурить, куда сохранять, коммитить и т.д. я не нашел.
- После изменения настроек в alsa-base.conf нужно перезагружать ОС. Без перезагрузки никакие
sudo alsa force-reload
и даже хардкорныйecho 1 | sudo tee /sys/class/sound/hwC1D0/reconfig
не заставляют ALSA перечитать кодек устройства.
Кстати, в /sys/class/sound/hwC1D0/
— лежат файлы уже непосредственно устройства, т.е. как я понял hdajackretask работает именно с этими файлами. Тут тоже, наверное, можно сделать что-то полезное, если знать куда что писать.
Выводы
На этом у меня все. После правок в daemon.conf
и alsa-base.conf
, я получил результат, описанный в начале. Это все, чем я мог помочь вам в деле настройки звука под Ubuntu.
Большинство приведенной тут информации я получил здесь и документации ALSA на Arch Linux.
Как я и говорил, после проделанной работы появляется больше вопросов, чем ответов:
- как так pulseaudio нормально работает с сабвуфером, а ALSA нет???
- какие все-таки конфиги надо править для правки маппинга портов??
- как оформить вот свою модель HD-Audio???
- насколько ALSA эффективна по сравнению с аналогами в других ОС? подходит ли она вообще для работы со звуком?
Общий вывод, который я могу сделать по результатам проделанной работы: в целом видно, что если GUI, например, сообщество более-менее занимается, то звуковая подсистема явно остается за бортом.
На сегодняшний день возможности использования этой подсистемы не выдерживают никакой конкуренции с аналогами в других популярных ОС.
Такие досадные проблемы, как неработающий сабвуфер или наушники, или отсутствие НЧ-фильтра для сабвуфера, заставляют еще раз подумать, прежде чем отказываться от предустановленного софта. Ведь никому не хочется получать от своей железки меньше отдачи из-за кривостей ОС.
з.ы. Если есть еще какие-то инструменты, мануалы, про которые полезно знать при настройке звука — пишите, я добавлю их в статью
з.з.ы. По поводу своей конкретной проблемы я завел тикет, владельцы Asus N55 — велкам:
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1733029
Комментарии (44)
Lotgyero
02.12.2017 20:23тут много странной неописанной магии
www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules
и «вдогонку»
askubuntu.com/questions/43950/how-can-i-apply-a-ladspa-plugin-to-a-pulseaudio-stream
к сожалению хороших гайдов еще не выгуглил, но доки намекают на немалые возможности… а ещё если все это «запитонить на гуях...»
kovserg
02.12.2017 21:03Поздравляю вы столкнулись с intel hda. У меня была такая проблема поначалу. Но параметр options snd-hda-intel model всё поправил. В последних версиях вроде само работает из коробки.
Но есть другие чудеса в ubuntu. (У меня 14.04 LTS)
1. Например хочется записать звук который воспроизводится на колонки. Оказывается это делается весьма замысловато.
loop-device/etc/modprobe.d/sound.conf
options snd_hda_intel index=0
options snd_aloop index=1
/etc/modules-load.d/alsa-loop-device.conf
snd_aloop
/etc/asound.conf
pcm.xxx {
type plug
slave.pcm {
type multi
slaves {
a { channels 2 pcm "hw:0,0" } # the real device
b { channels 2 pcm "hw:1,0" } # the loopback driver
}
bindings {
0 { slave a channel 0 }
1 { slave a channel 1 }
2 { slave b channel 0 }
3 { slave b channel 1 }
}
}
ttable [
[ 1 0 1 0 ] # left -> a.left, b.left
[ 0 1 0 1 ] # right -> a.right, b.right
]
}
/etc/modules-load.d/alsa-loop-device.conf
asnd_loop
/etc/modprobe.d/sound.conf
options snd_hda_intel index=0
options snd_aloop index=1
mihmig
02.12.2017 22:30Получается, если звук на компьютере не задействуется по прямому назначению — можно добавить «входной» канал:
При замыкании разъёмов аудиовыхода/микрофона соответствующим сопротивлением можно инициировать запуск shell-скрипта?Jorixxx Автор
02.12.2017 23:03Не могу утверждать наверняка, но скорее всего это так — должна же быть какая-то триггерная модель, чтобы обслуживать подключение нового устройства к звуковой карте
devrow
02.12.2017 23:03Многие, кто пилит alsa, pulseaudio и далее по списку — для них это такое же хобби.
Возможно, имеет смысл напрямую связаться и спросить как и что.Jorixxx Автор
02.12.2017 23:11Да. Думаю, дойдет до этого) Именно это подтверждает мои слова о том, что никто особо в звук не вкладывает. Странно, что до сих пор не нашлось аналога Canonical или RedHat, зарабатывающего на Linux в сообществе звукорежиссеров etc. Публика весьма платежеспособная и платит сейчас немалые деньги за софт, которым пользуется. Хотя, это, конечно субъективный взгляд. Возможно объем разработки и маркетинга, чтобы довести в Linux это до ума переманить этих людей с маков — это неподъемная величина
Lotgyero
02.12.2017 23:45supercollider.github.io/tutorials
вот еще интересный, наверное, проект
там еще был какой-то проект по графическому проектированию звука, но наиболее зрелые что-то не очень-то и развиваются(ИМХО) ну и внезапные падение порой… случаются
sotnikdv
03.12.2017 01:30Странно, что до сих пор не нашлось аналога Canonical или RedHat, зарабатывающего на Linux в сообществе звукорежиссеров etc.
Ничего странного.
Софт там специфичный и под линь его нет. Это во-первых.
Производители софта плотно играют в игры, которыми, формально, должен бы заинтересоваться антимонопольный, но всем пофиг. Это мы еще не говорим о стоимости портирования. Это во-вторых.
Лейблы накопили просто феерическое количество форматов и сорцов, которые они пока не знают ни как монетизировать, ни как конвертить и вообще что с ним делать. Там сильная привязка к старым системам. Это в третьих.
Звукорежиссеры не определяют тренды, а следуют им. Что и как будет использоваться, определяют лейблы, которые сидят на контенте. И для независимых, кстати, тоже, т.к. это выбор софта и инфраструктуры. Можно легко и непринужденно, например, прибить ремиксеров всего мира к конкретному софту и платформе. Это в четвертых.
Поэтому звукорежиссеры переедут на линь последними, когда он станет мейнстримом и лейблы скажут ну ок, мигрируем.
Все, все что мог помимо NDA сказать — сказал.
Jef239
03.12.2017 10:23Поскольку у меня есть
брат-близнецдруг-звукорежиссер, то добавлю к предыдущему посту.
Оплата работы — идет за время. Уменьшил скорость из-за освоения нового софта — все равно, что поднял расценки.
Звукорежиссеру очень важна программа, с которой идет работа. Тот самый автоматизм на уровне пальцев. Смена программы — это примерно год-два на освоение на уровне автоматизма. Даже смена версии происходит со скрипом из-за мелких отличий в интерфейсе.
Кроме программы используется набор плагинов, тем или иным способом, обрабатывающих звук. Часть из них купленная, часть — вылеченная «таблеткой от жадности», но в целом этот набор — подороже программы. И опять-таки, переучиться на другой набор — можно, но долго. А для плагинов из имеющегося набора, звукорежиссер просто знает, что при каких положениях ручек, этот набор выдаст.
Железо — очень специфично. Например звуковая карта за $5000 — это всего лишь АЦП, без ЦАП (для ЦАП — вторая звуковуха). Подключается оно по FireWire и предназначено для монтажа в стойку. Поток данных — больше характерен для видео, чем для аудио — 192кГц на 48 бит на 8 каналов.
Сама операционка и комп — не важны. Когда Logic Pro перестал выходить под windows, то проще было сменить железо и устроить hackintosh, чем переходить на другую программу.
Водяное охлаждение… ну или оно, или вытаскивать экран, клавиатуру и мониторы в другую комнату. Водяное — было сделать проще, чем IP-KVM.
Задачки там чудные. Что стоит устройство внутреннего телевидения ради передачи кивка от аккомпаниатора к солисту.
Такого уровня студий — 5-10 в Питере, наверное до 1000 в России. Это же не высший пилотаж, а почти любительская студия.
avost
03.12.2017 02:20но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится
Тут вас кто-то обманул. Я, прочтя это, сильно удивился, пошёл запустил видео в vlc, открыл youtube ролик в хроме и включил песню в амароке. Все три источника заиграли одновременно и беспроблемно. Голая alsa.
Ну, то есть kde поверх неё ещё ;)dreamerchant
03.12.2017 05:10Насколько я знаю, в kde есть для этого phonon.
Lirein
03.12.2017 10:25Вы забываете про наличие аппаратного dmix на некоторых картах, и программный alsa_dmix модуль, который решает проблему микширования потоков. Пользовался ещё пока пульса была чем то вроде Пшшш-пфффф-пшшшшпффф…
firk
03.12.2017 11:04У меня тоже всё работает безо всяких дурацких надстроек (типа pulseaudio). Единственное назначение pulseaudio — удовлетворить зависимости того плохо написанного софта, который не знает про alsa но знает про pulseaudio (например ms после покупки скайпа быстро его привели к данному состоянию).
Kirill80
03.12.2017 13:36Э, тут, по-моему, вы несколько недопонимаете зачем нужен общесистемный микшер, каковым и является PulseAudio. Его задача свести множество разных по своим характеристикам (частота дискретизации, битность, уровени) потоков в один с одинаковыми параметрами и отправить на исполнительное устройство. Или, если есть несколько исполнительных устройств попытаться маршрутизировать потоки на каждое из них. ALSA же нужна для работы с драйвером устройства, т. е. она, к примеру, не сможет обеспечить вам вывод одновременно звука с просматриваемого вами ётюба и музыки с какого-нибудь плейера.
avost
04.12.2017 02:25ALSA же нужна для работы с драйвером устройства, т. е. она, к примеру, не сможет обеспечить вам вывод одновременно звука с просматриваемого вами ётюба и музыки с какого-нибудь плейера
Слушайте, но смешно же. Попробуйте уже сами, всё прекрасно выводится, я же написал, что хотя и был уверен, но удивился и специально пошёл проверять — включил vlc, YouTube и amarok.
Зы пришлось отказаться от файрфокса, который не осилил в алса, это менее болезненно, чем лезть в этот кошмар с пульсой.
quarckster
03.12.2017 12:50В альсе есть микшер, это модуль dmix, его просто надо настроить. Так что, автору явно ещё матчасть нужно подучить.
rkfg
03.12.2017 14:56Сколько помню, он всегда из коробки работал. Другое дело, что у альсы обычно фиксированная задержка (latency), на встроенном звуке порядка 20-25 мс, а у пульсы она динамическая, вплоть до 0.5 мс. Но там хватает своих проблем, например, если ядро не PREEMPT, даже со всеми реалтаймовыми и высокоприоритетными хаками пульса порой скипает, т.е. буфер опустошается, и слышен щелчок. При этом пульса начинает адаптироваться и увеличивать внутренние вотермарки и минимальную задержку. Если проц был сильно нагружен, то задержка может прыгнуть очень высоко, вплоть до 100-160 мс, и что интересно, механизмов автоматического её снижения, а также задания отличного от 0.5 мс минимума в коде нет, я смотрел (можно задать фиксированную задержку, как в альсе, но динамическая всегда начинается от 0.5). Задержка сбросится только после перезапуска демона.
Я чисто из-за этих трюков собираю собственное ядро с CONFIG_PREEMPT и таймером 1000 Гц, потому что в дебиане 100 Гц без преемптивности. Раньше долго сидел на альсе, но пульса в итоге пролезла везде и победила, да и стримить с ней куда проще, чем городить лупбэки.
0xd34df00d
04.12.2017 09:26Сколько помню, он всегда из коробки работал.
Лет 15 назад нужно было ручками .asoundrc править.Lirein
04.12.2017 16:26Даже не 15 а 10 или даже 9. Я последний раз правил в 2008 году.
Сейчас у меня Pulseaudio+FluidSynth. Переполз на него в связи с мультисит окружением, гибкостью и стабильностью пульсы.
GH2OOST
03.12.2017 12:50А вы уверены что что на Windows применяется фильтр НЧ и ВЧ? Просто у меня ноут N550JK и там, ну саб понятно всегда звучит низко, а фронтальные как с сабом, так и без саба звучат абсолютно одинаково. У меня версия драйвера 6.0.1.7250
Jorixxx Автор
03.12.2017 12:52Я тоже раньше думал, что это сам саб звучит низко, а канал на нем без фильтров. Но когда реально услышал, как саб звучит без бильтров — понял, что НЧ-фильтр точно там есть
tekk
03.12.2017 12:53Попробуйте всё-таки Jack.
Правда я не думаю что получится сделать с ним такую конфигурацию, как описана в начале поста (хотя qjackctl поддерживает разные скрипты, которые можно запускать при старте/остановке сервера), но вполне вероятно что проблем именно с написанием музыки будет чуть меньше.
По крайней мере, у меня так. Я где-то семь лет уже занимаюсь тем же хобби и 4 года из них с Jack. Не могу сказать что работает он безупречно (его тоже надо настраивать и разные версии могут работать по разному), однако с задачей обрабатывать звук в реальном времени он справляется. А так работаю в Ardour, выходы на аппаратуру переключаю из него же.
Плюс удобная маршрутизация через какую-нибудь Catia есть (в qjackctl тоже можно, но там несколько топорно это сделано, на мой взгляд).
Кроме того, пользуюсь ещё и модулем jack-pulseaudio. Можно создать «мост» через который звук pulseaudio будет поступать в jack (решит задачу «записать звук с колонок», о которой писали в комментариях, правда несколько иным путем, поскольку он не с колонок будет записываться а с приложения, которое будет передавать звук на колонки), и наоборот. В Cadence есть поддержка «мостов» alsa-jack, pulseaudio-jack, alsa-midi и т.д.
Посмотрите этот софт, возможно, он поможет.
Cadence и qjackctl — софт для запуска и конфигурации Jack. Не могу сейчас точно написать (далеко от компьютера), но вроде бы скрипты для запуска и прочего есть только в qjackctl. Но я не уверен.
И ещё, последнее — Jack может здорово забивать свой собственный лог, который, как правило, находится в домашней папке (если вы запускаете его от обычного пользователя, разумеется). Поэтому убедитесь заранее в том, что на диске есть место, и периодически проверяйте размер лога Jack. Я не имею ввиду что так случается постоянно, но у меня раз в 3-4 месяца точно бывает, при том что я работаю с ним по выходным. В моем случае система установлена на ssd (домашний раздел, конечно, тоже), где не очень много места, поэтому лог Jack размером в пару десятков гигабайт иногда приходится удалять.
Возможно, я его просто плохо настроил. Возможно, это его баг. Не задавался этим вопросом, но предупредить, мне кажется, стоит.Jorixxx Автор
03.12.2017 13:11Очень не хочется иметь Pulseaudio и JACK одновременно. Особенно если первый нужен, так, как описано здесь) habrahabr.ru/post/343718/#comment_10549216
Kirill80
03.12.2017 14:17А попробуйте, для начала, настроить mpd на вывод в alsa. В bit-perfect-режиме. Мне, в своё время, это помогло осознать общую картинку как работает подсистема работы со звуком (в частности). Хотя, оборудование у вас, конечно, как бы это сказать помягче, не ахти.
Jorixxx Автор
03.12.2017 15:14Когда я начну подключать рабочий аппарат, то знаний у меня, конечно, поприбавится — может, даже на продолжение накапает) Я пока(и похоже правильно) решил начать с самого простого — заставить работать ноут.
з.ы. главная проблема тут не в том, как в этом разобраться. Можно и спеку HDA раскурить, и из комментов информацию собрать, на худой конец можно сорцы почитать. Главная проблема — что в этом вообще нужно разбираться.
Может, задокументируй разработчики ALSA, как по их мнению надо настраивать звук по шагам с описанием архитектуры, структуры конфигов, как что и для чего крутить, API, то и проблемы бы никакой не было. А я пока вижу, что клочки информации непроверенной разбросаны повсюду, а мой тикет за 3 недели даже отфутболить никто не берется.
Может, задокументируй вы вот эту процедуру настройки мпдшки, многие люди прошли бы с ее помощью на шаг дальше.
А время, которое я потрачу на разбор, я бы с удовольствием потратил на другие вещи — на разбор того же муз. софта доступного, плагинов и т.д.
MisterN
03.12.2017 18:23Монуалов по настройке звука на линуксе нехватает. По мне смотреть ролики в ютубе и общаться по скайпу через пульсу норм, но вот своих любимых альбомов не узнал, они лишились некоторой интонации. А если настроить плеер через alsa, то все ок.
Стал гуглить про настройку звука — там в основном описывается два состояния: звука нет и звук есть. И как перейти от первого ко второму. А о том, что звук может быть, но что-то не очень не заикаются. Более интересная инфа, про тот же существование того же dmix, на LORе, но там все тонет в субъективных и категоричных постах типа «у меня все из коробки нормально пашет, если у тебя не так, значит ты криворук» или «ты че, такой дохера аудиофил? Пульса лучше чистой альсы, не выеживайся». Субъективности очень много, много рецептов плясок с бубном и т.д. Я пытался править некоторые конфиги, типа resample-method, чтобы как-то улучшить ситуёвину, слушаю до сих пор через alsa.
Но я не о том хотел сказать. Все-таки жутко раздражает вся эта субъективность в настройках звука. После того, как я начитался инфы по форумам, я например сам себе не доверяю. Очень нехватает какого-то объективного способа оценить корректность работы со звуковой картой типа RightMark Audio Analyzer, или манула по каким-то объективным замерам на основании которых можно судить о том, хорошо настроено или плохо. Были бы средства диагностики проблем — легче было бы подобрать способ лечения. На хабре есть статья про анализ звука в линуксе через Audiolab M-DAC. Но это дорогая хреновина. И потом, режим BitPrefect говорит о наличии\отсутствии проблем в принципе, а не указывает, где именно кривит.
В общем, если кто знает о том, как производить объективный замер корректности работы звуковухи на линуксе, просьба просветить.
Thx201
03.12.2017 18:23В написании музыки — 0, думаю изучать LMMS или Ardour, поэтому интересно почему по мнению автора с LMMS сложно работать?
Jorixxx Автор
03.12.2017 18:36Не сложно. В плане сложности как раз все хорошо.
Но там явно есть косяки. Одним из первых приемов, который я проверяю в DAW, является sidechain. И вот LMMS на тесте показал, что sidechain работает плохо — клик присутствует даже на 12мс атаке. На эту тему заведен баг, но пока не починено. А без этого дальше испытывать тулзу вообще смысла не имеет.
fogone
04.12.2017 09:22Забавно, на днях как раз пытался подключить блютуз-наушники к своему асус-н на убунте. После длительного шаманства музыка все же заиграла, но стабильность примерно никакая. Чтобы отключиться и подключиться опять приходится ресетить девайс целиком. Не знаю можно ли с такими артефактами жить в профессиональной области.
feruxmax
04.12.2017 11:06какие все-таки конфиги надо править для правки маппинга портов??
Настраиваю маппинг портов для получения конфигурации 5.1 с трёх портов, которые по-умолчанию сконфигурированы как mic, speaker, line_in.
Конфигурацию hda размещаю по пути:
/lib/firmware/snd-hda-intel.fw
Чтобы она грузилась при старте системы добавляем файл:
/etc/modprobe.d/hda-intel.conf
со следующим содержимым
options snd-hda-intel patch=snd-hda-intel.fw
Изменять настройки без перезагрузки системы возможно через hda-verb (информация о ней есть по вашей же ссылке.
Содержимое snd-hda-intel.fw и что писать с помощью hda-verb можно понять, разобравшись с упомянутым вами HDAAnalyzer-ом.
Я в универе пытался написать прогу, чтобы маппинг можно было через GUI делать, но так и не выложил тогда её никуда (для каждой модели кодека выявляются свои особенности в графе, которые не было просто общим алгоритмом разрулить). Выложил исходники, может запустите на своём кодеке.
VioletGiraffe
А как вы добились описанного в начале статьи поведения на Windows? Мне даже не нужно переключать конфигурацию каналов. Просто поканальный вывод с фильтрами я смог сделать только очень замороченным способом, у которого есть нежелательные побочные эффекты.
Jorixxx Автор
В Windows никаких специальных плясок делать не приходилось — работало из коробки. Для сабвувера используется специальный разъем. Т.е. это не джек. Видимо, сделано так было для того, чтобы можно рассчитывать, что ничего кроме сабвуфера к этому разъему подключаться не будет и захардкодить в драйвере нужное поведение
VioletGiraffe
То есть прямо в драйвере многоканального звукового устройства можно настроить фильтр сабвуфера? У меня задача чуть-чуть отличалась, конечно, настройками драйвера она не решалась.