Litvek - онлайн библиотека >> Иван Георгиевич Титаренко >> Linux и др. >> Линукс для музыканта: плагины ALSA

Титаренко Иван Георгиевич Линукс для музыканта: плагины 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 (или аналогичные), то звуковые модули