Хорошо, краткий обзор, как все работает.
Ваша звуковая карта Intel HDA имеет цифровое соединение с микросхемой "кодека", которая содержит ЦАП и АЦП, аналоговые микшеры, аналоговые усилители и аналоговые коммутаторы. ALSA имеет драйверы ядра для звуковых карт и назначает элементы микшера, которые вы можете видеть в amixer
для управления некоторыми (но не всеми) вещами в кодеке.
Вы можете настроить ALSA с помощью "плагинов" через общесистемный /etc/asound.conf
или для отдельных пользователей ~/.asoundrc
.
Pulseaudio работает поверх ALSA и представляет единый механизм передачи аудио для приложений. Он заботится о преобразовании частоты дискретизации и т.д., Что делает Pulseaudio гораздо более приятным в использовании (в принципе), чем ALSA. Стандартная конфигурация состоит в том, что Pulseaudio представляет уровень совместимости с устаревшими приложениями ALSA с такими записями, как
pcm.!default pulse
ctl.!default pulse
Они устанавливают вход и выход ALSA по умолчанию таким образом, что приложения ALSA рассматриваются как приложения Pulseaudio. Поэтому, когда вы используете arecord
или audacity
(приложения ALSA) с входом ALSA по умолчанию, вы действительно используете Pulseaudio (вы также можете использовать parecord
для прямого доступа к Pulseaudio). Но когда вы выбираете hw:XXX
, вы записываете прямо из драйверов ALSA.
Pulseaudio имеет свою (очень гибкую) концепцию аудиоисточников и приемников. Вы можете видеть (и изменять), какие приложения подключены к каким источникам и приемникам, используя pavucontrol
(и во многих средах рабочего стола, и на аналогичной панели рабочего стола).
Поэтому, если вы запускаете arecord
и смотрите с pavucontrol
, он должен отображаться и записываться из источника, принадлежащего звуковой карте Intel HDA (обычно «Встроенный аналоговый стереозвук»).
Почему он записывает звук, который воспроизводится одновременно? Можно было бы взглянуть на кодек более подробно (вы можете сделать это с помощью cat /proc/asound/card*/codec\#*
), но в выводе amixer
есть элемент управления микшером, называемый Loopback-микшированием, и он включен. Поэтому я думаю, что ваш кодек содержит функцию, которая позволяет записывать звук, который выводится в данный момент. Отключите его в alsamixer
и посмотрите, что изменится.
Как настроить автоматическую запись с USB-микрофона Samson? Вы можете настроить значения по умолчанию в ALSA, но если вы хотите сохранить Pulseaudio, вам следует настроить Pulseaudio вместо этого. Вы можете выбрать источники звука для каждого приложения в pavucontrol
когда приложение работает, и Pulseaudio запоминает настройки. Вы также можете установить источник звука по умолчанию, нажав "установить как запасной вариант" на вкладке « Вход », или использовать pacmd set-default-source my_source
из командной строки. pacmd list-sources | grep name:
предоставит вам список доступных источников. Отбросьте угловые скобки, когда используете имя источника в командной строке.
редактировать
Каждый Pulseaudio раковина имеет соответствующий источник .monitor
Так вот, по какой-то причине Pulseaudio не может получить какой-либо вход ALSA, поэтому он не может создавать соответствующие источники, поэтому остается только источник .monitor
, который выводит звук, воспроизводимый в данный момент. , Таким образом, в кодеке нет внутреннего цикла (хотя это может быть другим способом записи воспроизводимого в данный момент звука).
Это означает, что вы должны отладить, почему Pulseaudio не может создавать источники, соответствующие входам ALSA, хотя он создает приемник dmix
, чего не следует, - это должен быть аппаратный приемник.
Пожалуйста, /etc/asound.conf
и ~/.asoundrc
качестве первого шага. Перед запуском Pulseaudio уже запущены программы, которые используют ALSA напрямую и не позволяют Pulseaudio использовать аппаратные входы / выходы?