Zvuk

Noob's Guide to Linux Audio ALSA, OSS, and Pulse Audio Explained

Noob's Guide to Linux Audio ALSA, OSS, and Pulse Audio Explained
Existuje jedna vec, na ktorej sa môžu noví aj skúsení používatelia systému Linux zhodnúť: zvuk systému Linux je mätúci. Nielenže niekoľko technológií vykonáva podobné úlohy, ale väčšina z nich môže byť úplne vynechaná distribúciami Linuxu a ich používateľmi.

Situácia je relatívne v poriadku, pokiaľ ide o bežné distribúcie ako Ubuntu, Debian alebo Fedora, pretože ich vývojári vyvinuli veľké úsilie, aby zvuk fungoval ihneď po vybalení z krabice, ale to isté sa nedá povedať o Arch Linuxu, Gentoo, a ďalšie minimalistické distribúcie, ktoré od používateľov očakávajú úplnú konfiguráciu.

Tento článok z vás neurobí odborníka na zvuk v systéme Linux, ale, dúfajme, vysvetlí základné technológie zodpovedné za vydávanie zvuku z vašich reproduktorov, keď otvoríte video na YouTube alebo hráte hru na Steam.

Advanced Linux Sound Architecture (ALSA)

Začnime najdôležitejšou vrstvou zvuku Linuxu, ALSA. Spoločnosť ALSA, ktorú v roku 1998 vytvoril český vývojár softvéru Jaroslav Kysela, je zodpovedná za sprostredkovanie hlasu všetkým moderným distribúciám Linuxu. Je to v skutočnosti súčasť samotného jadra systému Linux a poskytuje zvukovú funkčnosť zvyšku systému prostredníctvom aplikačného programovacieho rozhrania (API) pre ovládače zvukových kariet.

Pôvodný dizajn ALSA bol do značnej miery inšpirovaný linuxovým ovládačom zariadenia pre zvukovú kartu Gravis Ultrasound, ktorý vyrobila kanadská Advanced Gravis Computer Technology a v 90. rokoch sa stal veľmi populárnym na demo scéne.

Podpora ALSA pre všetky typy zvukových rozhraní vďaka plne modulárnym zvukovým ovládačom, dokáže spravovať až osem zvukových zariadení súčasne, prístup k hardvérovým funkciám MIDI, hardvérové ​​mixovanie viacerých kanálov a ďalšie.

Používatelia zvyčajne spolupracujú s ALSA pomocou grafického mixážneho programu alsamixer, ktorý je možné použiť na konfiguráciu nastavení zvuku a úpravu hlasitosti jednotlivých kanálov. Alsamixer beží v termináli a môžete ho vyvolať iba zadaním jeho názvu. Jeden obzvlášť užitočný klávesový príkaz sa aktivuje stlačením klávesu M. Tento príkaz prepína stlmenie kanála a je to pomerne častá oprava mnohých otázok zverejnených na diskusných fórach systému Linux.

Otvorený zvukový systém (OSS)

Oficiálna webová stránka ALSA sa zmieňuje o podpore systému Open Sound System alebo skrátene OSS. Až do Linuxu 2.5, OSS bol vlastne hlavný a jediný zvukový systém pre Linux. ALSA bola navrhnutá tak, aby prekonala rôzne nedostatky, napríklad skutočnosť, že neumožňovala prístup k hardvéru súčasne viacerým aplikáciám. V systéme Linux 2.6 ALSA nahradil OSS ako predvolený zvukový systém.

Keď vývojári OSS oznámili, že verzia OSS bude mať proprietárnu licenciu, vývojári Linuxu rýchlo prijali rozhodnutie nahradiť ju ALSA. Stojí za zmienku, že OSS sa s vydaním verzie 4 v roku 2007 stal opäť slobodným softvérom. Dnes je OSS distribuovaný pod štyrmi rôznymi licenciami (BSD, CDDL, GPL, Proprietary).

Väčšina dnešných distribúcií Linuxu sa neobťažuje ani s aktiváciou emulačnej vrstvy OSS prítomnej v ALSA, pretože ju už takmer nikto nepotrebuje, vďaka čomu je OSS pozostatkom minulosti.

PulseAudio

Ak si nepamätáte, kedy ste pri zmene nastavení zvuku naposledy komunikovali s programom ALSA, je to pravdepodobne preto, lebo používateľská vrstva zvukového systému Linux sa vo väčšine moderných distribúcií nazýva PulseAudio.

Aplikácia PulseAudio bola pôvodne vydaná v roku 2004 a teraz je predvolene zahrnutá a povolená v systémoch Ubuntu, Linux Mint, openSUSE a ďalších hlavných distribúciách. Úlohou aplikácie PulseAudio je prenášať zvukové dáta medzi vašimi aplikáciami a hardvérom a smerovať zvuky prichádzajúce z ALSA do rôznych výstupných cieľov, napríklad do reproduktorov počítača alebo slúchadiel. Preto sa bežne označuje ako zvukový server.

Na prvý pohľad by sa mohlo zdať, že PulseAudio do zvuku Linuxu nepridáva nič zásadne dôležitého a mnoho jeho kritikov má rovnaký názor. V skutočnosti existuje skutočne veľa vecí, ktoré by bolo nemožné alebo ťažké bez toho dosiahnuť, vrátane zmiešania viacerých zvukov do jedného, ​​prenosu zvuku do iného zariadenia alebo zmeny formátu ukážky alebo počtu kanálov.

PulseAudio tiež prináša kompatibilitu medzi platformami (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS a obmedzene aj Microsoft Windows). Ak chcete ovládať program PulseAudio priamo, môžete namiesto interakcie s ním pomocou widgetu na ovládanie hlasitosti alebo nejakého panelu nainštalovať program PulseAudio Volume Control (vo väčšine úložísk balíkov sa nazýva pavucontrol).

Ak máte pocit, že nemáte k dispozícii funkcie poskytované PulseAudio, môžete použiť čistý ALSA alebo ho nahradiť iným zvukovým serverom.

PulseAudio vs. JACK

PulseAudio nie je jediný zvukový server pre Linux. Existuje aj JACK, čo je rekurzívna skratka pre JACK Audio Connection Kit. Zatiaľ čo program PulseAudio bol vyvinutý s ohľadom na potreby bežných používateľov systému Linux, program JACK je určený pre DJov a profesionálov v oblasti zvuku. Poskytuje pripojenie v reálnom čase s nízkou latenciou pre zvukové aj MIDI dáta.

Pretože JACK vám umožňuje prepojiť zvukové vstupy a výstupy všetkých vašich aplikácií, môžete s nimi robiť niekoľko skvelých vecí, ako napríklad sledovanie vlastného hlasu, pridávanie efektov v reálnom čase a ďalšie. Názov tohto zvukového systému bol v skutočnosti inšpirovaný káblami používanými v skutočných nahrávacích štúdiách na vytváranie zložitých spojení medzi nástrojmi, syntetizátormi, MIDI ovládačmi a multitrackermi.

Pravdepodobne najväčšou nevýhodou JACKu je to, že zvyčajne funguje perfektne alebo príšerne, keďže jeho hlavným cieľom je poskytovať zvuk s nízkou latenciou. Vyžaduje tiež podstatne vyšší výkon procesora v porovnaní s programom PulseAudio, preto ho nájdete väčšinou na profesionálnych pracovných staniciach zameraných na úpravu zvuku.

Kontrola Pulse Audio a ALSA

Možno by vás zaujímalo, ako zistím, aký zvukový softvér môj počítač používa? Ak chcete skontrolovať, či sa vo vašom systéme nachádza program Pulse Audio aj ALSA, použite nasledujúce dva príkazy:
Kontrola PulseAudio:

$ pactl zoznam


Kontrola ALSA:

$ aplay -l

Záver

Zvuk v systéme Linux sa zdá byť komplikovaný, pretože to tak je. Rozmotanie webu starších technológií a vrstiev abstrakcie môže byť skutočnou výzvou aj pre ostrieľaných používateľov systému Linux, ktorí poznajú vstupy a výstupy operačného systému naspamäť. Dúfajme, že náš článok vám pomohol lepšie pochopiť najdôležitejšie komponenty zvukového systému Linux, vrátane ALSA, OSS a PulseAudio.

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...
Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...