Hang

Noob útmutatója a Linux Audio ALSA, OSS és Pulse Audio magyarázatához

Noob útmutatója a Linux Audio ALSA, OSS és Pulse Audio magyarázatához
Egy dologban az új és a tapasztalt Linux-felhasználók egyaránt megegyezhetnek: a Linux hangja zavaró. Nemcsak több technológia lát el hasonló feladatokat, hanem a Linux disztribúciók és azok felhasználói a legtöbbet teljesen kihagyhatják.

Viszonylag rendben van a helyzet az olyan mainstream disztrókkal kapcsolatban, mint az Ubuntu, a Debian vagy a Fedora, mert fejlesztőik nagy erőfeszítéseket tettek annak érdekében, hogy a hangmunkát közvetlenül a dobozból készítsék el, de ugyanez nem mondható el az Arch Linux, a Gentoo, és más minimalista disztribúciók, amelyek elvárják, hogy a felhasználók mindent a nulláról konfiguráljanak.

Ez a cikk nem tesz téged a Linux audio szakértőjévé, de remélhetőleg elmagyarázza azokat az alapvető technológiákat, amelyek felelősek a hangzásért, amikor a hangszórókból előkerül, amikor videót nyit meg a YouTube-on, vagy játékot játszik a Steam-en.

Advanced Linux Sound Architecture (ALSA)

Kezdjük a Linux audio legfontosabb rétegével, az ALSA-val. Jaroslav Kysela cseh szoftverfejlesztő által 1998-ban létrehozott ALSA felelős azért, hogy hangot adjon minden modern Linux disztribúciónak. Valójában maga a Linux kernel része, amely audio funkciókat biztosít a rendszer többi részére egy alkalmazásprogramozási felületen (API) keresztül a hangkártya eszközillesztők számára.

Az ALSA eredeti kialakítását nagyrészt a Gravis Ultrasound hangkártya Linux-illesztőprogramja ihlette, amelyet a kanadai Advanced Gravis Computer Technology készített, és az 1990-es években nagyon népszerűvé vált a demóban.

Az ALSA támogatás minden típusú audio interfészhez a teljesen modulált hangmeghajtóknak köszönhetően, akár nyolc audio eszközt is kezelhet egyszerre, hozzáférhet a hardveres MIDI funkciókhoz, több csatorna hardveres keverését végezheti, és még sok más.

A felhasználók általában az ALSA-val lépnek kapcsolatba az alsamixer segítségével, egy grafikus keverő programmal, amely felhasználható a hangbeállítások konfigurálására és az egyes csatornák hangerejének beállítására. Az Alsamixer fut a terminálban, és csak a nevének beírásával hívhatja meg. Az egyik különösen hasznos billentyűparancs az M billentyű lenyomásával aktiválható. Ez a parancs átkapcsolja a csatorna némítását, és meglehetősen gyakori javítás a Linux fórumon feltett számos kérdésre.

Nyílt hangrendszer (OSS)

Az ALSA hivatalos honlapja megemlíti az Open Sound System, vagy röviden az OSS támogatását. A Linux 2-ig.5, az OSS valójában a fő és egyetlen hangrendszer volt a Linux számára. Az ALSA-t úgy tervezték, hogy kiküszöbölje a különféle hiányosságait, például azt a tényt, hogy egyszerre csak egy alkalmazás engedélyezte a hardver elérését. Linux 2-ben.6 Az ALSA az OSS-t cserélte ki alapértelmezett hangrendszerként.

Amikor az OSS fejlesztői bejelentették, hogy az OSS verziónak saját licence lesz, a Linux fejlesztői gyorsan meghozták a döntést az ALSA cseréjéről. Érdemes megjegyezni, hogy az OSS a 4-es verzió 2007-es kiadásával ismét szabad szoftver lett. Ma az OSS-t négy különböző licenc alatt terjesztik (BSD, CDDL, GPL, saját).

A legtöbb Linux disztribúció manapság nem is zavarja az ALSA-ban lévő OSS emulációs réteg aktiválását, mert szinte senkinek nincs szüksége rá, így az OSS a múlt emléke.

PulseAudio

Ha nem emlékszel arra, hogy mikor léptél kapcsolatba utoljára az ALSA-val az audio-beállítások megváltoztatásakor, ez valószínűleg azért van, mert a Linux audiorendszer felhasználó felé néző rétegét a legtöbb modern disztribúcióban PulseAudio-nak hívják.

A PulseAudio eredetileg 2004-ben jelent meg, mostantól alapértelmezés szerint benne van és engedélyezve van az Ubuntu, a Linux Mint, az openSUSE és más nagyobb terjesztésekben. A PulseAudio feladata a hangadatok átvitele az alkalmazások és a hardver között, az ALSA-ból érkező hangokat különböző kimeneti célokra irányítja, például a számítógép hangszóróira vagy fejhallgatójára. Ezért szokták hangkiszolgálónak nevezni.

Első pillantásra úgy tűnhet, hogy a PulseAudio valójában nem ad hozzá kritikusan fontos dolgokat a Linux audióhoz, és számos kritikusa ugyanazon a véleményen van. A valóságban sok olyan dolog van, amelyet lehetetlen vagy nehéz lenne megvalósítani nélküle, beleértve a több hang keverését egybe, a hang átvitelét egy másik gépbe, vagy a minta formátumának vagy csatornaszámának megváltoztatását.

A PulseAudio emellett platformokon átívelő kompatibilitást is kínál (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS és korlátozottan Microsoft Windows). Ha közvetlenül szeretné vezérelni a PulseAudio-t, ahelyett, hogy valamilyen hangerőszabályzó eszközön vagy panelen keresztül kommunikálna vele, telepítheti a PulseAudio Volume Control funkciót (a legtöbb csomagtárban pavucontrolnak hívják).

Ha úgy érzi, hogy nem használja a PulseAudio által nyújtott szolgáltatásokat, használhatja a tiszta ALSA-t, vagy lecserélheti egy másik hangszerverre.

PulseAudio vs. JACK

A PulseAudio nem az egyetlen hangkiszolgáló a Linux számára. Van még JACK is, amely a JACK Audio Connection Kit rekurzív rövidítése. Míg a PulseAudio-t az általános Linux felhasználók igényeit szem előtt tartva fejlesztették ki, a JACK DJ-k és audio szakemberek számára készült, valós idejű, alacsony késésű kapcsolatokat biztosítva mind az audio, mind a MIDI adatokhoz.

Mivel a JACK lehetővé teszi, hogy összekapcsolja az egyes alkalmazások audio- és kimeneteit, nagyon jó dolgokat tehet vele, például felügyelheti saját hangját, effektusokat adhat hozzá valós időben, és így tovább. Valójában ennek a hangrendszernek a nevét az igazi felvételi stúdiókban használt kábelek ihlették, hogy bonyolult kapcsolatokat hozzanak létre hangszerek, szintetizátorok, MIDI vezérlők és multitrackerek között.

A JACK vitathatatlanul legnagyobb hátránya, hogy általában tökéletesen vagy szörnyen működik, tulajdonképpen annak a ténynek, hogy fő célja alacsony késleltetésű hangszolgáltatás. Emellett a PulseAudio-hoz képest lényegesen több CPU-energiát igényel, ezért leginkább audio szerkesztésre szánt professzionális munkaállomásokon találja meg.

Pulse Audio és ALSA ellenőrzése

Kíváncsi lehet, hogyan tudom megmondani, hogy a számítógépem melyik audioszoftvert használja? Használja a következő két parancsot annak ellenőrzéséhez, hogy a Pulse Audio és az ALSA egyaránt jelen van-e a rendszerén:
A PulseAudio ellenőrzése:

$ pactl lista


ALSA ellenőrzése:

$ aplay -l

Következtetés

A audio a Linuxon bonyolultnak tűnik, mert valóban így van. A régi technológiák és az absztrakciós rétegek kibontása még a tapasztalt Linux felhasználók számára is komoly kihívást jelenthet, akik fejből ismerik az operációs rendszer csínját-bínját. Remélhetőleg cikkünk segített jobban megérteni a Linux audiorendszer legfontosabb elemeit, beleértve az ALSA-t, az OSS-t és a PulseAudio-t.

Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...
A GameConqueror Cheat Engine használata Linux alatt
A cikk tartalmaz egy útmutatót a GameConqueror csaló motor Linux alatt történő használatáról. Sok olyan felhasználó, aki Windows-on játszik játékot, g...
A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...