Linux MP3 CD Burning mini-HOWTO
2001-05-29
Greg
Wierzchowski
greg@draxen.org
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.
1.11
2004-08-21
GW
Corretto un errore tipografico.
1.10
2004-07-14
GW
Modificata la numerazione delle revisioni per essere sincronizzata con CVS.
1.9
2004-07-14
GW
Piccoli aggiornamenti, aggiunta una nuova sottosezione.
1.8
2003-09-12
GW
Pulizia, aggiornamento, correzioni ed un piccolo cambiamento di impaginazione.
1.7
2002-04-26
GW
Divisione in due sezioni: materiale esistente nella sezione "audio", nuova sezione "data". Varie aggiunte.
1.5
2001-11-19
GW
Corretta omissione nella sezione Masterizzazione Disc-At-Once.
1.4
2001-11-17
GW
Aggiunta sezione Masterizzazione Disc-At-Once.
1.3
2001-09-02
GW
Aggiunto un altro esempio di decodifica di file MP3 con lame.
1.2
2001-07-12
GW
Piccoli cambiamenti di impaginazione; aggiunta sottosezione Traduzioni in Riconoscimenti.
1.1
2001-06-12
GW
Piccola pulizia; correzione di regexp per l'esempio di conversione del nome da MP3 a WAV.
1.0
2001-05-29
GW
Release iniziale.
MP3
CD
audio
registrazione
masterizzazione
WAV
musica
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 (kees@outflux.net) 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.
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.
CD audio
Preparazione delle tracce
NotaTutti i comandi presuppongono una shell bash
Correzione dei nomi di file
Raggruppate tutti i file MP3 in una directory.
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.
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
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.
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.
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.
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
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
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 pcm -waveheader $i; done
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.
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 (cvaill@cs.columbia.edu), 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
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
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
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/.
CD dati
NotaQuesta 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!
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
Riconoscimenti
Ringraziamenti speciali a tutte le persone che contribuiscono alla comunità Linux e che hanno reso possibile la realizzazione di questo HOWTO.
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.
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.