Аудіо

Пояснення керівництва 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 і став дуже популярним на демонстраційній сцені в 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, 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.

Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...
Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...