Audio CD Backup Micro-Howto

Michele Conte (ceu AT libero.it)

versione del 03/06/2004

Indice

1 Introduzione
 1.1 Il problema
 1.2 La soluzione
 1.3 Cambiamenti
 1.4 Download
 1.5 Copyright e note legali
 1.6 Convenzioni
 1.7 Ringraziamenti
2 Prerequisiti
3 Archiviare un cd
4 Masterizzare un cd partendo dal backup
 4.1 Masterizzare usando il tocfile e cdrdao
 4.2 Masterizzare usando il cuefile
  4.2.1 Masterizzazione del cuefile con cdrdao
  4.2.2 Masterizzazione del cuefile con cdrecord
5 Ottenere file mp3/ogg dal backup
6 Altre operazioni utili
 6.1 Ottenere il cuefile inserito nel file flac
 6.2 Estrazione di una parte del contenuto del file flac
7 Altri programmi utili
8 Note

1 Introduzione

1.1 Il problema

Archiviare un cd audio in modo che sia possibile, a partire dal backup, masterizzare un cd perfettamente uguale all’originale e convertire facilmente le tracce nei formati ogg ed mp3.

1.2 La soluzione

Ogni cd viene archiviato utilizzando:

Usare un unico file per l’audio, unitamente alla presenza del tocfile/cuefile, consente di ricreare un cd identico all’originale (inclusi i pre-gap!).

Il cuefile, a differenza del tocfile (utilizzato solo da cdrdao) è uno standard de-facto per descrivere il layout di un cd audio, e consente al backup di essere utilizzato da molti programmi differenti su diversi sistemi operativi. La differenza sostanziale tra tocfile e cuefile è solo nel formato, le informazioni in essi contenute sono le stesse.

1.3 Cambiamenti

03/06/2004
Versione iniziale.

1.4 Download

La versione aggiornata di questo documento è scaricabile all’indirizzo http://www.infocomstore.com/acdbhowto/. La versione PostScript è disponibile all’indirizzo http://www.infocomstore.com/acdbhowto/howto.ps.

1.5 Copyright e note legali

Copyright © 2004 Michele Conte.

This manual is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

A copy of the GNU General Public License is available on the World Wide Web at http://www.fsf.org/copyleft/gpl.html. You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

Tutti i marchi e i marchi registrati appartengono ai loro legittimi proprietari.

1.6 Convenzioni

comando_parte_1 \

comando_parte_2

equivale a: comando_parte1 comando_parte_2

1.7 Ringraziamenti

Grazie a tutte le persone che mi hanno aiutato a imparare, in particolare a tutti gli amici del canale #linux-it della rete irc Freenode.

Hanno contribuito a vario titolo a questo documento: Domenico “aleph” Delle Side, Gianluca “acaso” Dei Rossi, Eugenia Franzoni.

2 Prerequisiti

Questo non è un howto introduttivo. Una conoscenza generale di GNU/Linux, sapere come installare dei programmi o masterizzare un cd, sono tutte cose che vengono date per scontate (e che sono già ben trattate in altri documenti).

Lo scopo di questo howto è quello di spiegare come “mettere insieme i pezzi” per realizzare un buon backup dei propri4 cd audio.

Questi sono i programmi utilizzati:

3 Archiviare un cd

cdrdao read-cd --device /dev/hdc --paranoia-mode 3 file.toc

cdrdao legge il contenuto del cd audio, creando un file data.bin e un tocfile col contenuto del cd.

cd-discid /dev/hdc > cddb_id.txt

(opzionale) L’id CDDB del disco viene archiviato nel dile cddb_id.txt per eventuali usi futuri.

cdrdao read-cddb file.toc

cdrdao scarica le informazioni relative al cd dal server CDDB e le aggiunge al tocfile, pronte per essere usate come informazioni CD-Text nella masterizzazione. Queste informazioni sono: il nome del cd, il nome del cantante/esecutore del cd, il nome e il cantante/esecutore di ogni traccia.

Una volta scaricate le informazioni CDDB sarà bene dare un’occhiata al tocfile, per controllare che non ci siano errori di battitura (gli utenti italiani che contribuiscono al database CDDB spesso sono piuttosto sbadati...). Come ulteriore raccomandazione, è bene controllare che ogni stringa (titolo di canzone, nome del cd, cantante) non oltrepassi il limite di 160 caratteri.

A questo punto possiamo convertire il tocfile in un cuefile. Per fare questo usiamo l’utility cueconvert, del pacchetto cuetools:

cat file.toc \

| perl -npe ’s/\\([0-7]{3})/chr(oct($1))/ge; s/\\\"//g’ \

| cueconvert -t toc -f - -t cue -f filetmp.cue

Questo comando esegue tre operazioni:

Qualche altra piccola modifica al cuefile che abbiamo generato, per avere il file “definitivo” da archiviare:

grep -v ’(SIZE_INFO|MESSAGE)’ filetmp.cue \

| sed -e ’s/data\.bin/data\.flac/’ > data.flac.cue

rm filetmp.cue

Purtroppo cueconvert non è esente da bug. Il grep sopra è un workaround a un piccolo bug che produce cuefile non standard. L’ultimo comando di sed trasforma l’indicazione del nome del file (contenente l’audio estratto dal cd) da data.bin a data.flac (ossia il nome che avrà il file dopo la compressione).

Visto che uno dei nostri obiettivi è avere un backup multipiattaforma, convertiamo6 il cuefile nel formato dei file di testo di Microsoft Windows©, per evitare che qualche (stupido) programma possa non riconoscerlo:

unix2dos data.flac.cue

Ed ora il tocco finale: la compressione lossless7. Flac è libero, efficiente, affidabile e multipiattaforma. Dopo la compressione la dimensione del file sarà (mediamente) il 60% dell’originale (dal 40% al 70%, a seconda del tipo di musica).

flac --cuesheet=data.flac.cue --endian=big --channels=2 --bps=16 --sample-rate=44100 --sign=signed data.bin

Tutti questi parametri sono richiesti perché il file data.bin, estratto da cdrdao, è un file wave grezzo (senza le intestazioni wave). L’opzione --cuesheet inserisce il cuefile all’interno del file flac (senza i titoli, quindi il cuefile andrà comunque conservato). man flac per i dettagli.

4 Masterizzare un cd partendo dal backup

flac -d data.flac -o data.wav

Decomprime il file con l’audio, creando il nuovo file wave data.wav. La decompressione è necessaria perché cdrdao e cdrecord hanno bisogno di leggere l’audio da masterizzare da un file wave.

A questo punto, per masterizzare, è possibile usare sia il tocfile (da preferire se si masterizza con cdrdao) che il cuefile (per tutti gli altri programmi).

4.1 Masterizzare usando il tocfile e cdrdao

cat file.toc | sed -e ’s/data\.bin/data\.wav/’ > filetmp.toc

cdrdao write --device /dev/hdc --speed 2 filetmp.toc

Il tocfile fa ancora riferimento al file data.bin, ossia al file creato da cdrdao durante l’estrazione dell’audio dal cd. Visto che adesso il file con l’audio da masterizzare si chiama data.wav è necessario modificare il tocfile.

Il primo comando quindi crea un nuovo tocfile “aggiornato” (che dice al programma di masterizzazione di prendere l’audio dal file data.wav). Il secondo comando masterizza il cd.

4.2 Masterizzare usando il cuefile

cat data.flac.cue | sed -e ’s/data\.flac/data\.wav/’ > filetmp.cue

Il cuefile originale punta ancora al file compresso (data.flac). Questo comando crea un nuovo cuefile “aggiornato”.

4.2.1 Masterizzazione del cuefile con cdrdao

cdrdao write --device /dev/hdc --speed 2 filetmp.cue

cdrdao è compatibile anche coi cuefile. Ovviamente questo comando è riportato solo per completezza. Avendo a disposizione il tocfile, il file con le informazioni nel formato “nativo” di cdrdao, non ha senso usare il cuefile per masterizzare con cdrdao.

4.2.2 Masterizzazione del cuefile con cdrecord

cdrecord dev=ATAPI:1,0,0 speed=2 cuefile=filetmp.cue -v -text -dao

Comando per masterizzare il cd audio con cdrecord. L’opzione cuefile dice a cdrecord di leggere il file filetmp.cue per sapere come masterizzare il cd e da quale file prendere l’audio. L’opzione -text indica di scrivere le informazioni CD-Text. L’opzione -dao è usata per masterizzare il cd in modalità Disk-at-once (senza pause tra le tracce).

5 Ottenere file mp3/ogg dal backup

Si possono ottenere rapidamente i file mp3 delle tracce audio codificando l’intero cd in un unico file mp38. Usando l’ottimo mp3splt sarà poi possibile suddividere il file creato nelle singole canzoni, senza perdità di qualità e con la massima precisione, visto che i tempi di “taglio” delle varie tracce sono ottenuti dal cuefile.

flac -d -c data.flac | lame --preset standard - out.mp3

mp3splt -c data.flac.cue out.mp3

mp3splt si occupa sia di rinominare opportunamente i file mp3 delle singole tracce audio, sia di aggiungere alle tracce i tag id3v19 con i dati presi dal cuefile (cantante, titolo, album).

Nello stesso modo si possono ottenere i file ogg (mp3splt supporta anche il formato ogg/vorbis).

6 Altre operazioni utili

6.1 Ottenere il cuefile inserito nel file flac

metaflac --export-cuesheet-to=- data.flac

6.2 Estrazione di una parte del contenuto del file flac

flac -d data.flac -o track.wav --skip=03:08.45 --until=07:55.17

Il comando estrae l’audio che va da 03:08:45 a 07:55:17, e lo memorizza nel file track.wav, in formato wave.

7 Altri programmi utili

XMMS-mp3cue
É un plugin di xmms che aggiunge a xmms il supporto per i cuefile. Riproducendo il file data.flac, se nella stessa directory esiste un file data.flac.cue, sarà possibile visualizzare il contenuto del file data.flac (come una sorta di playlist). Il plugin è scaricabile al seguente indirizzo: http://brianvictor.tripod.com/mp3cue.htm
EasyTag
Ottimo editor di tag multiformato. http://easytag.sourceforge.net
Burrrn
Front-end per Microsoft Windows© di cdrdao, col supporto per i cuefile e (ovviamente) per i tocfile. http://www.burrrn.net
Burnatonce
Altro front-end per Microsoft Windows© di cdrdao. http://www.burnatonce.com
Foobar2000
Player per Microsoft Windows© col supporto per i cuefile. http://www.foobar2000.com

8 Note