Noobs guide til Linux Audio Alsa, OSS og Pulse Audio forklart

Noobs guide til Linux Audio Alsa, OSS og Pulse Audio forklart
Det er en ting både nye og erfarne Linux -brukere kan bli enige om: Linux Audio er forvirrende. Ikke bare er flere teknologier som utfører lignende jobber, men de fleste av dem kan utelates fullstendig av Linux -distribusjoner og deres brukere.

Situasjonen er relativt fin når det gjelder mainstream -distros som Ubuntu, Debian eller Fedora fordi utviklerne deres har gått mye for å få lyd til å fungere rett ut av boksen, men det samme kan ikke sies om Arch Linux, Gentoo, og andre minimalistiske distribusjoner som forventer at brukere skal konfigurere alt fra bunnen av.

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

Advanced Linux Sound Architecture (ALSA)

La oss starte med det viktigste laget av Linux -lyden, 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 Sound Card Device Drivers.

Den originale designen til ALSA ble i stor grad inspirert av Linux Device Driver for Gravis Ultrasound Sound Card, som ble laget av Canada-baserte Advanced Gravis Computer Technology og ble veldig populær i demoscenen på 1990-tallet.

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

Brukere samhandler vanligvis med ALSA ved bruk av Alsamixer, et grafisk mikserprogram som kan brukes til å konfigurere lydinnstillinger og justere volumet til individuelle kanaler. Alsamixer kjører i terminalen, og du kan påkalle den bare ved å skrive navnet. En spesielt nyttig tastaturkommando aktiveres ved å treffe M -tasten. Denne kommandoen veksler kanalmutring, og det er en ganske vanlig løsning på mange spørsmål som er lagt ut på Linux diskusjonstavler.

Åpent lydsystem (OSS)

Det offisielle nettstedet til ALSA nevner støtte for åpent lydsystem, eller OSS for kort. Til Linux 2.5, OSS var faktisk det viktigste og eneste lydsystemet for Linux. Alsa ble designet for å overvinne sine forskjellige mangler, for eksempel at det ikke tillot mer enn en applikasjon å få tilgang til maskinvaren om gangen. I Linux 2.6 ALSA erstattet OSS som standardlydsystem.

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

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

Pulseaudio

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

Pulseaudio ble opprinnelig utgitt i 2004, og det er nå inkludert og aktivert som standard i Ubuntu, Linux Mint, OpenSuse og andre store distribusjoner. Jobben med Pulseaudio er å overføre lyddata mellom applikasjonene dine og maskinvaren din, og regisserer lyder fra ALSA til forskjellige utdatedestinasjoner, for eksempel datamaskinhøyttalere eller hodetelefoner. Derfor blir det ofte referert til som en lydserver.

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

Pulseaudio bringer også Cross-Platform Compatibility (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 gjennom en volumkontroll -widget eller panel av et slags, kan du installere PulseAudio Volum Control (kalt Pavucontrol i de fleste pakkelagre).

Hvis du føler at du ikke har bruk for funksjonene som er levert av Pulseaudio, kan du enten bruke Pure 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 forkortelse for Jack Audio Connection Kit. Mens PulseAudio ble utviklet med behovene til generelle Linux-brukere i tankene, er Jack beregnet på DJ-er og lydfagfolk, og gir sanntid, tilkoblinger 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. Faktisk var navnet på dette lydsystemet inspirert av kablene som ble brukt i ekte innspillingsstudioer for å bygge intrikate forbindelser mellom instrumenter, synthesizere, MIDI -kontrollere og multitrackere.

Uten tvil er den største ulempen med Jack at den vanligvis fungerer perfekt eller fryktelig, og eier det faktum at dets viktigste mål er å gi lyd med lav latens. Det krever også betydelig mer CPU -kraft sammenlignet med Pulseaudio, og det er grunnen til at du mest finner det på profesjonelle arbeidsstasjoner dedikert til lydredigering.

Sjekker pulslyd og Alsa

Du lurer kanskje på, hvordan forteller jeg hvilken lydprogramvare datamaskinen min bruker? For å sjekke om både pulslyd og ALSA er til stede på systemet ditt, bruk følgende to kommandoer:
Sjekk for Pulseaudio:

$ PACTL -liste


Sjekk for ALSA:

$ APLAY -L

Konklusjon

Lyd på Linux virker komplisert fordi det virkelig er. Å fjerne nettet av gamle teknologier og abstraksjons lag kan være en virkelig utfordring selv for erfarne Linux -brukere som kjenner inn og outs i operativsystemet utenat. Forhåpentligvis hjalp artikkelen din deg med å forstå de viktigste komponentene i Linux -lydsystemet, inkludert ALSA, OSS og Pulseaudio.