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 _M_P_3 sotto Linux. Tradotto da Mariani Dario darkpand@uni.net ______________________________________________________________________ Indice Generale 1. Introduzione. 2. Copyright di questo documento 3. Dove trovare questo documento 4. Ringraziamenti. 5. Liberatoria. 6. Requisiti hardware e problemi di prestazioni 7. Requisiti software. 8. Configurare il sistema. 8.1 Configurare per la cattura audio analogica. 8.2 Prepararsi per la cattura di CD-ROM Audio. 8.3 Configurazioni addizionali. 9. Codificare dall'audio. 10. Codificare da CD-ROM. 11. Riprodurre gli MP3 12. Commenti. ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee.. Questo documento descrive l'hardware, il software, e le procedure richieste per codificare e riprodurre i file sonori _M_P_3 sotto Linux. 22.. CCooppyyrriigghhtt ddii qquueessttoo ddooccuummeennttoo 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 _l_i_n_u_x_-_h_o_w_t_o_@_m_e_t_a_l_a_b_._u_n_c_._e_d_u via email. 33.. DDoovvee ttrroovvaarree qquueessttoo ddooccuummeennttoo La versione ufficiale più recente di questo documento può essere ottenuta dal Linux Documentation Project . 44.. RRiinnggrraazziiaammeennttii.. Nello scrivere questo HOWTO mi sono dovuto basare molto sul _S_o_u_n_d_- _H_O_W_T_O di Jeff Tranter e sul _S_o_u_n_d_-_P_l_a_y_i_n_g_-_H_O_W_T_O di Yoo C. Chung. Ringrazio molto gli autori degli altri HOWTO ai quali mi sono riferito: _L_i_n_u_x _S_y_s_t_e_m _A_d_m_i_n_i_s_t_r_a_t_o_r_s _G_u_i_d_e di Lars Wirzenius. _L_i_n_u_x _N_e_t_w_o_r_k _A_d_m_i_n_i_s_t_r_a_t_o_r_s _G_u_i_d_e di Olaf Kirch. _M_u_l_t_i _D_i_s_k _S_y_s_t_e_m _T_u_n_i_n_g _H_O_W_T_O di Stein Gjoen. 55.. LLiibbeerraattoorriiaa.. 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. 66.. RReeqquuiissiittii hhaarrddwwaarree ee pprroobblleemmii ddii pprreessttaazziioonnii 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 _P_C_I_-_H_O_W_T_O). 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 _S_A_G e _N_A_G. 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 _S_o_u_n_d_-_H_O_W_T_O. 77.. RReeqquuiissiittii ssooffttwwaarree.. 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à. _W_a_v_r_e_c Wavrec è distribuito come parte di wavplay, che può essere scaricato da: Per convertire dati CD audio in formato Wav, conociuto anche come CD ripping: _C_D_D_A_2_W_A_V _C_d_p_a_r_a_n_o_i_a Per convertire i file WAV in formato MP3: _B_l_a_d_e_'_s _M_P_3 _E_n_c_o_d_e_r Per sentire un MP3 serve un riproduttore: _X_m_m_s _(_i_n _p_r_e_c_e_d_e_n_z_a _c_h_i_a_m_a_t_o _X_1_1_A_m_p_) _X_a_u_d_i_o Potrebbe servire anche un mixer; Xmixer funziona bene ed è incluso in quasi tutte le distribuzioni. 88.. CCoonnffiigguurraarree iill ssiisstteemmaa.. 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 _L_i_n_u_x _S_o_u_n_d _H_O_W_T_O, di Jeff Tranter. Dopo il quale è bene leggere il _L_i_n_u_x _S_o_u_n_d _P_l_a_y_i_n_g _H_O_W_T_O, 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. 88..11.. CCoonnffiigguurraarree ppeerr llaa ccaattttuurraa aauuddiioo aannaallooggiiccaa.. 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. _A_T_T_E_N_Z_I_O_N_E_! _F_a_r_e _i_l _c_o_n_t_r_a_r_i_o_, _i_n_s_e_r_i_r_e _u_n _a_p_p_a_r_a_t_o _d_i _l_i_v_e_l_l_o _L_i_n_e _n_e_l _M_i_c _i_n_, _p_u_ò _d_a_n_n_e_g_g_i_a_r_e _l_a _s_c_h_e_d_a _a_u_d_i_o_!_! 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. 88..22.. PPrreeppaarraarrssii ppeerr llaa ccaattttuurraa ddii CCDD--RROOMM AAuuddiioo.. 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ì. 88..33.. CCoonnffiigguurraazziioonnii aaddddiizziioonnaallii.. 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 _M_u_l_t_i_-_D_i_s_k_-_H_O_W_T_O, di Stein Gjoen può essere utile. 99.. CCooddiiffiiccaarree ddaallll''aauuddiioo.. 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 _[_s_o_u_r_c_e _f_i_l_e_] _[_d_e_s_t_i_n_a_t_i_o_n _f_i_l_e_] -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. 1100.. CCooddiiffiiccaarree ddaa CCDD--RROOMM.. 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 _$_c_d_c_a_p _= _s_y_s_t_e_m_(_"_c_d_p_a_r_a_n_o_i_a_"_, _$_c_o_u_n_t_, _"_/_m_n_t_/_m_p_3_/_t_m_p_/_c_d_d_a_._w_a_v_"_)_; 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. :) 1111.. RRiipprroodduurrrree ggllii MMPP33 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. 1122.. CCoommmmeennttii.. 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 _p_h_i_l_@_w_e_b_s_e_n_t_r_i_c_._c_o_m e io le includerò nella prossima versione. Felici MP3izzazioni!! :)