Аудио

Обяснено Ръководство на 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. Създадена през 1998 г. от чешкия разработчик на софтуер Ярослав Кисела, ALSA е отговорна за даването на глас на всички съвременни дистрибуции на Linux. Това всъщност е част от самото ядро ​​на Linux, предоставяйки аудио функционалност на останалата част от системата чрез интерфейс за програмиране на приложения (API) за драйвери на устройства със звукова карта.

Оригиналният дизайн на ALSA е до голяма степен вдъхновен от драйвера за устройство на Linux за звуковата карта Gravis Ultrasound, който е направен от базираната в Канада Advanced Gravis Computer Technology и стана много популярен в демо сцената през 90-те.

Поддръжката на 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, Proprietary).

Повечето дистрибуции на 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, поради което ще го намерите най-вече на професионални работни станции, посветени на аудио редактиране.

Проверка на импулсно аудио и ALSA

Може би се чудите как да разбера кой аудио софтуер използва компютърът ми? За да проверите дали и двете Pulse Audio и ALSA присъстват във вашата система, използвайте следните две команди:
Проверка за PulseAudio:

$ pactl списък


Проверка за ALSA:

$ aplay -l

Заключение

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

Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...
Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...