IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [679]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [356]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [169]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1339
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2017 » Декабрь » 2 » Настройка звука в Ubuntu
    16:17
    Настройка звука в Ubuntu

    Настройка звука в 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 консоль

     
     

    Мне кажется, к такому инструменту пояснения излишни. После применения настроек вы сразу сможете слышать изменения, так что пробуйте.

     

    Диагностика 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

     

    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

     
    Категория: Linux и не только | Просмотров: 459 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    «  Декабрь 2017  »
    ПнВтСрЧтПтСбВс
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024