The Linux MP3 HOWTO

Di Philip Kerr, phil@websentric.com

v1.10, 10 settembre 1999
Questo documento descrive l'hardware, il software, e le procedure richieste per codificare e riprodurre i file sonori MP3 sotto Linux. Tradotto da Mariani Dario darkpand@uni.net

1. Introduzione.

Questo documento descrive l'hardware, il software, e le procedure richieste per codificare e riprodurre i file sonori MP3 sotto Linux.

2. Copyright di questo documento

This HOWTO is copyrighted 1999 Philip Kerr.

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO co-ordinator at the address given below.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

If you have questions, please contact Tim Bynum, the Linux HOWTO co-ordinator, at linux-howto@metalab.unc.edu via email.

3. Dove trovare questo documento

La versione ufficiale più recente di questo documento può essere ottenuta dal Linux Documentation Project http://metalab.unc.edu/LDP/.

4. Ringraziamenti.

Nello scrivere questo HOWTO mi sono dovuto basare molto sul Sound-HOWTO di Jeff Tranter e sul Sound-Playing-HOWTO di Yoo C. Chung.

Ringrazio molto gli autori degli altri HOWTO ai quali mi sono riferito:

Linux System Administrators Guide di Lars Wirzenius.

Linux Network Administrators Guide di Olaf Kirch.

Multi Disk System Tuning HOWTO di Stein Gjoen.

5. Liberatoria.

Use the information in this document at your own risk. I disavow any potential liability for the contents of this document. Use of the concepts, examples, and/or other content of this document is entirely at your own risk.

All copyrights are owned by their owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.

Naming of particular products or brands should not be seen as endorsements. You are strongly recommended to take a backup of your system before major installation and backups at regular intervals.

6. Requisiti hardware e problemi di prestazioni

L'elaborazione dell'audio digitale è una mansione ad alta occupazione di risorse che si affida pesantemente alle capacità di elaborazione e di I/O di un sistema. Raccomando fortemente una macchina di classe Pentium come minimo.

Se si sta per codificare da una fonte audio analogica, una scheda audio PCI darà i risultati migliori. La differenza di prestazioni tra schede basate su ISA e PCI è sensibile, oltre i 132 Mbit/s per il PCI (dato ricavato dal PCI-HOWTO). Naturalmente, migliore la qualità della scheda audio in termini di rapporto segnale/rumore, migliore l'MP3 codificato. Ho usato la Sound Blaster PCI128 e sono appena passato ad una Sound Blaster Live Value; entrambe le schede danno buone prestazioni audio, ma la Live ha un rapporto segnale/rumore decisamente migliore, buono abbastanza per il lavoro audio semi-professionale. Ricordate la vecchia massima sull'elaborazione dei dati: immondizia in entrata, immondizia in uscita!

Durante la registrazione dell'audio analogico su un disco fisso, più comunemente chiamata registrazione diretta su disco o registrazione d2d, la velocità del disco e della sua interfaccia è critica. Se si utilizza un sistema IDE, è preferibile il modo 4 o UDMA in quanto hanno delle velocità di trasferimento quasi decenti.

La soluzione ideale sarebbe quella di utilizzare un sistema SCSI in quanto i dischi e l'interfaccia hanno velocità di trasferimento decisamente migliori, un 5 Mbit/s sostenuto su SCSI 1 fino a 80 Mbit/s per l'ultra wide SCSI. L'IDE può avere picchi da 8.3 Mbit/s a 33 Mbit/s per l'Ultra-ATA ma queste velocità sono picchi, le velocità di trasferimento medie sono minori. Se riuscite a trovare, o a permettervi, un disco AV SCSI, optate per quello. I dischi AV hanno il sistema di lettura/scrittura ottimizzato per trasferimenti continui di dati; gli altri dischi SCSI e IDE normalmente non possono sostenere trasferimenti di dati continui quando la testina si scalda.

Naturalmente un disco con della cache darà risultati più coerenti di uno senza cache, perché la cache funziona come un buffer se le testine si sollevano o se non può gestire la velocità di trasferimento dei dati.

Se il disco non supporta queste specifiche, la registrazione subirà salti e rumori, dove il disco non riesce a registrare il segnale. Se state registrando eventi unici, come performance live, investite in un buon sottosistema dischi SCSI. Un'altra causa di salti d2d è un sistema pesantemente occupato. Processi in background possono far saltare momentaneamente il sistema. È raccomandato avere attivati meno processi possibile sullo sfondo, specialmente sistemi di rete. Per informazioni sulla configurazione dei servizi di rete e sugli script di avvio, guardate le guide SAG e NAG.

Anche la paginazione della memoria virtuale causa dei salti, per cui cercate di avere più memoria fisica possibile, raccomando almeno 32 mb, ma potrebbe servirne ancora di più.

Per chi vuole ottenere il più possibile dal proprio sistema, ottimizzare il kernel probabilmente non fa del male.

Se le specifiche hardware sopra daranno un sistema decente per codificare dati audio, non utilizzate sistemi minori, più vecchi se è tutto quello a cui si ha accesso.

Può essere una sfida per gli amministratori di sistema ottimizzare un sistema vecchio per dare buoni risultati, ed il risultato finale sarà probabilmente un sistema Linux più contento.

Un'altra cosa importante è il cablaggio audio. Cavi e connettori economici, di bassa qualità risulteranno in una bassa qualità delle registrazioni. Se la vostra scheda audio ha la possibilità di usare connettori phono, a volte chiamati connettori RCA, usateli. Anche i contatti placcati in oro aiutano a mantenere la qualità audio, come il mantenere i cavi audio distanti dai cavi dati, in quanto ci potrebbero esserci delle interferenze tra di loro.

Ma non dimenticate, spendere una fortuna sul miglior cablaggio audio è inutile se il resto del sistema non è stato ottimizzato.

Per codificare gli mp3 da CD-ROM, la velocità o il tipo di lettore determinerà il tempo utilizzato per leggere le informazioni grezze da esso. Un lettore a singola velocità sarà probabilmente troppo lento per tutti, tranne i più pazienti.

Il lettore di CD-ROM deve essere connesso alla scheda audio, utilizzando o il connettore interno, oppure prendendo l'output dalla presa per cuffie e mandandolo nella line-in sulla scheda.

Per istruzioni dettagliate sulla configurazione delle schede audio, è ora un momento eccellente per leggere il Sound-HOWTO.

7. Requisiti software.

Convertire l'audio in mp3 è normalmente un processo a 2 stadi, prima l'audio è registrato in formato WAV, poi il WAV viene convertito in MP3. Il formato dal quale si vuole convertire l'audio, CD o d2d, determinerà di quali strumenti software si ha bisogno per produrre file WAV.

Per codificare dall'input audio, avete bisogno di un programma che registri dall'input della scheda audio e salvi il risultato in WAV. Sotto sono mostrate alcune utilità.

Wavrec

Wavrec è distribuito come parte di wavplay, che può essere scaricato da:

ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/

Per convertire dati CD audio in formato Wav, conociuto anche come CD ripping:

CDDA2WAV

http://metalab.unc.edu/pub/Linux/apps/sound/cdrom/

Cdparanoia

http://www.xiph.org/

Per convertire i file WAV in formato MP3:

Blade's MP3 Encoder

http://bladeenc.cjb.net

Per sentire un MP3 serve un riproduttore:

Xmms (in precedenza chiamato X11Amp)

http://www.xmms.org

Xaudio

http://www.xaudio.com

Potrebbe servire anche un mixer; Xmixer funziona bene ed è incluso in quasi tutte le distribuzioni.

8. Configurare il sistema.

Questa sezione descrive le basi della configurazione di Linux per registrare audio da una fonte analogica o CD-ROM.

Per questa sezione mi sono basato sul mio sistema Linux Intel che utilizza una Redhat 5.2, ma dovrebbe essere ragionevolmente neutrale per quanto riguarda la distribuzione. Mi metterò presto al lavoro sulla versione per piattaforma Sparc (se riuscite a utilizzare questo HOWTO su altro hardware, fatevi sentire).

Naturalmente un requisito ragionevole è una scheda audio funzionante. A questo punto dell'HOWTO, vi invito a leggere l'eccellente Linux Sound HOWTO, di Jeff Tranter. Dopo il quale è bene leggere il Linux Sound Playing HOWTO, di Yoo C. Chung. Entrambi gli HOWTO sopra menzionati trattano i dettagli sul come far funzionare un sistema audio sotto Linux meglio di come possa farlo io.

8.1 Configurare per la cattura audio analogica.

Per prima cosa, configurare l'audio. Ci sono molti modi di instradare l'audio prima che arrivi al sistema Linux, alcuni di quelli più comuni sono:

Line Out a Line In. La maggior parte delle apparecchiature audio hanno prese per il Line output. Il livello Line è uno standard che specifica quali voltaggi e correnti vengono messi in uscita dall'apparecchiatura audio. Se ricordo bene, sono 500mA per apparati domestici e semiprofessionali, e 750mA per quelli professionali. Suppongo che lo standard per la maggior parte delle schede audio sia di 500mA, ma alcune delle nuove Pro audio potrebbero uniformarsi allo standard più elevato. Non dovrebbero esserci grosse differenze se non dovete registrare a livelli molto alti.

L'output di livello Line è normalmente usato per connettere impianti HI-FI ad amplificatori, per cui cose come piastre per cassette, sintonizzatori radio, lettori cd, piastre DAT e lettori Mini-Disc dovrebbero poter essere connessi senza problemi. I giradischi possono dare più problemi, leggete sotto per maggiori informazioni.

È possibile catturare audio da videoregistratori. Molti di essi hanno una Line out, o si può ottenerne una da una presa scart se il videoregistratore ne ha una.

Amplifier Tape out a Line in, Line out a Amplifier Tape in. Questa configurazione essenzialmente rimpiazza un tradizionale registratore a cassette con un sistema Linux. Il Line out a Tape in permette di controllare il livello di registrazione.

Mic a Mic in. I voltaggi generati dai microfoni sono molto minori di quelli utilizzati da apparati di livello Line. Se eravate dell'idea di inserire un microfono nella Line in, probabilmente non riuscirete mai a registrare nulla.

ATTENZIONE! Fare il contrario, inserire un apparato di livello Line nel Mic in, può danneggiare la scheda audio!!

Giradischi a Mic in. Tristemente non ho nessuna informazione al momento. Se ricordo correttamente il giradischi dovrebbe venir connesso al Mic in, usa un meccanismo simile per registrare suoni ed ha voltaggi simili.

Tastiere musicali e sintetizzatori dovrebbero venire connesse alla Line in, con chitarre connesse alla Line in tramite un DI (Direct Injection, usato per convertire il segnale a livello Line).

Prima di collegare qualsiasi cosa alla scheda audio, assicurarsi che i controlli del volume siano portati al minimo, o, utilizzando microfoni, essi siano spenti o lontani dagli altoparlanti.

8.2 Prepararsi per la cattura di CD-ROM Audio.

Configurare un sistema Linux per estrarre dati audio dal CD-ROM è ragionevolmente semplice.

Se potete sentire una traccia eseguita dal CD-ROM attraverso gli altoparlanti o un amplificatore, connessi alla scheda audio, allora ci sono buone probabilità di poter registrare da lì.

8.3 Configurazioni addizionali.

Fare il login come al solito, poi, utilizzando un programma mixer impostare i volumi di registrazione abbastanza alti per fornire una qualità di registrazione decente, ma non troppo alti da distorcere il suono. Normalmente giudico a orecchio, dopo un poco riuscirete a riconoscere i migliori livelli per il vostro sistema.

Raccomando o di chiudere tutti i servizi non necessari oppure passare al runlevel 1, a singolo utente, specialmente quando si codifica da una sorgente audio. Questo per assicurarsi che il minimo numero di servizi sia in esecuzione e quindi minimizzare salti durante la registrazione.

Ho installato un drive SCSI a parte, esclusivamente per registrarci audio, al quale mi riferirò come /mnt/mp3. L'ho fatto principalmente per i guadagni in velocità utilizzando un drive SCSI. In più, registrare su un drive dedicato, dove sei quasi sicuro che la testina non sta per spostarsi all'improvviso in un'altra parte del drive quando vi stai registrando audio, è meglio. :)

Per dettagli su come configurare un sistema Linux con dischi rigidi multipli, una bella lettura del Multi-Disk-HOWTO, di Stein Gjoen può essere utile.

9. Codificare dall'audio.

Per prima cosa, assicuratevi di avere spazio sufficiente sul disco. In qualità CD, 44.1 Khz 16 bit stereo, 1 minuto occupa circa 5 Mb.

Normalmente registro in qualità DAT, ovvero 48 Khz 16 Bit Stereo.

Utilizzando waverec uso la seguente sintassi:

/usr/local/bin/wavrec -t 60 -s 48000 -S /mnt/mp3/temp.wav

La prima parte è un percorso assoluto a wavrec. L'opzione '-t 60' specifica la lunghezza della registrazione in secondi.

La terza opzione, -s 48000, si riferisce alla qualità di campionamento in bit/s (48000 per la qualità DAT, 44100 per quella CD).

L'ultima opzione è il percorso per il file di output.

Per vedere tutte le opzioni, digitare waverec -help, o riferirsi alla sua pagina man.

Questo produrrà il file WAV. Poi dovremo codificarlo in formato MP3.

Utilizzare bladeenc con la seguente riga di comando:

/usr/local/bin/bladeenc [source file] [destination file] -br 256000

L'opzione -br imposta il bit rate, in questo caso ho impostato il rate al massimo di 256 kbit/sec. Il percorso a bladeenc può essere diverso nei vari sistemi.

Per vedere tutte le opzioni, digitare bladeenc -help, attualmente è una opzione non valida, ma mostra la lista delle opzioni.

10. Codificare da CD-ROM.

Ancora, verificare che lo spazio disponibile su disco sia sufficiente.

Ho scritto un semplice script Perl che cattura e codifica tracce da un CD.


#!/usr/bin/perl

if ($ARGV[0] ne "") {

$count = 1;

do {
 
$cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav");
$track = "$ARGV[1]/track".$count.".mp3";
$benc = system("bladeenc  /tmp/cdda.wav $track -br 256000");
$count++;

}
until $count > $ARGV[0];
exit;
}

else {
print "Usage cdriper [no of tracks] [destination directory]\n\n";
}

Le linee di maggior interesse sono

$cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav");

Questa linea richiama il programma per copiare le tracce, cdparanoia. Cdparanoia converte i dati grezzi del CD audio in formato WAV.

Le opzioni fondamentali sono $count, che è il numero di tracce da copiare, e poi il percorso per il file WAV di output. Nel mio esempio andrà in una directory tmp sul mio drive SCSI per gli MP3.

Il file WAV viene poi convertito in MP3 utilizzando Bladeenc.

Ho scritto questo script Perl per copiare un CD senza dover copiare e codificare ogni traccia, e senza dover usare il modo batch di Cdparanoia. Questo riduce lo spazio su disco richiesto, a causa del fatto che il modo batch di Cdparanoia copia tutto il disco, e occupa fino a 600 Mega.

Nota: Lo script mostrato sopra è molto semplice e non ha niente di elaborato, come test degli errori. Modificatelo per il vostro divertimento. :)

11. Riprodurre gli MP3

Così, sperabilmente, dovremmo avere dei file MP3 pronti da riprodurre.

I due player MP3 più famosi per Linux sono Xaudio e Xmms (conosciuto come X11Amp).

Collegamenti alle homepage di entrambi i player possono essere trovati nella sezione 7.

Ho basato questo HOWTO sul mio uso di xaudio, soprattutto perché posso utilizzarlo avviando o meno X.

Il programma è shareware.

Xaudio è una suite di programmi, dei quali i più interessanti per noi sono xaudio e mxaudio.

Dopo aver installato i file sul sistema, è possibile la scelta di avviare la versione a linea di comando, xaudio, oppure la versione X, mxaudio.

Mxaudio ha una bella interfaccia, ed è semplice da utilizzare.

Le opzioni di Xaudio possono essere viste avviando il programma con l'opzione -help (xaudio -h).

Per riprodurre una traccia provare xaudio track.mp3

Per riprodurre una intera directory, xaudio *.mp3

Entrambi i programmi hanno dei file README.

12. Commenti.

Nuovo hardware e software viene rilasciato ogni momento. Se utilizzate nuove versioni dell'hardware e/o software nominati in questo documento, o potete aggiungere qualcosa in questa area, prego mandate le vostre informazioni all'indirizzo phil@websentric.com e io le includerò nella prossima versione.

Felici MP3izzazioni!! :)