ALSA & GNOME
Un po' di storia
Il supporto per l'audio in Linux ha avuto origine all'inizio degli anni '90 con il driver Creative SoundBlaster, da cui è nata la fondazione per l'Open Sound System (OSS). Poiché con il tempo è cresciuta l'insoddisfazione per tale sistema, a partire dal 1998 Jaroslav Kysela ha dato origine, insieme ad altri sviluppatori, all'Advanced Linux Sound System (ALSA).
Lo sviluppo di tale progetto non è stato lineare e, tra il 1999 ed il 2001, ALSA è stato ridisegnato più volte, richiedendo la modifica delle applicazioni audio perché non più compatibili. In questo periodo sono stati, comunque, aggiunti il sequencer ALSA ed un router MIDI in kernel-space.
Dalla fine del 2001 ALSA è diventato il sistema audio ufficiale di Linux al posto di OSS, anche se quest'ultimo non è scomparso del tutto ed è ancora in uso sia su alcuni sistemi Linux che nei sistemi Unix.
Per superare alcuni limiti di ALSA, tra i quali la possibilità di connettere tra loro applicazioni audio, Paul Davis nel 2000 ha iniziato a lavorare sulla workstation di audio digitale Ardour e nel 2002 ha sviluppato JACK, server audio idoneo più all'uso professionale che all'uso su sistemi desktop.
Nel 2004 Lennart Poettering ha iniziato lo sviluppo di PulseAudio (introdotto nei sistemi desktop per la prima volta in Fedora 8), un server audio che permette operazioni avanzate quale l'acquisizione dell'audio da più sorgenti e il suo inoltro ad applicazioni o componenti hardware differenti.
Le API audio in linux
È possibile individuare differenti API audio che soddisfano differenti necessità:
ALSA: è l'API di Linux per la riproduzione e la registrazione. Anche se la versione estesa di questa API può apparire ampia e complessa, garantisce il supporto a quasi tutti i moderni componenti hardware audio. Alcune delle funzionalità delle API ALSA sono limitate nel loro utilizzo ai dispositivi hardware supportati dal kernel Linux. È consigliato l'uso della versione estesa quando si desidera fare uso di caratteristiche hardware molto specifiche che potrebbero essere necessarie ai fini della produzione audio, altrimenti è sufficiente l'utilizzo della versione ridotta, un'astrazione adatta per la riproduzione e la registrazione di base.
Gstreamer: è lo standard de-facto tra i riproduttori per i desktop Linux. Permette la codifica e la decodifica di flussi audio e video grazie al supporto di una vasta gamma di codec audio e backend tra cui ALSA, OSS e PulseAudio. Non è particolarmente adatto ad applicazioni a bassa latenza o realtime.
JACK: è un sistema audio per collegare applicazioni professionali di produzione audio con dispositivi hardware. È indicato principalmente per sistemi a bassa latenza e dove è richiesta l'interconnessione tra applicazioni. Non è idoneo per l'uso desktop o in sistemi embedded.