Lyd

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

Noob's Guide to Linux Audio ALSA, OSS, and Pulse Audio Explained
Det er en ting både nye og erfarne Linux-brukere kan bli enige om: Linux-lyd er forvirrende. Ikke bare utfører flere teknologier lignende jobber, men de fleste av dem kan utelates helt av Linux-distribusjoner og deres brukere.

Situasjonen er relativt fin når det gjelder vanlige distroer som Ubuntu, Debian eller Fedora fordi utviklerne deres har strukket seg langt for å få lyd til å fungere rett ut av esken, men det samme kan ikke sies om Arch Linux, Gentoo, og andre minimalistiske distribusjoner som forventer at brukerne skal konfigurere alt fra bunnen av.

Denne artikkelen vil ikke gjøre deg til en ekspert på Linux-lyd, men forhåpentligvis vil den forklare de grunnleggende teknologiene som er ansvarlige for å få lyd til å komme ut av høyttalerne dine når du åpner en video på YouTube eller spiller et spill på Steam.

Avansert Linux Sound Architecture (ALSA)

La oss starte med det viktigste laget av Linux-lyd, ALSA. ALSA ble opprettet i 1998 av den tsjekkiske programvareutvikleren Jaroslav Kysela, og er ansvarlig for å gi en stemme til alle moderne Linux-distribusjoner. Det er faktisk en del av selve Linux-kjernen, og gir lydfunksjonalitet til resten av systemet via et applikasjonsprogrammeringsgrensesnitt (API) for lydkortdrivere.

Den originale utformingen av ALSA var i stor grad inspirert av Linux-enhetsdriveren for Gravis Ultrasound lydkort, som ble laget av Canada-baserte Advanced Gravis Computer Technology og ble veldig populær i demo-scenen i løpet av 1990-tallet.

ALSA-støtte for alle typer lydgrensesnitt takket være fullmodulariserte lyddrivere, kan administrere opptil åtte lydenheter samtidig, få tilgang til MIDI-funksjonalitet for maskinvare, utføre maskinvareblanding av flere kanaler og mer.

Brukere kommuniserer vanligvis med ALSA ved å bruke alsamixer, et grafisk mikserprogram som kan brukes til å konfigurere lydinnstillinger og justere volumet på individuelle kanaler. Alsamixer kjører i terminalen, og du kan påberope den bare ved å skrive navnet. En spesielt nyttig tastaturkommando aktiveres ved å trykke på M-tasten. Denne kommandoen bytter kanal demping, og det er en ganske vanlig løsning på mange spørsmål lagt ut på Linux diskusjonstavler.

Åpne lydsystem (OSS)

Den offisielle nettsiden til ALSA nevner støtte for Open Sound System, eller OSS for kort. Inntil Linux 2.5, OSS var faktisk det viktigste og eneste lydsystemet for Linux. ALSA ble designet for å overvinne forskjellige mangler, for eksempel det faktum at det ikke tillot mer enn ett program å få tilgang til maskinvaren om gangen. I Linux 2.6 ALSA erstattet OSS som standard lydsystem.

Da utviklerne av OSS kunngjorde at OSS-versjonen ville ha en proprietær lisens, ble det raskt tatt en beslutning av Linux-utviklere om å erstatte den med ALSA. Det er verdt å merke seg at OSS ble fri programvare igjen med utgivelsen av versjon 4 i 2007. I dag distribueres OSS under fire forskjellige lisenser (BSD, CDDL, GPL, Proprietary).

De fleste Linux-distribusjoner i disse dager bry ikke engang å aktivere OSS-emuleringslaget som er tilstede i ALSA, fordi nesten ingen trenger det lenger, noe som gjør OSS til en levning fra fortiden.

PulseAudio

Hvis du ikke husker sist gang du kommuniserte med ALSA når du endret lydinnstillingene dine, er det sannsynligvis fordi det brukervendte laget av Linux-lydsystemet i de fleste moderne distribusjoner kalles PulseAudio.

PulseAudio ble opprinnelig utgitt i 2004, og den er nå inkludert og aktivert som standard i Ubuntu, Linux Mint, openSUSE og andre store distribusjoner. PulseAudios jobb er å overføre lyddata mellom applikasjonene og maskinvaren din, lede lyder fra ALSA til forskjellige utgangsdestinasjoner, for eksempel datamaskinens høyttalere eller hodetelefoner. Derfor blir det ofte referert til som en lydserver.

Ved første øyekast kan det se ut som at PulseAudio egentlig ikke legger til noe kritisk viktig for Linux-lyd, og mange av kritikerne deler den samme oppfatningen. I virkeligheten er det faktisk mange ting som det ville være umulig eller vanskelig å oppnå uten det, inkludert å blande flere lyder til en, overføre lyd til en annen maskin eller endre eksempelformat eller antall kanaler.

PulseAudio gir også kompatibilitet på tvers av plattformer (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS, og på en begrenset måte, Microsoft Windows). Hvis du vil kontrollere PulseAudio direkte, i stedet for å samhandle med den via en volumkontroll-widget eller et panel av noe slag, kan du installere PulseAudio Volumkontroll (kalt pavucontrol i de fleste pakkelager).

Hvis du føler at du ikke har bruk for funksjonene som tilbys av PulseAudio, kan du enten bruke ren ALSA eller erstatte den med en annen lydserver.

PulseAudio vs. JACK

PulseAudio er ikke den eneste lydserveren for Linux. Det er også JACK, som er et rekursivt akronym for JACK Audio Connection Kit. Mens PulseAudio ble utviklet med tanke på behovene til generelle Linux-brukere, er JACK beregnet på DJ-er og lydfagfolk, og tilbyr sanntidsforbindelser med lav latens for både lyd- og MIDI-data.

Fordi JACK lar deg koble lydinngangene og utgangene til hver og en av applikasjonene dine sammen, kan du gjøre noen ganske kule ting med det, for eksempel å overvåke din egen stemme, legge til effekter i sanntid og mer. Navnet på dette lydsystemet ble faktisk inspirert av kablene som ble brukt i ekte opptaksstudioer for å bygge intrikate forbindelser mellom instrumenter, synthesizere, MIDI-kontrollere og multitrackere.

Uten tvil er den største ulempen med JACK at den vanligvis enten fungerer perfekt eller forferdelig, og eier det faktum at hovedmålet er å gi lyd med lav latens. Det krever også betydelig mer CPU-kraft sammenlignet med PulseAudio, og derfor finner du det mest på profesjonelle arbeidsstasjoner dedikert til lydredigering.

Kontrollerer pulslyd og ALSA

Du lurer kanskje på hvordan jeg forteller hvilken lydprogramvare datamaskinen min bruker? For å sjekke om både Pulse Audio og ALSA er tilstede på systemet ditt, bruk følgende to kommandoer:
Sjekke etter PulseAudio:

$ pactl-liste


Sjekker for ALSA:

$ aplay -l

Konklusjon

Lyd på Linux virker komplisert fordi det virkelig er det. Å koble nettet av eldre teknologier og lag med abstraksjon kan være en reell utfordring selv for erfarne Linux-brukere som kjenner inn og ut av operativsystemet utenat. Forhåpentligvis hjalp vår artikkel deg med å forstå de viktigste komponentene i Linux-lydsystemet, inkludert ALSA, OSS og PulseAudio.

Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...
Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...