Planet CCRMA@Home è un interessantissimo progetto di ricerca orientato per tutti i musicisti che cercano una valida soluzione per attrezzare una DAW casalinga o professionale: per me è il top dell' HD recording. Ne vediamo l'installazione e le caratteristiche più importanti.
Planet CCRMA@Home (diremo brevemente Karma) è un progetto sviluppato dal dipartimento di musica della Stanford University (CCRMA = Center for Computer Research in Music and Acoustic) ed è una collezione di pacchetti rpm che è possibile aggiungere ad un computer sul quale è installato Fedora Core per trasformarlo in una DAW con kernel a bassa latenza, driver ALSA ed un bel po' di applicazioni midi, audio e video.

Esso replica sul nostro PC di casa l'ambiente Linux utilizzato al CCRMA per il lavoro di studio giornaliero su audio e computer music… e scusate se è poco!
Considerazioni iniziali
Karma non è proprio facile da installare e manutenere, l'installazione e/o l'aggiornamento può esser avviata tramite rete dal repository Planet CCRMA o dai suoi mirror, che sono una cassetta degli attrezzi fornita anche delle distro Fedora, o utilizzando la più comune procedura da cdrom (la iso è scaricabile dal sito[1]).
E possibile installare karma solo su distribuzioni Fedora o CentOS.
Alcuni package sono versioni più nuove di quelli già presenti nelle standard Fedora e poi ce ne sono altri in aggiunta più specifici. Dalle pagine del sito [1] è anche possibile scegliere di installare solo alcuni dei package disponibili. Nell'insieme di package è incluso un kernel recente attrezzato con funzionalità per abbassare la latenza e renderlo preemptive.
Con un sistema configurato correttamente queste funzionalità permettono di lanciare in esecuzione programmi musicali con dei buffer audio molto ridotti (è efficiente e non esoso di risorse) in modo tale che l'elaborazione realtime delle applicazioni dia una risposta pronta agli input e non si presentino fastidiosi glitch sui flussi audio.
Il contenuto dei package non è ristretto solo alle applicazioni musicali, sono anche presenti altri software che facilitano la vita di un utente Linux. Sono altresì inclusi i sorgenti dei package in modo tale da permettere agli utenti più esperti e smaliziati esperimenti e personalizzazioni.
Prima dell'installazione
Per la verità ora vedremo l'installazione che ho compiuto quasi un anno fa sul mio partatile e sulla Fedora 5... attualmente il progetto è andato un bel po' avanti qualche passo dell'istallazione può esser cambiato (vedere [1]). Assumendo che Fedora 5 sia già installata e funzionante sul PC in questione e che si abbia una basilare conoscenza di Linux proverò a spiegare i passaggi successivi in dettaglio.
L'installazione e l'upgrade di Karma è gestito sia dal tool APT for RPM, un porting realizzato da Conectiva delle utility APT (Advanced Package Tools) di Debian sia da yum.
Quindi come primo passo si deve installare e configurare il programma [2].
Fatto ciò si dovrebbe esser in grado di installare Karma con un unico comando (dal prompt o dall'interfaccia grafica di apt). APT4RPM ( o Yum) si occuperà delle dipendenze scaricherà ed installerà qualsiasi package addizionale richiesto.
E' importante tenere presente che in distro più vecchie il kernel standard può essere della famiglia 2.4 che è attrezzato con la più limitata versione di driver audio OSS, in questo caso è consigliabile upgradare il kernel alla versione 2.6 anche perché molte applicazioni di karma richiedono i driver ALSA e non sono più presenti le versioni delle stesse per i vecchi driver OSS.
Installazione di esempio: Planet CCRMA@home su Fedora Core 5
I package che servono per Fedora 5 si trovano su un repository Yum (Yellowdog Updater Modified) che è raggiungibile tramite internet. In questo repository è presente anche una versione per CD o DVD (basta scaricarla e masterizzarla).
Tutti i packages nel repository di Fedora 5 sono certificati digitalmente (questo vuol dire che sarà possibile sapere se sono stati modificati dall'ultima installazione).
Passo 1: si installa il certificato GPG di karma:
con la connessione ad internet:
# rpm -import
http://ccrma.stanford.edu/planetccrma/RPM-GPG-KEY.planetccrma.txt
oppure scaricare il file RPM-GPG-KEY.planetccrma.txt ed importarlo manualmente.
Senza connessione ad internet il file del certificato si può trovare nella cartella principale del CDROM.
Passo 2: si aggiorna Yum
per fare ciò in qualità di superuser:
# rpm -Uvh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/5/i386/planetccrma-repo-1.0-3.fc8.ccrma.noarch.rpm
Passo 3: si riconfigura Yum: quest'operazione consiste nell'aggiunta di alcuni repository specifici (contenuti in alcuni file di configurazione) che devono essere accessibili per l'installazione:
# rpm -Uvh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/5/i386/planetccrma-repo-1.0-2.rhfc5.ccrma.noarch.rpm
Passo 4: la sincronizzazione con i repository:
# yum check-update
Passo 5: si installa il kernel a bassa latenza inclusa la patch per la realtime preemption sviluppata da Ingo Molnar.
Questa versione di karma è attualmente rilasciata con due versioni di kernel che presentano delle piccole differenze sulla configurazione della patch per la realtime preemption.
La più conservativa è configurata come PREEMPT_DESKTOP, la più spinta è configurata come PREEMPT_RT. La seconda tipicamente fornirà delle performance di latenza sensibilmente migliori nel caso che l'hardware installato sia riconosciuto e configurato correttamente si modifica il file /etc/yum/pluginconf.d/installonlyn.conf inserendo una linea che permette l'utilizzo di vecchi package (anche per quanto riguarda il kernel):
oldpackage=1
Da notare che i package core includono: la versione più aggiornata degli ALSA ed una versione patchata di PAM che ha la possibilità di accedere allo scheduler e cambiare l'ordine d'importanza (la priorità) degli interrupt per favorire la scheda audio.
Per installare il kernel PREEMPT_DESKTOP il comando è:
# yum install planetccrma-core
oppure per installare una versione più avanzata (in caso di HW particolarmente potente: multiprocessore o CPU con hiperthreading):
# yum install planetccrma-core-smp
per installare la versione PREEMPT_RT:
# yum install planetccrma-core-edge
oppure in caso di HW particolarmente potente (multiprocessore o hiperthreading):
# yum install planetccrma-core-edge-smp
Passo 6: si testa il kernel appena installato (si possono incrociare le dita): si acceda al menù di boot e si seleziona il kernel che si vuol provare.... se con un po' di prove tutto è andato bene lo si può rendere il kernel da avviare di default modificando l'avvio (vedere GRUB o altro loader).
Passo 7: configurare la scheda sonora
Fedora Core 5 ha delle utility che permettono di configurare la scheda audio, ma qualche volta è preferibile farlo a mano.
Se si posseggono più schede sonore ( considerando anche unità esterne come controller MIDI) probabilmente si vorrà definire quale è quella di default. A questo scopo si deve modificare (con attenzione!) il file /etc/modprobe.conf altrimenti le schede per le quali i moduli kernel saranno caricati per primi diverranno quelle di default, il che può non esser sempre desiderabile.
Si può anche utilizzare Kudzu per creare il file e poi lo si modifica per aggiustarlo un pochino (ad esempio nel caso di periferiche USB che Kudzu non gestisce bene).
Per esempio questo è il modprobe.conf presente sul mio notebook (dove snd-card-0 è la scheda di default [la intel integrata])
alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0
install snd-intel8x0 /sbin/modprobe --ignore-install snd-intel8x0 && \
/usr/sbin/alsactl restore >/dev/null 2>&1 || :
remove snd-intel8x0 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; \
/sbin/modprobe -r --ignore-remove snd-intel8x0
alias snd-card-1 snd-usb-audio
options snd-usb-audio index=1
Dopo aver modificato il file lo si salva e con il seguente comando si determinano le dipendenze:
# /sbin/depmod -a
Riavviare i driver audio per testare la modifica
stoppare i driver
# /etc/rc.d/init.d/alsasound stop
avviare i driver:
# /etc/rc.d/init.d/alsasound start
ed a questo punto si dovrebbero caricare tutti i moduli audio nell'ordine previsto.
L'installazione è completata.
Tuning del sistema
Ci sono molti fattori che influenzano le performance audio di un sistema ed accenneremo soltanto qualcosa, ma se si è impazienti di installare e /o provare un software si può saltare al paragrafo "Installazione delle applicazioni" e ritornarci più tardi.
Tuning degli hard disk
Se si posseggono HD EIDE (per i serial ata non so) è molto importante il tuning dei driver. Sebbene le ultime versioni di Fedora facciano già un buon lavoro è meglio comunque controllare.
Il kernel di linux usa di norma settaggi conservativi per i driver IDE a causa di possibili perdite di dati che si verificano con vecchie schede madri e driver, ma i sistemi moderni sono ben studiati a questo proposito per cui è possibile cambiare questa configurazione di base. In ogni caso si faccia un backup dei dati importanti prima di provare...
>BR>
A questo punto si utilizza hdparm [3] per sapere quali sono i settaggi attuali:
# /sbin/hdparm /dev/hda
questi, ad esempio, sono i settaggi ottimali per me:
# /sbin/hdparm -c 3 -d 1 -m 16 -A1 /dev/hda
che significano:
- '-c 3' abilita il trasferimento a 32 bit con sincronizzazione sul bus PCI,
- '-d 1' abilita le operazioni in DMA,
- '-m 16' attiva il trasferimento multisettore (16 in una volta),
- '-A1' attiva la lettura anticipata.
Si consiglia di leggere il manuale di hdparm per i dettagli 'sporchi' e gli avvertimenti perché alcune opzioni sono pericolose ('-m' e '-u') per alcuni chipset e possono produrre la corruzione del file system (magari lo si testa su un HD secondario).
L'opzione '-u' può far peggiorare le performance quindi è meglio non usarla se non si è esperti.
Lanciare sempre
# /sbin/hdparm -t'
prima e dopo ogni ottimizzazione per controllare il risultato.
Una volta trovata la giusta combinazione per l'ottimizzazione si potrà edittare il file /etc/sysconfig/harddisks per rendere la configurazione attiva automaticamente ad ogni avvio.
Diamo uno sguardo anche ai cdrom
Il processo di boot utilizzato da Fedora ottimizza solo gli HD. E' possibile anche ottimizzare i CD-ROM (EIDE).
Per vedere gli attuali settaggi del cdrom (assumendo che sia hdc) il comando è:
# /sbin/hdparm /dev/hdc
Si otterranno alcune linee di dati ed alcune con errori di input/output. Queste linee indicano cosa è possibile fare e cosa non è possibile fare con il CDROM, per cui sono trascurabili.
Probabilmente sarà possibile utilizzare il trasferimento a 32 bit ed utilizzare i settaggi già usati per gli HD per fare ciò copiare /etc/sysconfig/harddisks in /etc/sysconfig/harddiskhdc.
Per esser pignoli si possono ripetere i test già fatti per gli HD ed aggiustare di conseguenza i parametri.
Il polling del CDROM
Alcuni ambienti interrogano periodicamente il CDROM per controllare se un disco è stato inserito: è bene disattivare questa funzione per recuperare prestazioni. Andare sul pannello di controllo e disabilitare questa funzione.
Per esempio se si usa Gnome scegliere
Settings--> Peripherals --> CD Properties.
disabilitare le voci Automatically mount CD when inserted e Run command when CD is inserted.
Priorità degli interrupt e timer di latenza del bus PCI
Questi due aspetti hanno un importante impatto sulla latenza verificabile effettivamente dall'utente finale e ci vuole molto tempo per trovare la giusta configurazione perché solo su alcune schede madri non molto diffuse ciò è fattibile attraverso il BIOS, ma normalmente questa procedura sarà completamente manuale e bisogna procedere per tentativi.
E possibile trovare i dettagli di questa procedura all'indirizzo [4] vedere in particolare la risposta di Mark Knecht.
In più è possibile riconfigurare le schede per dirgli di utilizzare più o meno banda del bus PCI, incrementando ulteriormente le prestazioni. Per ulteriori spiegazione leggere l'articolo all'indirizzo [5].
Installazione delle applicazioni
A questo punto il vero lavoro è completato: abbiamo un Pc con un kernel low latency, i driver ALSA ed è stato configurato per fornire le migliori prestazioni possibili.
Manca soltanto l'installazione delle applicazione e poi possiamo iniziare a divertirci un po'.
Un modo è di andare sul web alle pagine del repository Planet CCRMA@home [6] scaricare i package di interesse oppure si guarda sul CDROM.
Il comando da utilizzare ogni volta sarà:
# yum install -nome_package-
oppure
# apt-get install -nome_package-
come indicato nella documentazione, se utilizzate APT4RPM.
Alcune applicazioni audio presenti
Alcune applicazioni per l'audio presenti in Karma e quindi scaricabili sono: slime, gamix, quamix, quarecord, muse, rosegarden, seq24, ecasound, ecamegapedal, lilypond, denemo, noteedit, speex, flac, xmms, e tante ma tante altre.
Conclusioni
Spero che questo articolo abbia incuriosito ed invogliato molte persone a tentare qualche esperimento. C'è da dire che Karma è il progetto software (se così vogliamo dire) più interessante che ho trovato per il musicista con qualche conoscenza tecnica che vuole attrezzarsi uno studio casalingo, ma lo vedo un prodotto molto valido anche per i piccoli studi di registrazione professionali.
C'è da dire che il lavoro richiesto per installare e configurare le varie parti del software è abbastanza complesso e lungo, ma la soddisfazione finale e le prestazioni offerte secondo me ripagano le fatiche sopportate ed in più ci si può fermare nel tuning del sistema quando si sono raggiunte le prestazioni desiderate.
Inoltre è un prodotto che non costa niente, ben mantenuto, costantemente aggiornato e sviluppato da professionisti di tutto rispetto che non saranno avari di consigli ed aiuti se richiesti con gentilezza.
La bibliografia è tra le risorse nella colonna a destra
Apt-get... yum..
Kernel Low latency... Ubuntu non solo Ubuntustudio.
A volte ritornano...
Re: A volte ritornano...
OK ma ...
www.myspace.com/filippodevecchi
Re: OK ma ...
Re: OK ma ...
Re: OK ma ...
Re: OK ma ...
Re: OK ma ...
www.myspace.com/filippodevecchi
Mamma mia che esigenti .....
Re: Mamma mia che esigenti .....
Incredibile
Re: Incredibile
Re: Incredibile