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

    У меня есть хобби — написание музыки. Поэтому после установки свежей версии 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 какие-то конфиги, разобраться в которых мне не удалось:


    Пример конфига: center_lfe.conf
    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

    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 57
    • 0
      А как вы добились описанного в начале статьи поведения на Windows? Мне даже не нужно переключать конфигурацию каналов. Просто поканальный вывод с фильтрами я смог сделать только очень замороченным способом, у которого есть нежелательные побочные эффекты.
      • 0
        В Windows никаких специальных плясок делать не приходилось — работало из коробки. Для сабвувера используется специальный разъем. Т.е. это не джек. Видимо, сделано так было для того, чтобы можно рассчитывать, что ничего кроме сабвуфера к этому разъему подключаться не будет и захардкодить в драйвере нужное поведение
        • 0
          То есть прямо в драйвере многоканального звукового устройства можно настроить фильтр сабвуфера? У меня задача чуть-чуть отличалась, конечно, настройками драйвера она не решалась.
      • 0
        тут много странной неописанной магии

        www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules

        и «вдогонку»
        askubuntu.com/questions/43950/how-can-i-apply-a-ladspa-plugin-to-a-pulseaudio-stream

        к сожалению хороших гайдов еще не выгуглил, но доки намекают на немалые возможности… а ещё если все это «запитонить на гуях...»
      • +1
        Поздравляю вы столкнулись с 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


        2. Бывает что чудо редактор audacity любит воспроизводить звуки реликтового излучения.
        Лечится примерно так
        env PULSE_LATENCY_MSEC=30 audacity

        • 0
          п 1 делается вот так:
          image
          • 0
            У меня такого нету. Без п1 Loopback Input не появляется.
            image
            • 0
              Потому что на скриншоте не pavucontrol
              sudo apt install pavucontrol
              pavucontrol
              • 0
                и, кстати, loopback input можно сделать самим PulseAudio без конфига Alsa, ядерных модулей и пр., см. github.com/mikhailnov/dumacast
          • 0
            Почему-то в списке того, что трогалось, ни слова про pactl /pacmd. У последнего есть даже интерактивный шелл с двумя экранами команд.
            • 0
              Pulseaudio особо трогать пока не пришлось. Добавлю, спасибо
            • 0
              Опечатка у вас в третьем предложении `менять`
            • 0
              Получается, если звук на компьютере не задействуется по прямому назначению — можно добавить «входной» канал:

              При замыкании разъёмов аудиовыхода/микрофона соответствующим сопротивлением можно инициировать запуск shell-скрипта?
              • +1
                там и на кнопки извлечения оптических дисков скрипты вешали
                • 0
                  Не могу утверждать наверняка, но скорее всего это так — должна же быть какая-то триггерная модель, чтобы обслуживать подключение нового устройства к звуковой карте
                  • 0
                    Кнопки на гарнитуре именно так и работают.
                    • 0
                      Ага, значит можно ещё отслеживать величину сопротивления подключенного устройства?
                      Это наверное зависит от чипа. А на стареньком неттопе 3Q интересно — есть такой функционал?
                  • 0
                    Многие, кто пилит alsa, pulseaudio и далее по списку — для них это такое же хобби.
                    Возможно, имеет смысл напрямую связаться и спросить как и что.
                    • 0
                      Да. Думаю, дойдет до этого) Именно это подтверждает мои слова о том, что никто особо в звук не вкладывает. Странно, что до сих пор не нашлось аналога Canonical или RedHat, зарабатывающего на Linux в сообществе звукорежиссеров etc. Публика весьма платежеспособная и платит сейчас немалые деньги за софт, которым пользуется. Хотя, это, конечно субъективный взгляд. Возможно объем разработки и маркетинга, чтобы довести в Linux это до ума переманить этих людей с маков — это неподъемная величина
                      • 0
                        supercollider.github.io/tutorials

                        вот еще интересный, наверное, проект

                        там еще был какой-то проект по графическому проектированию звука, но наиболее зрелые что-то не очень-то и развиваются(ИМХО) ну и внезапные падение порой… случаются
                        • +2
                          Странно, что до сих пор не нашлось аналога Canonical или RedHat, зарабатывающего на Linux в сообществе звукорежиссеров etc.


                          Ничего странного.

                          Софт там специфичный и под линь его нет. Это во-первых.

                          Производители софта плотно играют в игры, которыми, формально, должен бы заинтересоваться антимонопольный, но всем пофиг. Это мы еще не говорим о стоимости портирования. Это во-вторых.

                          Лейблы накопили просто феерическое количество форматов и сорцов, которые они пока не знают ни как монетизировать, ни как конвертить и вообще что с ним делать. Там сильная привязка к старым системам. Это в третьих.

                          Звукорежиссеры не определяют тренды, а следуют им. Что и как будет использоваться, определяют лейблы, которые сидят на контенте. И для независимых, кстати, тоже, т.к. это выбор софта и инфраструктуры. Можно легко и непринужденно, например, прибить ремиксеров всего мира к конкретному софту и платформе. Это в четвертых.

                          Поэтому звукорежиссеры переедут на линь последними, когда он станет мейнстримом и лейблы скажут ну ок, мигрируем.

                          Все, все что мог помимо NDA сказать — сказал.
                          • 0
                            Поскольку у меня есть брат-близнец друг-звукорежиссер, то добавлю к предыдущему посту.

                            Оплата работы — идет за время. Уменьшил скорость из-за освоения нового софта — все равно, что поднял расценки.

                            Звукорежиссеру очень важна программа, с которой идет работа. Тот самый автоматизм на уровне пальцев. Смена программы — это примерно год-два на освоение на уровне автоматизма. Даже смена версии происходит со скрипом из-за мелких отличий в интерфейсе.

                            Кроме программы используется набор плагинов, тем или иным способом, обрабатывающих звук. Часть из них купленная, часть — вылеченная «таблеткой от жадности», но в целом этот набор — подороже программы. И опять-таки, переучиться на другой набор — можно, но долго. А для плагинов из имеющегося набора, звукорежиссер просто знает, что при каких положениях ручек, этот набор выдаст.

                            Железо — очень специфично. Например звуковая карта за $5000 — это всего лишь АЦП, без ЦАП (для ЦАП — вторая звуковуха). Подключается оно по FireWire и предназначено для монтажа в стойку. Поток данных — больше характерен для видео, чем для аудио — 192кГц на 48 бит на 8 каналов.

                            Сама операционка и комп — не важны. Когда Logic Pro перестал выходить под windows, то проще было сменить железо и устроить hackintosh, чем переходить на другую программу.

                            Водяное охлаждение… ну или оно, или вытаскивать экран, клавиатуру и мониторы в другую комнату. Водяное — было сделать проще, чем IP-KVM.

                            Задачки там чудные. Что стоит устройство внутреннего телевидения ради передачи кивка от аккомпаниатора к солисту.

                            Такого уровня студий — 5-10 в Питере, наверное до 1000 в России. Это же не высший пилотаж, а почти любительская студия.
                        • 0
                          но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится

                          Тут вас кто-то обманул. Я, прочтя это, сильно удивился, пошёл запустил видео в vlc, открыл youtube ролик в хроме и включил песню в амароке. Все три источника заиграли одновременно и беспроблемно. Голая alsa.
                          Ну, то есть kde поверх неё ещё ;)

                          • +1

                            Насколько я знаю, в kde есть для этого phonon.

                            • 0
                              Вы забываете про наличие аппаратного dmix на некоторых картах, и программный alsa_dmix модуль, который решает проблему микширования потоков. Пользовался ещё пока пульса была чем то вроде Пшшш-пфффф-пшшшшпффф…
                              • 0

                                У меня тоже всё работает безо всяких дурацких надстроек (типа pulseaudio). Единственное назначение pulseaudio — удовлетворить зависимости того плохо написанного софта, который не знает про alsa но знает про pulseaudio (например ms после покупки скайпа быстро его привели к данному состоянию).

                                • +1

                                  Поддерживая gentoo, alsa only. Все работает шикарно на ноуте 12 года

                                  • 0
                                    Аналогично на ноуте 12-го года, ноуте 16-го года и десктопе 13-го года.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      ALSA же нужна для работы с драйвером устройства, т. е. она, к примеру, не сможет обеспечить вам вывод одновременно звука с просматриваемого вами ётюба и музыки с какого-нибудь плейера

                                      Слушайте, но смешно же. Попробуйте уже сами, всё прекрасно выводится, я же написал, что хотя и был уверен, но удивился и специально пошёл проверять — включил vlc, YouTube и amarok.
                                      Зы пришлось отказаться от файрфокса, который не осилил в алса, это менее болезненно, чем лезть в этот кошмар с пульсой.

                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0

                                          Так микшер входит в пакет ALSA и делает всё то, о чём вы написали "вы несколько недопонимаете зачем нужен общесистемный микшер, каковым и является PulseAudio". Зачем мне выводит напрямую в устройство и иметь проблемы с монопольным доступом, если я могу выводить это через микшер, который уже есть в алсе? И, тк у меня уже есть микшер, зачем мне ещё пульс городить? Вывод из vlc и ютюба спокойно работает "из коробки".

                                          • НЛО прилетело и опубликовало эту надпись здесь
                                            • 0

                                              Вы на вопрос так и не ответили. Зачем нужен микшер из левой надстройки (pulseaudio), когда микшер есть и без неё?

                                              • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                В альсе есть микшер, это модуль dmix, его просто надо настроить. Так что, автору явно ещё матчасть нужно подучить.
                                • 0
                                  Посмотрю, что это такое
                                  • 0

                                    Сколько помню, он всегда из коробки работал. Другое дело, что у альсы обычно фиксированная задержка (latency), на встроенном звуке порядка 20-25 мс, а у пульсы она динамическая, вплоть до 0.5 мс. Но там хватает своих проблем, например, если ядро не PREEMPT, даже со всеми реалтаймовыми и высокоприоритетными хаками пульса порой скипает, т.е. буфер опустошается, и слышен щелчок. При этом пульса начинает адаптироваться и увеличивать внутренние вотермарки и минимальную задержку. Если проц был сильно нагружен, то задержка может прыгнуть очень высоко, вплоть до 100-160 мс, и что интересно, механизмов автоматического её снижения, а также задания отличного от 0.5 мс минимума в коде нет, я смотрел (можно задать фиксированную задержку, как в альсе, но динамическая всегда начинается от 0.5). Задержка сбросится только после перезапуска демона.


                                    Я чисто из-за этих трюков собираю собственное ядро с CONFIG_PREEMPT и таймером 1000 Гц, потому что в дебиане 100 Гц без преемптивности. Раньше долго сидел на альсе, но пульса в итоге пролезла везде и победила, да и стримить с ней куда проще, чем городить лупбэки.

                                    • 0
                                      Сколько помню, он всегда из коробки работал.

                                      Лет 15 назад нужно было ручками .asoundrc править.
                                      • 0
                                        Даже не 15 а 10 или даже 9. Я последний раз правил в 2008 году.
                                        Сейчас у меня Pulseaudio+FluidSynth. Переполз на него в связи с мультисит окружением, гибкостью и стабильностью пульсы.
                                • 0
                                  А вы уверены что что на Windows применяется фильтр НЧ и ВЧ? Просто у меня ноут N550JK и там, ну саб понятно всегда звучит низко, а фронтальные как с сабом, так и без саба звучат абсолютно одинаково. У меня версия драйвера 6.0.1.7250
                                  • 0
                                    Я тоже раньше думал, что это сам саб звучит низко, а канал на нем без фильтров. Но когда реально услышал, как саб звучит без бильтров — понял, что НЧ-фильтр точно там есть
                                  • 0
                                    Попробуйте всё-таки 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 размером в пару десятков гигабайт иногда приходится удалять.
                                    Возможно, я его просто плохо настроил. Возможно, это его баг. Не задавался этим вопросом, но предупредить, мне кажется, стоит.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • +1
                                      Когда я начну подключать рабочий аппарат, то знаний у меня, конечно, поприбавится — может, даже на продолжение накапает) Я пока(и похоже правильно) решил начать с самого простого — заставить работать ноут.
                                      з.ы. главная проблема тут не в том, как в этом разобраться. Можно и спеку HDA раскурить, и из комментов информацию собрать, на худой конец можно сорцы почитать. Главная проблема — что в этом вообще нужно разбираться.
                                      Может, задокументируй разработчики ALSA, как по их мнению надо настраивать звук по шагам с описанием архитектуры, структуры конфигов, как что и для чего крутить, API, то и проблемы бы никакой не было. А я пока вижу, что клочки информации непроверенной разбросаны повсюду, а мой тикет за 3 недели даже отфутболить никто не берется.
                                      Может, задокументируй вы вот эту процедуру настройки мпдшки, многие люди прошли бы с ее помощью на шаг дальше.
                                      А время, которое я потрачу на разбор, я бы с удовольствием потратил на другие вещи — на разбор того же муз. софта доступного, плагинов и т.д.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      Монуалов по настройке звука на линуксе нехватает. По мне смотреть ролики в ютубе и общаться по скайпу через пульсу норм, но вот своих любимых альбомов не узнал, они лишились некоторой интонации. А если настроить плеер через alsa, то все ок.
                                      Стал гуглить про настройку звука — там в основном описывается два состояния: звука нет и звук есть. И как перейти от первого ко второму. А о том, что звук может быть, но что-то не очень не заикаются. Более интересная инфа, про тот же существование того же dmix, на LORе, но там все тонет в субъективных и категоричных постах типа «у меня все из коробки нормально пашет, если у тебя не так, значит ты криворук» или «ты че, такой дохера аудиофил? Пульса лучше чистой альсы, не выеживайся». Субъективности очень много, много рецептов плясок с бубном и т.д. Я пытался править некоторые конфиги, типа resample-method, чтобы как-то улучшить ситуёвину, слушаю до сих пор через alsa.
                                      Но я не о том хотел сказать. Все-таки жутко раздражает вся эта субъективность в настройках звука. После того, как я начитался инфы по форумам, я например сам себе не доверяю. Очень нехватает какого-то объективного способа оценить корректность работы со звуковой картой типа RightMark Audio Analyzer, или манула по каким-то объективным замерам на основании которых можно судить о том, хорошо настроено или плохо. Были бы средства диагностики проблем — легче было бы подобрать способ лечения. На хабре есть статья про анализ звука в линуксе через Audiolab M-DAC. Но это дорогая хреновина. И потом, режим BitPrefect говорит о наличии\отсутствии проблем в принципе, а не указывает, где именно кривит.
                                      В общем, если кто знает о том, как производить объективный замер корректности работы звуковухи на линуксе, просьба просветить.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0
                                          Ну, а как это лучше сделать? Чем записать? Использовать что-нибудь консольное, типа arecord или pacat? Или какие-то проги типа QARecord или audacity? Просто боюсь перепутать искажения программы записи с искажениями звука альсы\пульсы? Громкость вообще как на это влияет? Файлы могут получиться разные по продолжительности, как бы их обрезать и потом сравнить? Что-то типа сравнения в тотлкоммандере?
                                      • 0
                                        В написании музыки — 0, думаю изучать LMMS или Ardour, поэтому интересно почему по мнению автора с LMMS сложно работать?
                                        • 0
                                          Не сложно. В плане сложности как раз все хорошо.
                                          Но там явно есть косяки. Одним из первых приемов, который я проверяю в DAW, является sidechain. И вот LMMS на тесте показал, что sidechain работает плохо — клик присутствует даже на 12мс атаке. На эту тему заведен баг, но пока не починено. А без этого дальше испытывать тулзу вообще смысла не имеет.
                                        • 0
                                          Забавно, на днях как раз пытался подключить блютуз-наушники к своему асус-н на убунте. После длительного шаманства музыка все же заиграла, но стабильность примерно никакая. Чтобы отключиться и подключиться опять приходится ресетить девайс целиком. Не знаю можно ли с такими артефактами жить в профессиональной области.
                                          • 0
                                            какие все-таки конфиги надо править для правки маппинга портов??

                                            Настраиваю маппинг портов для получения конфигурации 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 делать, но так и не выложил тогда её никуда (для каждой модели кодека выявляются свои особенности в графе, которые не было просто общим алгоритмом разрулить). Выложил исходники, может запустите на своём кодеке.

                                            • 0
                                              Долгое время изучал нюансы вывода звука в Windows, даже полсайта этой теме посвятил. На днях поставил Ubuntu, почитал вот теперь эту статью, и чувствую, что выводу звука в Linux можно посвятить целый отдельный сайт…

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.