E’ da tanto che ho voglia di scrivere qualcosa sull’enorme progresso che ha compiuto, e che sta tuttora compiendo il nostro sistema operativo preferito come piattaforma Audio. Con l’inclusione dell’Advanced Linux Sound Architecture (ALSA) nel kernel 2.6, credo che sia finalmente arrivato il momento di mettermi all’opera e farvi partecipi delle mie esperienze.
Scrivo di getto, come mio solito, e un po’ per chiarirmi le idee, un po’ per ordine, voglio esporre di cosa intendo trattare, chiarendo subito che non sto scrivendo un aiuto all’installazione o alla configurazione di software o hardware, e che non e’ assolutamente una lista completa, ne’ rappresentativa dell’intero e vasto panorama Audio su Linux:
L’eccezionale potenziale di queste diverse componenti lo si comprende appieno solo una volta che si e’ imparato a gestire il modo in cui possono interagire, riuscendo a soddisfare qualsiasi tipo di esigenza Audio grazie alla flessibilita’ garantita dalla struttura modularizzata.
A dirla tutta, uno degli aspetti “illuminati” di come sta crescendo bene l’Audio in Linux e’ proprio questo attenersi alla semplice regola che ha fatto grande Unix e Linux: ogni applicazione si occupa di *un* compito, ogni esigenza e’ soddisfatta singolarmente e in maniera modulare. Poco a poco il mosaico si sta componendo, ma i pezzi pi decisivi sono gia’ qui’ e funzionano!
ALSA si occupa di gestire l’hardware, dalle schede audio pi economiche a quelle professionali, Jack e’ il server audio che permette l’interazione tra tutte le applicazioni che ne fanno uso, LADSPA fornisce la piattaforma di sviluppo per plugin audio, con vari processatori di segnale ed effetti digitali, e infine, in cima a tutto questo, Ardour e’ il pi riuscito esempio di quanto lontano l’Audio su Linux possa andare. Un Digital Audio Workstation (DAW) capace di trasformare un PC in un mini studio di registrazione!
Questo documento non si propone come un how-to o una guida dettagliata alla compilazione. Prima di tutto perche’ sarebbe una cosa noiosa da leggere e da scrivere :-) e poi perche’ la rete e’ gia’ strapiena di tali guide, mi limitero’ a fornire alcuni collegamenti dove necessario.
Audio a livello kernel – ALSA
Il progetto ALSA e’ partito quasi in sordina nel 1999 con un obiettivo ambizioso: uniformare e standardizzare il funzionamento dell’Audio nel kernel Linux. Dopo circa cinque anni l’obiettivo e’ stato raggiunto, con il rilascio della versione 1 dei drivers ALSA finalmente integrati nel kernel Linux 2.6.
L’Audio in Linux era tradizionalmente supportato tramite un miscuglio di drivers (OSS) assolutamente non standardizzati e spesso descritti in modo derisorio dagli stessi sviluppatori. Esisteva anche l’opzione di drivers a pagamento, mi chiedo chi mai abbia fatto questa scelta, e in generale la situazione era abbastanza triste. Tuttavia e’ stato difficile superare l’iniziale scetticismo nei confronti della novita’ e tuttora molti utenti linux, specie chi non ha grosse esigenze, preferiscono usare i gia’ conosciuti, seppure obsoleti, OSS.
Chi di voi ricorda le prime coraggiose distribuzioni ad includere i drivers ALSA nei propri kernels appositamente patchati? La prima distribuzione che viene in mente e’ ovviamenete la SuSE, grande sostenitrice del progetto. Io in particolare ricordo una distribuzione chiamata qualcosa come BestLinux, che per la prima volta suggeriva l’opzione di usare ALSA al posto dei vecchi OSS.
La mia scheda audio e’ una Yamaha OPL3SA2, non esattamente il top sul mercato, ma a parte i soliti problemi legati al fatto di essere una famosa ISA “plug’n’pray”, ha sempre funzionato decentemente con gli OSS. Per decentemente intendo: ascoltare qualche mp3, sentire “hello! this is Linus Torvalds and I pronounce Linux”, o qualche odiosissimo login sound degno del peggiore utente win :-P
Con i drivers OSS, i problemi cominciavano a nascere quando si voleva fare qualcosa
di pi avanzato di un “cat prova.wav > /dev/dsp” ed essere sicuri di sentire qualcosa, e per questo motivo, per la mancanza di linee guida comuni, le applicazioni audio avanzate scarseggiavano, mentre fiorivano varie applicazioni chiamate “sound servers” nate con lo scopo di sopperire in user-space alle mancanze del kernel-space, ne parleremo pi dettagliatamente nel paragrafo dedicato a Jack.
Con l’entrata in scena di ALSA le cose cambiano, direi che si e’ innescato un processo che ha portato sempre maggiore interesse e attirato sempre pi quegli sviluppatori che pur avendo buone idee, non potevano metterle in pratica. Facendo uso di devfs e procfs, e astraendo sufficientemente l’interazione del software con l’hardware, ALSA ha permesso di avere una struttura razionale, moderna ed omogenea, che funziona a meraviglia sia con una scheda come la mia, permettendomi di configurare tutti i parametri che OSS non vedeva, sia con schede professionali con
8 o pi entrate e uscite, midi e tutto quello che serve.
Il disegno stesso che sta alla base di ALSA, permette inoltre di scegliere quali componenti o caratteristiche utilizzare effettivamente. ALSA fornisce il supporto in kernel space con i drivers completamente modulari, e in user space con le librerie ALSA, per le applicazioni che ne fanno uso, e con una serie di utilita’ basilari quali: arecord, aplay, alsamixer.
Altro punto a favore di ALSA e’ la completa compatibilita’ con i vecchi OSS, per garantire il funzionamento delle applicazioni audio obsolete, ovviamente anche questa una caratteristica che puo’ essere disabilitata a piacere.
ALSA non usa più /dev/dsp, come gia’ accennato, ma grazie a devfs si appoggia ad una serie di dispositivi “virtuali” in /dev/snd/* che rispecchiano fedelmente quanto supportato dal nostro hardware. Con la mia opl3sa2 avro’ un dispositivo per LINE IN, uno per MIC IN, uno per ogni canale OUTPUT, uno per il MIDI e altri invisibili durante il normale utilizzo.
Ognuno di questi dispositivi ha un nome identificativo generico che ne rispecchia la funzione. In questo modo, hardware permettendo, posso leggere e scrivere contemporaneamente, che tradotto in termini di musica significa registrare ed ascoltare allo stesso tempo su e dal PC!
Questa non era una novita’ assoluta, dira’ qualcuno, o almeno spero, per questo adesso affrontiamo l’argomento sound server e Jack.
Sei un grande
grazie! :D
l’argomento audio su linux mi ha sempre appassionato, e gli ultimi sviluppi di ardour2 sono molto interessanti… chissà forse a breve avremo notizie ;-)
Pingback:Ufix
Davvero bel blog!!!
Ci sono arrivato mentre cercavo info su Ardour. L’ho installato da qualche giorno, ho già registrato qualcosa (niente a livello delle ultime cose fatte qualche anno fa con qbase, ma per colpa mia, non certo del sw!) ma porima di buttarmi a capofitto, volevo settarlo in modo che potesse utilizzare degli effetti plugin. Nonostante abbia installato (apparentemente) in maniera corretta dei plugin denominati CAPS (ho letto che sono buoni ed abbastanza conosciuti…) non riesco a vederli nelle automation di ardour… hai qualche suggerimento da darmi?
Ciao e grazie
puppet.trash(at)NOSPAMlibero.it
Molto bene cosi !!! Grazie ! ;-)
Ottimo! In tal modo il poblema audio è praticamente risolto da Alsa. Rimane da affrontare quelle delle schede grafiche.
oopss- sorry, thought they were moderated.
ciao
Pingback:Audio Professionale con Linux (II parte) at pollycoke :)
Pingback:Ardour 2.2 - uno studio di registrazione a costo zero at pollycoke :)
Pingback:Il kit del musicista (Linux, s’intende :) ) « Il blog di olympicmew
Pingback:Ubuntu a 360°, i migliori programmi Audio e Musica (Editing Audio)…ma siamo ancora lontani
Pingback:ρTondo Blog » Gnufunk, Hacking in a funky flavour