Линукс для музыканта: плагины ALSA [Иван Георгиевич Титаренко] (fb2) читать постранично, страница - 2


 [Настройки текста]  [Cбросить фильтры]

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

Звуковые серверы.

Как правило, ALSA или OSS работают со «звуковыми серверами», хотя это не обязательно, иногда даже нежелательно. В OS Linux звуковой сервер чаще всего организует микширование каналов, программную регулировку громкости, передачу звукового потока по сети.

Самые известные звуковые серверы следующие.

JACK Audio Connection Kit — звуковой сервер для профессионального применения, обеспечивает малую задержку звука при передаче по сети, поддержку аудио эффектов, синтез в реальном времени и многое другое.

PipeWire — альтернативная мультимедийная платформа, поддерживает контейнеры.

PulseAudio — наиболее популярная звуковая система общего назначения, также обеспечивает передачу звука по сети.

Утилиты ALSA

Некоторые утилиты пакета alsa-utils. Пакет содержит утилиты alsamixer и amixer. Утилита amixer — это команда оболочки для настройки звука; alsamixer предоставляет интуитивно понятный интерфейс настройки на основе ncurses.

Управление громкостью с помощью утилиты amixer:

$ amixer -c 1 sset Line,0 80%,40% unmute cap
$ amixer -c 1 -- sset Master playback -20dB
$ amixer -c 1 set PCM 2dB+
$ amixer -c 2 cset numid=34 40%

ALSA и systemd

Пакет alsa-utils поставляется с файлами конфигурации модулей systemd alsa-restore.service и alsa-state.service по умолчанию. Сервисы автоматически устанавливаются и активируются во время установки.

Основные команды для восстановления звуковых настроек:

~ alsactl store - сохраняет текущее значение;
~ alsactl restore - восстанавливает сохраненные ранее значения;
~ alsactl nrestore - команда похожа на restore, но уведомляет демон о необходимости повторного сканирования доступных звуковых карт;
~ alsactl init - пытается инициализировать все устройства "по умолчанию", если устройство неизвестно, возвращается код ошибки 99;
~ alsactl daemon - периодически сохраняет настройки звука;
~ alsactl rdaemon - сохраняет настройки звука, но сначала восстанавливает предыдущее состояние;
~ alsactl kill - уведомляет демон о выполнении указанной операции (выход, повторное сканирование, сохранение и выход);
~ alsactl monitor - мониторинг событий, полученных от данного устройства управления, если звуковые карты не указаны, настройки для всех карт будут сохранены, загружены или отслежены.
Варианты установки следующие.

1. Сервис alsa-restore.service читает файл /var/lib/alsa/asound.state при загрузке и записывает обновленные значения при завершении работы, если файл /etc/alsa/state-daemon.conf не существует. Это метод по умолчанию.

2. Сервис alsa-state.service запускает alsactl в режиме демона, чтобы постоянно отслеживать и сохранять изменения громкости, если пользователь создал файл /etc/alsa/state-daemon.conf.

Очевидно, что методы взаимоисключающие.

Первичные настройки системы

По умолчанию ALSA отключает звук на всех каналах. Звук можно включить вручную с помощью утилит amixer или alsamixer.

Посмотреть загруженные модули, их порядок можно с помощью следующей команды:

$ cat /proc/asound/modules
Или увидеть список устройств и модулей:

$ lsmod | grep snd
Получить имена карт:

$ aplay -l
Узнать текущую звуковую карту:

$ cat /proc/asound/cards
Список устройств PCM:

$ cat /proc/asound/pcm
Проверить каталог /dev/snd/ на наличие файлов устройств:

$ ls -l /dev/snd

** Если существуют хотя бы устройства controlC0 и pcmC0D0p (или аналогичные), то звуковые модули были загружены правильно. Разрешается загружать модули вручную.


Команда speaker-test тестирует настройки.

$ speaker-test -t wav -D plug:front -c2
$ speaker-test -t wav -Dplug:surround40 -c4
$ speaker-test -t wav -Dplug:surround51 -c6
$ speaker-test -t wav -Dplug:spdif -c2

** ALSA поддерживает форматы: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE


Синтаксис файла .asoundrc

Скрытый файл ~/.asoundrc расположен в домашнем каталоге пользователя и управляет подсистемой ALSA и плагинами. В многопользовательской системе также можно использовать общий для всех пользователей файл /etc/asound.conf

Файлы конфигурации ALSA следуют простому синтаксису с иерархической структурой для параметров (ключей). Присваивания определяют значение данного ключа. Все, что находится после символа «#», будет игнорироваться ALSA.

Разделители применяются для обозначения начала