Linux MP3 CD Burning mini-HOWTO

Greg Wierzchowski

greg@draxen.org

2001-05-29

Diario delle revisioni
Revisione 1.112004-08-21Corretto da: GW
Corretto un errore tipografico.
Revisione 1.102004-07-14Corretto da: GW
Modificata la numerazione delle revisioni per essere sincronizzata con CVS.
Revisione 1.92004-07-14Corretto da: GW
Piccoli aggiornamenti, aggiunta una nuova sottosezione.
Revisione 1.82003-09-12Corretto da: GW
Pulizia, aggiornamento, correzioni ed un piccolo cambiamento di impaginazione.
Revisione 1.72002-04-26Corretto da: GW
Divisione in due sezioni: materiale esistente nella sezione "audio", nuova sezione "data". Varie aggiunte.
Revisione 1.52001-11-19Corretto da: GW
Corretta omissione nella sezione Masterizzazione Disc-At-Once.
Revisione 1.42001-11-17Corretto da: GW
Aggiunta sezione Masterizzazione Disc-At-Once.
Revisione 1.32001-09-02Corretto da: GW
Aggiunto un altro esempio di decodifica di file MP3 con lame.
Revisione 1.22001-07-12Corretto da: GW
Piccoli cambiamenti di impaginazione; aggiunta sottosezione Traduzioni in Riconoscimenti.
Revisione 1.12001-06-12Corretto da: GW
Piccola pulizia; correzione di regexp per l'esempio di conversione del nome da MP3 a WAV.
Revisione 1.02001-05-29Corretto da: GW
Release iniziale.

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.


2. CD audio

2.1. Preparazione delle tracce

NotaNota
 

Tutti i comandi presuppongono una shell bash


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.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

NotaNOTA
 

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:


6. CD dati

NotaNota
 

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


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