Lyd

Noobs vejledning til Linux Audio ALSA, OSS og Pulse Audio forklaret

Noobs vejledning til Linux Audio ALSA, OSS og Pulse Audio forklaret
Der er én ting, som både nye og erfarne Linux-brugere kan være enige om: Linux-lyd er forvirrende. Ikke kun udfører flere teknologier lignende job, men de fleste af dem kan udelades fuldstændigt af Linux-distributioner og deres brugere.

Situationen er relativt fin, når det kommer til almindelige distroer som Ubuntu, Debian eller Fedora, fordi deres udviklere har gjort meget for at få lyd til at fungere lige ud af kassen, men det samme kan ikke siges om Arch Linux, Gentoo, og andre minimalistiske distributioner, der forventer, at brugerne konfigurerer alt fra bunden.

Denne artikel vil ikke gøre dig til en ekspert på Linux-lyd, men forhåbentlig vil det forklare de grundlæggende teknologier, der er ansvarlige for at få lyd til at komme ud af dine højttalere, når du åbner en video på YouTube eller spiller et spil på Steam.

Advanced Linux Sound Architecture (ALSA)

Lad os starte med det vigtigste lag af Linux-lyden, ALSA. ALSA blev oprettet i 1998 af den tjekkiske softwareudvikler Jaroslav Kysela og er ansvarlig for at give en stemme til alle moderne Linux-distributioner. Det er faktisk en del af selve Linux-kernen, der leverer lydfunktionalitet til resten af ​​systemet via en applikationsprogrammeringsgrænseflade (API) til lydkortdrivere.

Det originale design af ALSA var stort set inspireret af Linux-enhedsdriveren til Gravis Ultrasound lydkort, som blev lavet af Canada-baserede Advanced Gravis Computer Technology og blev meget populær i demo-scenen i 1990'erne.

ALSA-understøttelse af alle typer lydgrænseflader takket være fuldt modulariserede lyddrivere, kan styre op til otte lydenheder på samme tid, få adgang til hardware MIDI-funktionalitet, udføre hardwareblanding af flere kanaler og mere.

Brugere interagerer typisk med ALSA ved hjælp af alsamixer, et grafisk mixerprogram, der kan bruges til at konfigurere lydindstillinger og justere lydstyrken på de enkelte kanaler. Alsamixer kører i terminalen, og du kan påberåbe den bare ved at skrive navnet. En særlig nyttig tastaturkommando aktiveres ved at trykke på M-tasten. Denne kommando skifter kanalmute, og det er en ret almindelig løsning på mange spørgsmål, der er lagt på Linux-diskussionsforum.

Åbn lydsystem (OSS)

Den officielle hjemmeside for ALSA nævner support til Open Sound System, eller kort sagt OSS. Indtil Linux 2.5, OSS var faktisk det vigtigste og eneste lydsystem til Linux. ALSA blev designet til at overvinde dens forskellige mangler, såsom det faktum, at det ikke tillod mere end et program at få adgang til hardware ad gangen. I Linux 2.6 ALSA erstattede OSS som standard lydsystem.

Da udviklerne af OSS meddelte, at OSS-versionen ville have en proprietær licens, blev der hurtigt taget en beslutning fra Linux-udviklere om at erstatte den med ALSA. Det er værd at bemærke, at OSS blev gratis software igen med udgivelsen af ​​version 4 i 2007. I dag distribueres OSS under fire forskellige licenser (BSD, CDDL, GPL, proprietær).

De fleste Linux-distributioner i disse dage gider ikke engang at aktivere OSS-emuleringslaget, der er til stede i ALSA, fordi næsten ingen mere har brug for det, hvilket gør OSS til et levn fra fortiden.

PulseAudio

Hvis du ikke kan huske sidste gang, du interagerede med ALSA, når du ændrede dine lydindstillinger, skyldes det sandsynligvis, at det brugervendte lag af Linux-lydsystemet i de fleste moderne distributioner kaldes PulseAudio.

PulseAudio blev oprindeligt udgivet i 2004, og det er nu inkluderet og aktiveret som standard i Ubuntu, Linux Mint, openSUSE og andre større distributioner. PulseAudio har til opgave at videregive lyddata mellem dine applikationer og din hardware og lede lyde fra ALSA til forskellige outputdestinationer, såsom dine computerhøjttalere eller hovedtelefoner. Derfor kaldes det ofte en lydserver.

Ved første øjekast ser det ud til, at PulseAudio ikke rigtig tilføjer noget kritisk vigtigt til Linux-lyd, og mange af dets kritikere deler den samme opfattelse. I virkeligheden er der faktisk mange ting, der ville være umulige eller vanskelige at opnå uden det, herunder blanding af flere lyde til en, overførsel af lyd til en anden maskine eller ændring af prøveformat eller kanalantal.

PulseAudio bringer også kompatibilitet på tværs af platforme (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS og på en begrænset måde, Microsoft Windows). Hvis du vil styre PulseAudio direkte, i stedet for at interagere med det via en volumenkontrol-widget eller et panel af en slags, kan du installere PulseAudio Volume Control (kaldet pavucontrol i de fleste pakkeopbevaringssteder).

Hvis du føler, at du ikke har brug for funktionerne fra PulseAudio, kan du enten bruge ren ALSA eller erstatte den med en anden lydserver.

PulseAudio vs. JACK

PulseAudio er ikke den eneste lydserver til Linux. Der er også JACK, som er et rekursivt akronym for JACK Audio Connection Kit. Mens PulseAudio blev udviklet med henblik på generelle Linux-brugere i tankerne, er JACK beregnet til DJ'er og lydprofessionelle, der leverer forbindelser i realtid med lav latens til både lyd- og MIDI-data.

Fordi JACK lader dig forbinde lydindgange og -udgange fra hver enkelt af dine applikationer sammen, kan du gøre nogle ret seje ting med det, såsom at overvåge din egen stemme, tilføje effekter til den i realtid og mere. Faktisk blev navnet på dette lydsystem inspireret af kablerne, der blev brugt i ægte optagestudier til at opbygge indviklede forbindelser mellem instrumenter, synthesizere, MIDI-controllere og multitrackere.

Uden tvivl er den største ulempe ved JACK, at det normalt enten fungerer perfekt eller forfærdeligt, idet det ejer det faktum, at dets overordnede mål er at levere lyd med lav latens. Det kræver også betydeligt mere CPU-effekt sammenlignet med PulseAudio, hvorfor du finder det mest på professionelle arbejdsstationer dedikeret til lydredigering.

Kontrol af pulslyd og ALSA

Du undrer dig måske over, hvordan fortæller jeg, hvilken lydsoftware min computer bruger? For at kontrollere, om både Pulse Audio og ALSA findes på dit system, skal du bruge følgende to kommandoer:
Kontrol af PulseAudio:

$ pactl liste


Kontrol af ALSA:

$ aplay -l

Konklusion

Audio på Linux virker kompliceret, fordi det virkelig er det. At afbryde nettet af ældre teknologier og lag af abstraktion kan være en reel udfordring selv for erfarne Linux-brugere, der kender operativsystemets ind og ud udenad. Forhåbentlig hjalp vores artikel dig med bedre at forstå de vigtigste komponenter i Linux-lydsystemet, herunder ALSA, OSS og PulseAudio.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...