Все права на текст принадлежат автору: .
Это короткий фрагмент для ознакомления с книгой.
Линукс для музыканта: плагины 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 (или аналогичные), то звуковые модули были загружены правильно. Разрешается загружать модули вручную.


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



Все права на текст принадлежат автору: .
Это короткий фрагмент для ознакомления с книгой.
Линукс для музыканта: плагины ALSA