Аудио

Руководство Noob по Linux Audio ALSA, OSS и Pulse Audio

Руководство 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.

Открытая звуковая система (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 против. РАЗЪЕМ

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.

Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...