Situacija je razmeroma v redu, ko gre za običajne distribucijske sisteme, kot so Ubuntu, Debian ali Fedora, ker so se njihovi razvijalci zelo potrudili, da bi zvok deloval takoj, vendar tega ne moremo trditi za Arch Linux, Gentoo, in druge minimalistične distribucije, ki od uporabnikov pričakujejo, da vse konfigurirajo iz nič.
Ta članek vas ne bo naredil za strokovnjaka za zvok v Linuxu, vendar bo, upajmo, razložil osnovne tehnologije, ki skrbijo za to, da zvok prihaja iz zvočnikov, ko odprete video v YouTubu ali igrate igro v Steamu.
Napredna arhitektura zvoka Linux (ALSA)
Začnimo z najpomembnejšo plastjo zvoka za Linux, ALSA. ALSA, ki jo je leta 1998 ustanovil češki razvijalec programske opreme Jaroslav Kysela, je odgovoren za glas vseh sodobnih distribucij Linuxa. Pravzaprav je del samega jedra Linuxa, ki prek vmesnika za programiranje aplikacij (API) za gonilnike naprav zvočne kartice zagotavlja zvočne funkcije ostalim sistemom.
Prvotno zasnovo ALSA je v veliki meri navdihnil gonilnik naprave Linux za zvočno kartico Gravis Ultrasound, ki jo je izdelala kanadska Advanced Gravis Computer Technology in je postala zelo priljubljena na demo sceni v devetdesetih letih.
Podpora ALSA za vse vrste zvočnih vmesnikov, zahvaljujoč popolnoma moduliranim zvočnim gonilnikom, lahko hkrati upravlja do osem zvočnih naprav, dostopa do funkcionalnosti MIDI strojne opreme, izvaja strojno mešanje več kanalov in še več.
Uporabniki običajno sodelujejo z ALSA z uporabo alsamixerja, grafičnega mešalnega programa, s katerim lahko konfigurirate nastavitve zvoka in prilagodite glasnost posameznih kanalov. Alsamixer deluje v terminalu in ga lahko prikličete tako, da vpišete njegovo ime. Še posebej uporaben ukaz na tipkovnici se aktivira s pritiskom na tipko M. Ta ukaz preklopi utišanje kanala in je precej pogost popravek številnih vprašanj, objavljenih na razpravnih ploščah Linuxa.
Odprti zvočni sistem (OSS)
Na uradni spletni strani ALSA je omenjena podpora za Open Sound System ali na kratko OSS. Do Linuxa 2.5. OSS je bil dejansko glavni in edini zvočni sistem za Linux. ALSA je bil zasnovan za premagovanje različnih pomanjkljivosti, na primer dejstva, da hkrati ni dovoljevalo dostopa do strojne opreme več kot eni aplikaciji. V Linuxu 2.6 ALSA je zamenjal OSS kot privzeti zvočni sistem.
Ko so razvijalci OSS objavili, da bo imela različica OSS lastniško licenco, so razvijalci Linuxa hitro sprejeli odločitev, da jo nadomestijo z ALSA. Omeniti velja, da je OSS z izdajo različice 4 leta 2007 spet postal brezplačna programska oprema. Danes se OSS distribuira pod štirimi različnimi licencami (BSD, CDDL, GPL, lastniška).
Večina distribucij Linuxa se danes sploh ne trudi aktivirati sloja emulacije OSS, ki je prisoten v ALSA, ker ga skoraj nihče več ne potrebuje, zaradi česar je OSS relikt preteklosti.
PulseAudio
Če se ne spomnite, kdaj ste zadnjič komunicirali z ALSA pri spreminjanju zvočnih nastavitev, je to verjetno zato, ker se uporabniški sloj zvočnega sistema Linux v večini sodobnih distribucij imenuje PulseAudio.
PulseAudio je bil prvotno izdan leta 2004, zdaj pa je privzeto vključen in omogočen v Ubuntu, Linux Mint, openSUSE in drugih večjih distribucijah. Naloga PulseAudio je prenašanje zvočnih podatkov med vašimi aplikacijami in strojno opremo ter usmerjanje zvokov, ki prihajajo iz ALSA, na različne izhodne cilje, kot so zvočniki računalnika ali slušalke. Zato ga običajno imenujemo zvočni strežnik.
Na prvi pogled se zdi, da PulseAudio v resnici ne doda ničesar kritično pomembnega v zvok Linuxa in mnogi njegovi kritiki delijo isto mnenje. V resnici je veliko stvari, ki bi jih bilo brez tega nemogoče ali težko doseči, vključno z mešanjem več zvokov v enega, prenosom zvoka na drugo napravo ali spreminjanjem oblike vzorca ali števila kanalov.
PulseAudio prinaša tudi združljivost med različnimi platformami (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS in, omejeno, Microsoft Windows). Če želite neposredno nadzirati PulseAudio, namesto da bi z njim komunicirali prek neke vrste pripomočka za nadzor glasnosti ali plošče, lahko namestite PulseAudio Volume Control (imenovan pavucontrol v večini skladišč paketov).
Če menite, da funkcij, ki jih ponuja PulseAudio, ne uporabljate, lahko uporabite čisto ALSA ali jo zamenjate z drugim zvočnim strežnikom.
PulseAudio vs. JACK
PulseAudio ni edini zvočni strežnik za Linux. Obstaja tudi JACK, ki je rekurzivna kratica za JACK Audio Connection Kit. Medtem ko je bil PulseAudio razvit z namenom upoštevanja splošnih uporabnikov Linuxa, je JACK namenjen DJ-jem in avdio profesionalcem, ki zagotavljajo realnočasovne povezave z nizko zakasnitvijo za avdio in MIDI podatke.
Ker vam JACK omogoča povezavo avdio vhodov in izhodov vsake od vaših aplikacij, lahko z njim naredite nekaj zelo kul stvari, na primer spremljanje lastnega glasu, dodajanje učinkov v realnem času in še več. Pravzaprav so ime tega zvočnega sistema navdihnili kabli, ki se uporabljajo v resničnih snemalnih studiih za gradnjo zapletenih povezav med instrumenti, sintetizatorji, MIDI krmilniki in multitrackerji.
Verjetno največja slabost JACK-a je ta, da običajno deluje popolnoma ali grozno, saj je njegov glavni cilj zagotoviti zvok z nizko zakasnitvijo. Zahteva tudi precej več procesorske moči v primerjavi s PulseAudio, zato jo boste našli predvsem na profesionalnih delovnih postajah, namenjenih urejanju zvoka.
Preverjanje pulznega zvoka in ALSA
Morda se sprašujete, kako naj povem, katero avdio programsko opremo uporablja moj računalnik? Če želite preveriti, ali sta v sistemu prisotna tako Pulse Audio kot ALSA, uporabite naslednja dva ukaza:
Preverjanje PulseAudio:
Preverjanje ALSA:
Zaključek
Zvok v Linuxu se zdi zapleten, ker v resnici je. Razplet spleta starejših tehnologij in plasti abstrakcije je lahko resničen izziv tudi za izkušene uporabnike Linuxa, ki na pamet poznajo vse podrobnosti operacijskega sistema. Upajmo, da vam je naš članek pomagal bolje razumeti najpomembnejše komponente zvočnega sistema Linux, vključno z ALSA, OSS in PulseAudio.