Вопрос или проблема
Я ищу графический интерфейс Alsa mixer для Xfce (или, что еще лучше, независимый от рабочего стола), чтобы заменить PulseAudio Mixer. Хотя меня устраивает последний вариант, мой USB ЦАП очень плохо обрабатывается PulseAudio, и мне нужно его удалить.
В Alsa-микшере я ищу конкретно возможность:
- обнаруживать подключенные USB ЦАПы
- устанавливать устройство вывода по умолчанию для новых программ (например, на
USB DAC
) - (опционально) прозрачно изменять текущее устройство вывода у запущенных программ с одного устройства на другое (например, с интегрированного
HDA PCH
наUSB DAC
)
Существует ли Alsa-микшер, похожий на pavucontrol
?
Как упоминалось в комментариях, Alsa, похоже, не может прозрачно изменять запущенные программы с одного устройства вывода на другое, так как это функция, специфичная для PulseAudio. Более того, выбор устройства в Alsa-микшере только определяет, какие элементы управления микшером отображаются внутри микшера, и не имеет отношения к звуковой карте по умолчанию, используемой медиаплеерами.
Существует минималистичный графический интерфейс на Python, который позволяет обнаруживать подключенные USB ЦАПы и устанавливать устройство вывода по умолчанию для новых программ: asoundconf-gtk
(изначально написанный для Ubuntu с учетом Xfce). Эта утилита основывается на скрипте asoundconf на Python. Хотя она не обновлялась в течение нескольких лет (последнее обновление в 2011 году), похоже, что она все еще нормально работает на современных дистрибутивах (например, Ubuntu 14.04).
Пользователи Ubuntu могут установить пакеты из PPA asoundconf (официально Ubuntu имеет хорошую поддержку только для PulseAudio). Для Arch Linux смотрите Есть ли простой способ переключить звуковые карты вывода?. Но поскольку это код на Python, он может работать практически на любом дистрибутиве: возьмите .deb
для Ubuntu, распакуйте его с помощью архиватора и поместите скрипты в /usr/bin
.
Официальная документация Alsa лишь указывает на ручной способ установки звуковой карты по умолчанию:
Найдите соответствующую карту:
cat /proc/asound/cards
и затем добавьте в /etc/asound.conf
:
defaults.pcm.card 1
defaults.ctl.card 1
Заменив “1” на номер соответствующей карты. Вряд ли это то, чем вы захотите заниматься часто, например, с USB ЦАПом.
Дополнительное чтение:
- Asoundconf для Ubuntu 10.10 (Maverick) для более длинного обсуждения Alsa-only против PulseAudio на дистрибутивах Ubuntu
- alsa-utils отсутствует asoundconf — разработчики Ubuntu объявляют, что не будут исправлять это для пользователей Alsa-only (т.е. заставляют своих пользователей использовать PulseAudio; похоже, это корпоративная политика, так как Skype сделала то же самое в версии 4.3…)
Вы можете использовать pavucontrol
, чтобы установить устройство аудиовывода по умолчанию (и резервное). Но это требует PulseAudio (одна из причин, по которой Pulse был разработан).
Ответ или решение
Для пользователей, ищущих GUI для Alsa Mixer, который мог бы заменить PulseAudio Mixer и одновременно обеспечить поддержку USB ЦАП (цифроаналогового преобразователя), важно понимать особенности управления звуковыми устройствами в Linux-среде. В этой статье мы подробно рассмотрим, как можно управлять выводом звука с помощью Alsa, а также способы, которые помогут вам решить вашу задачу.
Найти подходящее GUI для Alsa Mixer
На данный момент широко обсуждается существование графического интерфейса для Alsa, подобного pavucontrol
, который был бы универсален для разных дистрибутивов Linux и позволял бы определять приоритетные устройства для новых программ. Специфическая функциональность, как управление подключёнными USB DAC и установка их в качестве основного устройства, действительно является основной задачей для многих пользователей.
Поддержка USB DAC
Графический интерфейс, который вы можете использовать, это asoundconf-gtk. Этот инструмент, хоть и минималистичен, позволяет обнаруживать подключенные USB DAC и устанавливать их как устройство по умолчанию для новых программ. Несмотря на то что проект не обновлялся с 2011 года, он по-прежнему работает на современных дистрибутивах, таких как Ubuntu 14.04, и может быть использован на различных системах с Python.
Вы можете установить asoundconf-gtk через PPA для Ubuntu, а для других дистрибутивов — скачать необходимые скрипты и установить вручную в /usr/bin
.
Установка и настройка устройства по умолчанию
Чтобы настроить устройство по умолчанию для ALSA, выполните следующие шаги:
-
Просмотрите список доступных звуковых карт:
cat /proc/asound/cards
-
После того как вы определили нужную звуковую карту, отредактируйте файл
/etc/asound.conf
следующим образом:defaults.pcm.card 1 defaults.ctl.card 1
Не забудьте заменить
1
на номер вашей карты.
Данный метод менее удобен, особенно если вы хотите часто переключать ЦАП, поскольку требует ручного редактирования конфигурационных файлов.
Ограничения Alsa
Важно отметить, что Alsa имеет ограничения по сравнению с PulseAudio, особенно в плане управления активными потоками звуковых данных. PulseAudio был разработан с принципом, который позволяет динамически управлять звуковыми потоками между различными выходными устройствами. Alsa, в свою очередь, не предоставляет возможности «прозрачно» переключать запущенные программы между аудиоустройствами. Такой функционал реализовать нельзя в рамках стандартного Alsa, что делает его менее гибким.
Альтернативные рекомендации
Хотя Alsa и предлагает определённые возможности управления звукозаписью и воспроизведением, рекомендуется рассмотреть использование PulseAudio или его подобий, особенно для динамического управления звуковыми потоками. Если вы сталкиваетесь с проблемами с поддержкой USB DAC в PulseAudio, вы можете попробовать дополнительно настроить PulseAudio, чтобы уменьшить эти затруднения.
Для пользователей, которые желают всё же сохранить систему на базе Alsa, выбор asoundconf-gtk может стать временным решением, а также стоит рассмотреть настройку скриптов, которые помогут автоматизировать процесс переключения устройств.
Заключение
В конечном итоге выбор между Alsa и PulseAudio сводится к вашим специфическим требованиям и предпочтениям. На сегодняшний день, если вам необходимо полноценное управление звуковыми устройствами с возможностью переключения активных потоков, PulseAudio остаётся более предпочтительным вариантом. Однако для пользователей, которым необходимо простое решение для работы с USB DAC в среде Alsa, asoundconf-gtk представляется наиболее оптимальным вариантом.