Audio

Guida di Noob a Linux Audio Spiegazione di ALSA, OSS e Pulse Audio

Guida di Noob a Linux Audio Spiegazione di ALSA, OSS e Pulse Audio
C'è una cosa su cui gli utenti Linux nuovi ed esperti possono essere d'accordo: l'audio di Linux è fonte di confusione. Non solo più tecnologie eseguono lavori simili, ma la maggior parte di esse può essere completamente omessa dalle distribuzioni Linux e dai loro utenti.

La situazione è relativamente buona quando si tratta di distribuzioni mainstream come Ubuntu, Debian o Fedora perché i loro sviluppatori hanno fatto di tutto per far funzionare l'audio immediatamente, ma lo stesso non si può dire di Arch Linux, Gentoo, e altre distribuzioni minimaliste che si aspettano che gli utenti configurino tutto da zero.

Questo articolo non ti renderà un esperto di audio Linux, ma, si spera, spiegherà le tecnologie di base responsabili della riproduzione del suono dagli altoparlanti quando apri un video su YouTube o giochi su Steam.

Architettura sonora avanzata di Linux (ALSA)

Iniziamo con il livello più importante dell'audio di Linux, ALSA. Creata nel 1998 dallo sviluppatore di software ceco Jaroslav Kysela, ALSA è responsabile di dare voce a tutte le moderne distribuzioni Linux. In realtà fa parte del kernel Linux stesso, fornendo funzionalità audio al resto del sistema tramite un'interfaccia di programmazione dell'applicazione (API) per i driver dei dispositivi della scheda audio.

Il design originale di ALSA è stato in gran parte ispirato dal driver del dispositivo Linux per la scheda audio Gravis Ultrasound, che è stato realizzato dalla Advanced Gravis Computer Technology con sede in Canada ed è diventato molto popolare nella scena demo durante gli anni '90.

Supporto ALSA per tutti i tipi di interfacce audio grazie a driver audio completamente modulari, può gestire fino a otto dispositivi audio contemporaneamente, accedere alle funzionalità MIDI hardware, eseguire il missaggio hardware di più canali e altro ancora.

Gli utenti in genere interagiscono con ALSA utilizzando alsamixer, un programma di mixer grafico che può essere utilizzato per configurare le impostazioni audio e regolare il volume dei singoli canali. Alsamixer viene eseguito nel terminale e puoi invocarlo semplicemente digitandone il nome. Un comando da tastiera particolarmente utile si attiva premendo il tasto M. Questo comando attiva o disattiva il silenziamento del canale ed è una soluzione abbastanza comune a molte domande pubblicate sui forum di discussione di Linux.

Sistema audio aperto (OSS)

Il sito web ufficiale di ALSA menziona il supporto per Open Sound System, o OSS in breve. Fino a Linux 2.5, OSS era in realtà il principale e unico sistema audio per Linux. ALSA è stato progettato per superare le sue varie carenze, come il fatto che non consentiva a più di un'applicazione di accedere all'hardware alla volta. In Linux 2.6 ALSA ha sostituito OSS come sistema audio predefinito.

Quando gli sviluppatori di OSS hanno annunciato che la versione OSS avrebbe avuto una licenza proprietaria, gli sviluppatori di Linux hanno deciso rapidamente di sostituirla con ALSA. Vale la pena notare che OSS è diventato di nuovo software libero con il rilascio della versione 4 nel 2007. Oggi OSS è distribuito con quattro diverse licenze (BSD, CDDL, GPL, Proprietary).

La maggior parte delle distribuzioni Linux in questi giorni non si preoccupa nemmeno di attivare il livello di emulazione OSS presente in ALSA perché quasi nessuno ne ha più bisogno, rendendo OSS una reliquia del passato.

PulseAudio

Se non ricordi l'ultima volta che hai interagito con ALSA durante la modifica delle impostazioni audio, è probabilmente perché lo strato rivolto all'utente del sistema audio Linux nella maggior parte delle distribuzioni moderne si chiama PulseAudio.

PulseAudio è stato inizialmente rilasciato nel 2004 ed è ora incluso e abilitato per impostazione predefinita in Ubuntu, Linux Mint, openSUSE e altre principali distribuzioni. Il compito di PulseAudio è di passare i dati audio tra le tue applicazioni e il tuo hardware, dirigendo i suoni provenienti da ALSA a varie destinazioni di output, come gli altoparlanti del tuo computer o le cuffie. Ecco perché viene comunemente chiamato server audio.

A prima vista, potrebbe sembrare che PulseAudio non aggiunga davvero nulla di estremamente importante all'audio di Linux e molti dei suoi critici condividono la stessa opinione. In realtà, ci sono molte cose che sarebbero impossibili o difficili da realizzare senza di essa, incluso il mixaggio di più suoni in uno, il trasferimento dell'audio su una macchina diversa o la modifica del formato del campione o del conteggio dei canali.

PulseAudio offre anche compatibilità multipiattaforma (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS e, in modo limitato, Microsoft Windows). Se vuoi controllare PulseAudio direttamente, invece di interagire con esso tramite un widget di controllo del volume o un pannello di qualche tipo, puoi installare PulseAudio Volume Control (chiamato pavucontrol nella maggior parte dei repository di pacchetti).

Se ritieni di non essere in grado di utilizzare le funzionalità fornite da PulseAudio, puoi utilizzare ALSA puro o sostituirlo con un server audio diverso.

PulseAudio vs. JACK

PulseAudio non è l'unico server audio per Linux. C'è anche JACK, che è un acronimo ricorsivo per JACK Audio Connection Kit. Mentre PulseAudio è stato sviluppato pensando alle esigenze degli utenti Linux generici, JACK è destinato a DJ e professionisti dell'audio, fornendo connessioni in tempo reale a bassa latenza sia per i dati audio che MIDI.

Poiché JACK ti consente di collegare gli ingressi e le uscite audio di ciascuna delle tue applicazioni insieme, puoi fare cose piuttosto interessanti con esso, come monitorare la tua voce, aggiungere effetti in tempo reale e altro ancora. In effetti, il nome di questo sistema audio è stato ispirato dai cavi utilizzati nei veri studi di registrazione per costruire intricate connessioni tra strumenti, sintetizzatori, controller MIDI e multitracker.

Probabilmente il più grande svantaggio di JACK è che di solito funziona perfettamente o in modo orribile, grazie al fatto che il suo obiettivo principale è fornire audio a bassa latenza. Richiede anche molta più potenza della CPU rispetto a PulseAudio, motivo per cui lo troverai principalmente su workstation professionali dedicate all'editing audio.

Controllo dell'audio a impulsi e ALSA

Ti starai chiedendo, come faccio a sapere quale software audio sta usando il mio computer?? Per verificare se sul tuo sistema sono presenti sia Pulse Audio che ALSA, usa i seguenti due comandi:
Controllo di PulseAudio:

$ pactl list


Controllo per ALSA:

$ aplay -l

Conclusione

L'audio su Linux sembra complicato perché lo è davvero. Districare la rete di tecnologie legacy e livelli di astrazione può essere una vera sfida anche per gli utenti Linux esperti che conoscono a memoria i dettagli del sistema operativo. Si spera che il nostro articolo ti abbia aiutato a comprendere meglio i componenti più importanti del sistema audio Linux, inclusi ALSA, OSS e PulseAudio.

Come modificare le impostazioni del mouse e del touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni Linux viene fornita con la libreria "libinput" per impostazione predefinita per gestire gli eventi di input su un...
Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...