- 1
- 2
- 3
- . . .
- последняя (13) »
Титаренко Иван Георгиевич Линукс для музыканта: плагины ALSA (компиляция и перевод сетевых руководств)
Оглавление
1. Продвинутая звуковая архитектура, ALSA 2. Звуковые серверы 3. Утилиты ALSA 4. ALSA и systemd 5. Первичные настройки системы 6. Синтаксис файла .asoundrc 7. Аргументы ALSA 8. Вложение плагинов PCM 9. Аппаратные средства 10. Высококачественный ресемплинг 11. Инициализация 12. Именование устройств PCM 13. Псевдонимы 14. Фиктивные имена 15. Плагины ALSA 16. Определение ведомого устройства 17. Плагин plug 18. Микширование, плагин dmix 19. Плагин dmix и качество звука 20. Особенности настройки dmix 21. Запись звука 22. Микширование входных сигналов 23. Программная регулировка уровня громкости 24. Приложения и softvol 25. Поддержка OSS 26. Поддержка Jack 27. Модуль snd-aloop 28. Виртуальные карты 29. Поддержка Phonon 30. Многоканальный звук 31. Ручная настройка объемного звука 32. Понижающее микширование 33. Повышающее микширование 34. Фильтры LADSPA 35. Разделение каналов 36. Плагины ALSA, список 37. Плагин hw 38. Плагин mmap_emul 39. Плагин shm 40. Плагин null 41. Плагин copy 42. Плагин linear 43. Плагин lfloat 44. Плагин mulaw 45. Плагин alaw 46. Плагин adpcm 47. Плагин route 48. Плагин rate 49. Плагин plug 50. Плагин file 51. Плагин multi 52. Плагин share 53. Плагин hooks 54. Плагин dmix 55. Плагин dshare 56. Плагин dsnoop 57. Плагин ladspa 58. Плагин asym 59. Плагин iec958 60. Плагин softvol 61. Плагин empty 62. Плагин: remap 63. Используемая литература 64. Приложение, музыкальные программы
Продвинутая звуковая архитектура, ALSA
Усовершенствованная звуковая архитектура Linux (ALSA) предоставляет драйверы звуковой карты, управляемые ядром. ALSA заменяет оригинальную субсистему Open Sound System (OSS). Сегодня ALSA — часть ядра Linux, звуковая подсистема по умолчанию, обеспечивающая поддержку самого низкого уровня для звукового оборудования.** Кроме драйверов звуковых устройств, ALSA предоставляет библиотеку для разработчиков приложений.
Так как ALSA — это набор встроенных модулей ядра Linux, ручная настройка обычно не требуется: udev автоматически обнаружит оборудование и выберет необходимые драйверы во время загрузки. Иногда, чтобы разрешить пользователям работать с ALSA, приходится добавлять этих пользователей в группу audio, однако последнее не рекомендуется. Добавление пользователей в группу обеспечивает прямой доступ к звуковым устройствам. Это разрещает приложениям резервировать устройства вывода, что может нарушить программное микширование или затруднить быстрое переключение между приложениями в многопользовательских системах.
Звуковые серверы.
Как правило, 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 (или аналогичные), то звуковые модули
- 1
- 2
- 3
- . . .
- последняя (13) »