Руководство Noob по Linux Audio: объяснение ALSA, OSS и Pulse Audio

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

Ситуация относительно хороша, когда дело доходит до основных дистрибутивов, таких как Ubuntu, Debian или Fedora, потому что их разработчики приложили все усилия, чтобы звук работал прямо из коробки, но этого нельзя сказать об Arch Linux, Gentoo и других минималистичных дистрибутивах, которые ожидают, что пользователи будут настраивать все с нуля.

Эта статья не сделает вас экспертом в области звука Linux, но, надеюсь, она объяснит основные технологии, отвечающие за воспроизведение звука в динамиках, когда вы открываете видео на YouTube или играете в игру в Steam.

Расширенная звуковая архитектура Linux (ALSA)

Начнем с самого важного уровня звука Linux, ALSA. ALSA, созданная в 1998 году чешским разработчиком программного обеспечения Ярославом Киселой, отвечает за голос всех современных дистрибутивов Linux. Фактически это часть самого ядра Linux, предоставляющая звуковые функции остальной части системы через интерфейс прикладного программирования (API) для драйверов устройств звуковой карты.

Первоначальный дизайн ALSA во многом был вдохновлен драйвер устройства Linux для звуковой карты Gravis Ultrasound, который был разработан канадской компанией Advanced Gravis Computer Technology и стал очень популярным на демонстрационной сцене в течение 1990-х годов.

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

Обычно пользователи взаимодействуют с ALSA, используя alsamixer, программа графического микширования, которую можно использовать для настройки параметров звука и регулировки громкости отдельных каналов. Alsamixer работает в терминале, и вы можете вызвать его, просто набрав его имя. Одна особенно полезная клавиатурная команда активируется нажатием клавиши M. Эта команда включает отключение канала, и это довольно распространенное решение для многих вопросов, размещенных на досках обсуждения Linux.

Open Sound System (OSS)

Официальный сайт ALSA упоминает поддержку Open Sound System или сокращенно OSS. До Linux 2.5 OSS была фактически основной и единственной звуковой системой для Linux. ALSA была разработана для преодоления различных недостатков, таких как тот факт, что она не позволяла более чем одному приложению получать доступ к оборудованию одновременно. В Linux 2.6 ALSA заменила OSS в качестве звуковой системы по умолчанию.

Когда разработчики OSS объявили, что версия OSS будет иметь частную лицензию, разработчики Linux быстро приняли решение заменить ее на ALSA. Стоит отметить, что OSS снова стало бесплатным программным обеспечением с выпуском версии 4 в 2007 году. Сегодня OSS распространяется под четырьмя различными лицензиями (BSD, CDDL, GPL, проприетарная)..

Большинство дистрибутивов Linux в наши дни даже не утруждают себя активацией уровня эмуляции OSS, присутствующего в ALSA, потому что он больше никому не нужен, что делает OSS пережитком прошлого.

PulseAudio

Если вы не помните, когда в последний раз взаимодействовали с ALSA при изменении настроек звука, вероятно, это связано с тем, что пользовательский уровень аудиосистемы Linux в большинстве современных дистрибутивов называется PulseAudio. .

PulseAudio был первоначально выпущен в 2004 году, и теперь он включен и включен по умолчанию в Ubuntu, Linux Mint, openSUSE и других основных дистрибутивах. Задача PulseAudio — передавать звуковые данные между вашими приложениями и вашим оборудованием, направляя звуки, поступающие из ALSA, в различные места назначения, такие как динамики вашего компьютера или наушники. Вот почему его обычно называют звуковым сервером.

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

PulseAudio также обеспечивает кроссплатформенную совместимость (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS и, в ограниченной степени, Microsoft Windows). Если вы хотите управлять PulseAudio напрямую, вместо того, чтобы взаимодействовать с ним через виджет регулировки громкости или какую-либо панель, вы можете установить PulseAudio Volume Control (называемый pavucontrol в большинстве репозиториев пакетов).

Если вы чувствуете, что вам не нужны функции, предоставляемые PulseAudio, вы можете использовать чистый ALSA или заменить его другим звуковым сервером.

PulseAudio против JACK

PulseAudio — не единственный звуковой сервер для Linux. Также существует JACK, рекурсивное сокращение от JACK Audio Connection Kit. В то время как PulseAudio был разработан с учетом потребностей обычных пользователей Linux, JACK предназначен для ди-джеев и профессионалов в области аудио, обеспечивая в реальном времени соединения с малой задержкой как для аудио, так и для MIDI-данных.

Потому что JACK позволяет соединять аудиовходы и выходы каждого из ваших приложений вместе, вы можете делать с ним довольно интересные вещи, такие как мониторинг собственного голоса, добавление к нему эффектов в режиме реального времени и многое другое. Фактически, название этой звуковой системы было вдохновлено кабелями, которые используются в реальных студиях звукозаписи для создания сложных соединений между инструментами, синтезаторами, MIDI-контроллерами и мультитрекингами.

Возможно, самым большим недостатком JACK является что он обычно либо работает идеально, либо ужасно, учитывая тот факт, что его главная цель — обеспечить звук с малой задержкой. Он также требует значительно большей мощности процессора по сравнению с PulseAudio, поэтому вы найдете его в основном на профессиональных рабочих станциях, предназначенных для редактирования аудио..

Проверка Pulse Audio и ALSA

Вам может быть интересно, как мне узнать, какое аудио программное обеспечение использует мой компьютер? Чтобы проверить, присутствуют ли в вашей системе и Pulse Audio, и ALSA, используйте следующие две команды:

Проверка PulseAudio:

$ pactl список

Проверка ALSA:

$ aplay -l

Заключение

Аудио в Linux кажется сложным, потому что это действительно так. Распутать паутину унаследованных технологий и уровней абстракции может стать настоящей проблемой даже для опытных пользователей Linux, которые знают все тонкости операционной системы наизусть. Надеюсь, наша статья помогла вам лучше понять наиболее важные компоненты аудиосистемы Linux, включая ALSA, OSS и PulseAudio.

Оцените статью
nanomode.ru
Добавить комментарий