Linux MP3 CD Burning mini-HOWTO Greg Wierzchowski greg@draxen.org 2001-05-29 Diario delle revisioni Revisione 1.11 2004-08-21 Corretto da: GW Corretto un errore tipografico. Revisione 1.10 2004-07-14 Corretto da: GW Modificata la numerazione delle revisioni per essere sincronizzata con CVS. Revisione 1.9 2004-07-14 Corretto da: GW Piccoli aggiornamenti, aggiunta una nuova sottosezione. Revisione 1.8 2003-09-12 Corretto da: GW Pulizia, aggiornamento, correzioni ed un piccolo cambiamento di impaginazione. Revisione 1.7 2002-04-26 Corretto da: GW Divisione in due sezioni: materiale esistente nella sezione "audio", nuova sezione "data". Varie aggiunte. Revisione 1.5 2001-11-19 Corretto da: GW Corretta omissione nella sezione Masterizzazione Disc-At-Once. Revisione 1.4 2001-11-17 Corretto da: GW Aggiunta sezione Masterizzazione Disc-At-Once. Revisione 1.3 2001-09-02 Corretto da: GW Aggiunto un altro esempio di decodifica di file MP3 con lame. Revisione 1.2 2001-07-12 Corretto da: GW Piccoli cambiamenti di impaginazione; aggiunta sottosezione Traduzioni in Riconoscimenti. Revisione 1.1 2001-06-12 Corretto da: GW Piccola pulizia; correzione di regexp per l'esempio di conversione del nome da MP3 a WAV. Revisione 1.0 2001-05-29 Corretto da: GW Release iniziale. Una ricetta completa per la creazione di CD audio e dati da file MP3. Traduzione a cura di Matteo Castellini (jigen@despammed.com). Revisione a cura di Beatrice Torracca. _________________________________________________________________ Sommario 1. Introduzione 1.1. Copyright and License 2. CD audio 2.1. Preparazione delle tracce 2.2. Normalizzazione 3. Masterizzazione del vostro CD 4. Masterizzazione di un CD DAO 5. Software 6. CD dati 7. Risorse per la masterizzazione di CD 8. Riconoscimenti 8.1. Traduzioni 8.2. Altri riconoscimenti 1. Introduzione Questo mini-HOWTO è stato creato a causa della mia esperienza con la masterizzazione dei CD e della mancanza di alcune specifiche informazioni sulla normalizzazione del suono su Internet. Di solito masterizzo CD come dei mix: diverse canzoni da diverse sorgenti. Molto spesso il livello del volume tra le canzoni varia fortemente. Questo è il primo ostacolo. Secondo, molti dei file su Internet non sono CD-compatibili (16 bit, stereo, 44.1 kHz) e devono essere convertiti. Ci sono molti programmi per masterizzare CD musicali da file MP3, e molti di essi fanno la conversione in modo trasparente. Ma non ho visto un singolo programma che normalizzasse anche il volume, quindi è per questo che ho scritto la mia ricetta per masterizzare i CD. Se volete solo avere un CD riempito di musica, e non essere seccati con tutti i dettagli, ho delle buone notizie per voi: Kees Cook () ha messo assieme uno strumento basato su questo HOWTO, che automatizza tutte le operazioni descritte qui. Il suo programma può essere ottenuto da http://outflux.net/unix/software/mp3cd/. Grazie Kees! Questo HOWTO riguarda solo una cosa: mettere musica da formato MP3 su un CD, così che voi possiate ascoltarla. Per informazioni approfondite sui file MP3, per favore consultate The Linux MP3 HOWTO di Phil Kerr, che potete trovare a http://www.tldp.org/HOWTO/MP3-HOWTO.html. Per informazioni circa la creazione di CD in generale così come per i masterizzatori, fate riferimento al CD-Writing-HOWTO di Winfried Trümper, disponibile a http://www.tldp.org/HOWTO/CD-Writing-HOWTO.html. Inoltre, consultate la sezione Risorse per la masterizzazione di CD per maggiori informazioni. Assumo che voi vogliate masterizzare un CD con la raccolta di canzoni che avete ottenuto da differenti fonti, ognuna di diversa qualità, ma che vogliate avere il miglior CD possibile. Questo mini-HOWTO descrive i passi che vi potrebbero aiutare. _________________________________________________________________ 1.1. Copyright and License This document is copyright 2001 by Greg Wierzchowski and is released under the terms of the GNU Free Documentation License, which is hereby incorporated by reference. Send feedback to greg@draxen.org. _________________________________________________________________ 2. CD audio 2.1. Preparazione delle tracce Nota: Tutti i comandi presuppongono una shell bash _________________________________________________________________ 2.1.1. Correzione dei nomi di file 1. Raggruppate tutti i file MP3 in una directory. 2. Se qualche nome di file contiene spazi, prima convertiteli in underscore: for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done Questo primo passaggio è importante perché, anche se unix permette la presenza di spazi nei nomi di file, la maggior parte dei programmi vengono confusi. 3. Se i vostri file MP3 provengono da DOS/Windows, potrebbero avere estensioni in maiuscolo. Potete convertire in minuscolo i nomi interi o solo le estensioni. Per avere tutto minuscolo: for i in *.[Mm][Pp]3; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done per convertire solo le estensioni: for i in *.MP3; do mv "$i" "`basename "$i" .MP3`.mp3"; done _________________________________________________________________ 2.1.2. Conversione La specifica CD Audio richiede file wav che siano 16 bit, stereo, 44.1 kHz. I file MP3 hanno spesso parametri differenti, in ogni caso abbiamo prima bisogno di convertirli in WAV. Abbiamo parecchie scelte per il processo di conversione. _________________________________________________________________ 2.1.2.1. mpg123 e mpg321 Originariamente, c'era solo mpg123. Tuttavia, usa una licenza proprietaria, e ora c'è un sostituto open source: mpg321. Entrambi i programmi usano la medesima sintassi: for i in *.mp3; do mpg321 -w `basename $i .mp3`.wav $i; done Quando si decodificano file MP3 a 22kHz l'output di mpg123 potrebbe essere distorto. Non so bene in che modo mpg321 tratti questo problema. Se state convertendo con mpg123, usate: for i in *.mp3; do mpg123 --rate 44100 --stereo --buffer 3072 --resync -w `basename $i .mp3`.wav $i; done mpg123 può essere ottenuto da http://www.mpg123.de/. mpg321 è disponibile da http://mpg321.sourceforge.net/. NOTA Mi sono accorto che con alcuni file MP3 l'output di mpg123 era distorto. All'inizio ho pensato fossero file MP3 cattivi, ma ho provato con un altro lettore e suonavano bene. Quindi mpg123 non è la mia scelta per la conversione. _________________________________________________________________ 2.1.2.2. MAD Un altro lettore/decodificatore di MP3, e quello che preferisco, è madplay. È disponibile da http://www.mars.org/home/rob/proj/mpeg/. Con madplayer, la riga di comando è: for i in *.mp3; do madplay -o `basename $i .mp3`.wav $i; done Sfortunatamente, anche madplay ha avuto problemi con alcuni dei file MP3 che avevo. Non credo che ci sia un problema con il decodificatore, ma più che altro con la gestione da parte di questo di file MP3 difettosi. _________________________________________________________________ 2.1.2.3. Lame Il codificatore lame, che ha una modalità di decodifica, sembra trattare molto bene i casi difficili (lame può essere trovato a http://www.mp3dev.org/mp3/): for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done _________________________________________________________________ 2.1.2.4. File OGG Bene, questo HOWTO riguarda i file MP3, ma lo standard OGG è un'alternativa che molte persone preferiscono a MP3 a causa della licenza. Per trattare i file OGG, avete bisogno di usare: for i in *.ogg ; do ogg123 -d wav -f `basename $i .ogg`.wav $i; done _________________________________________________________________ 2.1.2.5. Conversione di altri formati Nico Genimakis mi ha mandato una e-mail sull'uso di mplayer per convertire audio da diversi formati a WAV con ricampionamento automatico a 44110Hz. Mplayer è conosciuto per essere capace di leggere praticamente qualsiasi cosa, e può convertire i vostri .ogg, .mp3, .flac, .wma, etc. Modalità d'uso (l'esempio tratta la conversione di file WMA): for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao p cm -waveheader $i; done _________________________________________________________________ 2.1.3. Note sulla conversione NOTE: Il comando `basename $i .mp3`.wav sostituisce le estensioni MP3 con WAV. Ci sono 101 modi per farlo, questa è l'alternativa: `echo "$1" | sed 's/\.mp3$/.wav/'` Dopo la conversione, lanciate "file *.wav" e controllate nell'output i file che differiscono da 16 bit, stereo, 44100 Hz. Se ci sono file con differenti caratteristiche, convertiteli alle specifiche qui sopra. Per esempio, per convertire il file track01.wav ed ottenere la frequenza di campionamento a 44.1 kHz, potreste usare: sox track01.wav -r 44100 track01-new.wav resample o, se quanto sopra introduce disturbi quando vengono convertiti file in mono: sox track01.wav -r 44100 -c 2 track01-new.wav Sox è molto popolare, tanto che probabilmente è installato in modo predefinito con qualsiasi distribuzione Linux, e può essere ottenuto da http://www.spies.com/Sox/. Tuttavia, le opzioni da riga di comando sono un po' criptiche per l'utente occasionale (io). Guardate http://www.spies.com/Sox/sox.tips.html per alcuni suggerimenti d'uso. _________________________________________________________________ 2.2. Normalizzazione La normalizzazione è un processo durante il quale tutti i file musicali vengono portati allo stesso livello di volume relativo. Io uso un programma di Chris Vaill (), chiamato normalize; può essere ottenuto da http://www.cs.columbia.edu/~cvaill/normalize/. Io uso la seguente sintassi (-m sta per modalità mix, dove tutti i file dovrebbero essere al volume più alto possibile): normalize -m *.wav _________________________________________________________________ 3. Masterizzazione del vostro CD Ci sono molti programmi per creare CD da file WAV. Io uso cdrecord per la masterizzazione da riga di comando e XCDROAST per l'interfaccia grafica. Per quanto riguarda cdrecord, dovete sapere quale dispositivo SCSI sia il vostro masterizzatore. Se state usando un masterizzatore ATAPI, con un kernel vecchio, usate l'emulazione SCSI (modulo del kernel ide-scsi). A partire dal kernel 2.6, potete usare direttamente ATAPI, senza emulazione SCSI, preponendo ATAPI: alla specificazione del dispositivo. Assumiamo che il vostro masterizzatore ATAPI si trovi sul secondo bus IDE come master. Quindi gli sarà associato il device file /dev/hdc. Per informare il kernel che volete trattarlo come un dispositvo SCSI, aggiungete la seguente riga a /etc/lilo.conf: append="hdc=ide-scsi" Inoltre, se il vostro kernel non carica automaticamente il modulo ide-scsi, aggiungete insmod ide-scsi nel vostro file rc.local (o equivalente). Una volta che il vostro masterizzatore è riconosciuto come dispositivo SCSI, lanciate cdrecord --scanbus per trovare quale sia il parametro "dev" da passare a cdrecord. Sul mio sistema, l'output è il seguente: scsibus1: 1,0,0 100) 'IOMEGA ' 'ZIP 250 ' '51.G' Removable Disk 1,1,0 101) 'HP ' 'CD-Writer+ 7100 ' '3.01' Removable CD-ROM Quindi la riga di comando di cdrecord conterrà dev=1,1,0 per specificare il dispositivo. Questo è il comando completo sul mio sistema: cdrecord dev=1,1,0 -eject speed=2 -pad -audio *.wav E, con il kernel 2.6: cdrecord dev=ATAPI:1,1,0 -eject speed=2 -pad -audio *.wav NOTA: L'argomento -pad è necessario, perché tutte le tracce audio sul cd devono essere corrette per avere l'appropriata lunghezza di dati, e non è sempre così con i file mp3. Un altro modo sarebbe quello di convertire i file WAV con sox nel formato CDR prima della masterizzazione: sox file.wav file.cdr _________________________________________________________________ 4. Masterizzazione di un CD DAO DAO, Disc-At-Once, è per ora l'unico metodo per la masterizzazione di un CD senza una pausa di 2 secondi tra le tracce. È utile per la masterizzazione di CD per le feste. Il programma per la masterizazione di CD in modalità DAO è cdrdao, disponibile da SourceForge, http://sourceforge.net/projects/cdrdao/. Il programma cdrdao usa file di descrizione chiamati TOC (Table Of Contents, ovvero tabella dei contenuti). Ci sono due modi per creare questo file. Il primo è quello di usare uno shell script, distribuito con il sorgente di cdrdao (nella directory contrib) chiamato generate_toc.sh. Prende una lista di file .wav come argomento e produce un file cd.toc. Il secondo modo è semplicemente quello di creare voi stessi tale file attraverso un editor di testo a vostra scelta. Qui c'è un esempio che si spiega da sé: CD_DA TRACK AUDIO AUDIOFILE "mix-01.wav" 0 TRACK AUDIO AUDIOFILE "mix-02.wav" 0 TRACK AUDIO AUDIOFILE "mix-03.wav" 0 TRACK AUDIO AUDIOFILE "mix-04.wav" 0 TRACK AUDIO AUDIOFILE "mix-05.wav" 0 Lo 0 (zero) dopo il nome del file wav comporta la partenza della traccia dall'inizio del file. Ci può essere un secondo numero che fornisce la lunghezza (tempo) del file da registrare. xcdroast crea file TOC simili, ci sono anche esempi nella directory testtocs del sorgente di cdrdao. cdrdao usa il dispositivo predefinito /dev/cdrecorder, che dovrebbe essere un link al device del masterizzatore. Assumendo che il device file del vostro masterizzatore sia /dev/scd0, create il link (come root) nel seguente modo: ln -s /dev/scd0 /dev/cdrecorder Quindi, assumendo che il file TOC si chiami cd.toc, il comando per la masterizzazione del CD è semplicemente: cdrdao write cd.toc _________________________________________________________________ 5. Software Ci sono alcuni programmi disponibili, che possono automatizzare il processo di creazione dei CD da file MP3. Qui c'è una lista scelta arbitrariamente: * burnmp3 - Programma per automatizzare la masterizzazione con il metodo DAO. http://richardsnow.bizland.com/burnmp3/. * mp32dao - uno script dalla distribuzione di cdrdao, nella directory contrib. http://cdrdao.sourceforge.net/. _________________________________________________________________ 6. CD dati Nota: Questa sezione è in costruzione, state consultandone una versione iniziale molto scarna. Con la crescente popolarità di lettori CD/MP3 è diventata funzionale la masterizzazione di CD dati per l'ascolto. Il vantaggio è sicuramente la capacità di condensare dieci volte più musica in un CD (una stima molto approssimata). Per prima cosa vorrei raccomandare l'uso dei passi per la correzione dei nomi dei file, descritta all'inizio di questo documento. La conversione in WAV è, ovviamente, non necessaria in questo caso. Per normalizzare i file MP3 senza perdere qualità a causa delle conversioni, usate mp3gain. Questo programma è disponibile da http://www.maazl.de/project/mp3/mp3gain.html o http://mp3gain.sourceforge.net/ (ma questo secondo sito sembra contenere una versione orientata a Windows). Dovreste lanciare il comando: mp3gain -r -c *.mp3 Per quanto riguarda la masterizzazione, i CD dati di MP3 sono solo normali CD dati (ISO9660) con file MP3 su di essi. Tutti i lettori CD/MP3 che conosco accettano CD con directory in essi, inoltre di solito masterizzo CD con estensione Joliet e funzionano bene. Quindi per masterizzare un tale CD con Linux, dovete prima creare una immagine ISO e quindi masterizzarla sul CD come nell'esempio qui sotto: mkisofs -J -o /tmp/mymp3s.iso /home/greg/mp3s/ cdrecord dev=1,0,0 speed=16 -eject /tmp/mymp3s.iso Ecco tutto! _________________________________________________________________ 7. Risorse per la masterizzazione di CD * Burning CDs on Linux: http://www-106.ibm.com/developerworks/linux/library/l-cdburn.html * CD Burning from the command line: http://freeunix.dyndns.org:8088/site2/howto/Burn_em_Baby.shtml * Comprehensive Burning Tutorial: http://www.yolinux.com/TUTORIALS/LinuxTutorialCDBurn.html * CD Mastering Guide: http://debianlinux.net/~jama/howto/cd_mastering_steps.html _________________________________________________________________ 8. Riconoscimenti Ringraziamenti speciali a tutte le persone che contribuiscono alla comunità Linux e che hanno reso possibile la realizzazione di questo HOWTO. _________________________________________________________________ 8.1. Traduzioni * Im Eunjea - Ha tradotto questo documento in coreano, l'URL è http://kltp.kldp.org/eunjea/mp3_burning/. * Mendel L Chan - Ha tradotto questo documento in cinese, l'URL è http://www.linux.org.tw/CLDP/mini/MP3-CD-Burning/. * Chie Nakatani - Ha tradotto questo documento in giapponese, l'URL è http://www.linux.or.jp/JF/JFdocs/MP3-CD-Burning/index.html. * Laszlo Daczi - Ha tradotto questo documento in ungherese, l'URL è http://tldp.fsf.hu/HOWTO/MP3-CD-Burning-hu/index.html. * Alix - Ha tradotto questo documento in francese, disponibile sul sito francese di TLDP http://www.traduc.org. _________________________________________________________________ 8.2. Altri riconoscimenti Ho avuto una grande risposta alle precedenti release di questo HOWTO. Così tante persone hanno contribuito che ho deciso di cambiare leggermente questa sezione per elencare tutti i nomi. Quindi, io vorrei ringraziare: Greg Ferguson, Rob Russell, Terry Davis, Chris Vaill, Jamie Kellogg, Tom Panning, Adam Buckley, Ilia Lobsanov, Giuseppe "Cowo" Corbelli, Florent Fievez, Piero Ottuzzi, Kees Cook, Andrew Newman, David DeVault, Nico Genimakis, Jan-Erik Stromquist. E, più di tutti, vorrei ringraziare la mia deliziosa moglie, Marta, per il suo amore, supporto e comprensione.