[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 764.   Masterizzazione di CD audio

La realizzazione di un CD audio non è altrettanto semplice quanto creare un CD-ROM (dati). Esistono diversi fattori di cui occorre prendersi cura:

  1. la disposizione corretta delle tracce e delle pause, rispettando gli standard;

  2. la conclusione corretta della registrazione (finalization), senza la quale mancherebbero le informazioni necessarie a raggiungere le tracce, impedendo l'ascolto del CD;

  3. la registrazione a una velocità adeguata al tipo di supporto (a seconda delle caratteristiche del CD vergine possono non essere ammissibili velocità di incisione troppo basse o troppo alte);

  4. il tipo di supporto adatto agli apparecchi di riproduzione comuni.

La scelta del CD vergine determina quindi anche la possibilità o meno di utilizzare una certa velocità di incisione. Di solito si consiglia una velocità doppia (2x), anche se in pratica occorre sperimentare per determinare effettivamente quale sia la velocità migliore (sia per il tipo di CD vergine, sia per la possibilità effettiva di ascoltare il CD in apparecchi standard). A ogni modo, occorre considerare che una velocità di incisione bassa, scalda di più il CD vergine, che se non è realizzato per sopportarla, può risultare danneggiato al termine del ciclo di registrazione.

Quando si realizza un CD audio, capita facilmente che questo funzioni correttamente utilizzando il lettore di un elaboratore, mentre risulta impossibile ascoltarlo in un impianto audio normale. Il motivo più comune per cui ciò accade è l'utilizzo di un formato non perfettamente standard, probabilmente a causa di una carenza del programma utilizzato per l'incisione. In questa situazione, può succedere di trovare che il CD che si ottiene non funzioni affatto in certi apparecchi audio, mentre in altri non riesce a cominciare dall'inizio.

Anche le caratteristiche del CD vergine possono essere motivo di discriminazione tra un lettore e un altro, ma si tratta di problemi meno frequenti. Tuttavia, per questo si tende a usare CD vergini realizzati appositamente per le registrazioni audio (consumer), che però richiedono una velocità di incisione molto bassa: singola (1x) o doppia (2x).

Nel capitolo 170 viene descritto brevemente l'uso di Cdrecord e di Cdrdao, allo scopo di realizzare CD-ROM molto semplici. Qui viene ripreso l'uso di questi programmi in merito alla realizzazione di CD audio.

L'intento di questo capitolo è esclusivamente quello di diffondere la conoscenza sull'uso del CD come unità di memorizzazione di informazioni audio. È responsabilità di chi utilizza le informazioni sapere quando queste attività sono legali e quando non lo sono, perché lesive del diritto di autore.

764.1   Cdrdao

Cdrdao (1) è un programma per l'incisione di CD-R, che richiede la definizione di un file di testo contenente tutte le informazioni necessarie a collocare correttamente le tracce audio e dati. Si fa riferimento a questo file come al «file TOC». Questo fatto può apparire come una complicazione eccessiva per la gestione del programma, ma occorre considerare che oltre all'eseguibile cdrdao, utilizzato attraverso la riga di comando, è disponibile anche xcdrdao che è un pannello frontale interattivo in grado di guidare alla realizzazione di tali file TOC per produrre CD audio.

È opportuno richiamare la sintassi per l'utilizzo dell'eseguibile cdrdao, dove in particolare si distingue un primo argomento contenente un comando, seguito da opzioni eventuali e alla fine dall'indicazione del file TOC:

cdrdao comando [opzioni] file_toc...

Il problema dell'indicazione dell'unità SCSI è descritto in un altro capitolo (capitolo 170), a ogni modo, quando l'unità del masterizzatore è collegata attraverso un adattatore SCSI, si utilizza l'opzione --device nel modo seguente:

--device unità_controllo_scsi,scsi_id,lun

Per poter approfondire le direttive del file TOC occorrerebbe conoscere adeguatamente il tipo di informazioni che un CD audio può contenere. In pratica, nella realizzazione di un CD non professionale non si inseriscono informazioni speciali; in particolare non è sensato l'inserimento di un numero di identificazione. Pertanto, in condizioni normali è sufficiente fare riferimento a pochi esempi significativi.

In ogni caso è necessario sapere che le righe vuote e quelle bianche vengono ignorate, mentre i commenti si indicano preceduti da due barre oblique: //.

CD_DA
TRACK AUDIO
FILE "data.wav" 0

L'esempio che appare sopra è il caso più semplice in cui si vuole ottenere un CD a partire da una sola traccia audio, contenuta nel file data.wav (di tipo WAV-RIFF), collocato nella directory corrente, senza altre inserzioni particolari. Questo tipo di configurazione si presta pertanto alla registrazione di una conferenza, di una lezione, o di qualunque altra cosa che non ha senso spezzettare in tracce distinte.

CD_DA

// Traccia 1
TRACK AUDIO
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
FILE "traccia-01.wav" 0

// Traccia 2
TRACK AUDIO
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
FILE "traccia-02.wav" 0

L'esempio che appare sopra è un po' più lungo e mostra l'inserimento di due tracce, corrispondenti ai file traccia-01.wav e traccia-02.wav. Le direttive NO PRE_EMPHASIS e TWO_CHANNEL_AUDIO sono abbastanza intuitive e rappresentano anche la situazione comune per la registrazione di un CD.

CD_ROM

// Traccia 1 dati
TRACK MODE1
DATAFILE "dati.iso9660"
ZERO 00:02:00 // post-gap

// Traccia 2 audio
TRACK AUDIO
SILENCE 00:02:00 // pre-gap
START
FILE "audio-1.wav" 0

// Traccia 3 audio
TRACK AUDIO
FILE "audio-2.wav" 0

Questo esempio ulteriore è il più complesso tra quelli mostrati. Si può osservare la dichiarazione iniziale come CD-ROM, attraverso la direttiva CD_ROM. Alla fine della prima traccia (dati), corrispondente al file dati.iso9660, viene aggiunto uno spazio, azzerato, della lunghezza di due secondi. All'inizio della prima traccia audio, corrispondente al file audio-1.wav, viene aggiunta una pausa di silenzio di due secondi; la seconda traccia audio inizia normalmente.

Si osservi che in un CD che deve contenere dati e audio assieme, conviene che ci sia una sola traccia dati e che sia la prima.

764.1.1   Copia di un CD

Il comando copy di Cdrdao consente di ottenere una copia di un CD. Per ottenere questo risultato, Cdrdao deve essere in grado di riconoscere le tracce e le caratteristiche che le riguardano. In pratica, la copia avviene generando prima un file TOC in base alle informazioni tratte dal CD, quindi il CD viene letto generando un file temporaneo unico, infine viene eseguita l'incisione usando il file temporaneo e il file TOC. Eventualmente è possibile saltare la fase di memorizzazione del file temporaneo, se il lettore è diverso dal masterizzatore e se il primo ha una velocità di accesso tale da garantire che il flusso di dati non venga interrotto. In pratica, non conviene fare la copia al volo, anche se le unità di lettura e di scrittura sono distinte.

In questa situazione è importante osservare che il file contenente i dati e le tracce audio è uno solo, per cui il file TOC che si genera è un po' particolare, a causa della necessità di delimitare la posizione delle tracce. A titolo di esempio viene mostrata una porzione di ciò che si potrebbe ottenere da un CD audio reale.

È per questo che appare la direttiva NO COPY: si tratta di un CD musicale reale per il quale è comunque vietata la riproduzione. L'esempio serve a vedere come viene interpretato il contenuto di un CD industriale tipico da parte di Cdrdao. Tra le altre cose, si può osservare la presenza del numero ISRC in alcune tracce (sezione 757.1).

CD_DA

CATALOG "0028942693623"

// Track 1
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
SILENCE 00:00:32
FILE "data.bin" 0 03:11:00
START 00:00:32


// Track 2
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
ISRC "NLA506300346"
FILE "data.bin" 03:11:00 03:13:00


// Track 3
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
ISRC "NLA506300347"
FILE "data.bin" 06:24:00 02:44:00

...
...

// Track 16
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
ISRC "NLA506300360"
FILE "data.bin" 49:31:00 02:37:00


// Track 17
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
FILE "data.bin" 52:08:00 03:26:00


// Track 18
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
FILE "data.bin" 55:34:00 04:06:00

Si può osservare che ogni traccia fa riferimento allo stesso file, qui indicato come data.bin, dove ogni volta si indica la posizione iniziale, espressa in minuti, secondi e centesimi di secondo, assieme alla lunghezza della traccia, indicata nello stesso modo.

L'esempio successivo è ottenuto da un CD-ROM industriale. Si può osservare la presenza di una sola traccia:

CD_ROM


// Track 1
TRACK MODE1
NO COPY
DATAFILE "data_1" 62:14:27 // length in bytes: 573597696

Infine, ecco come si può copiare un CD, indipendentemente dal fatto che si tratti di un CD-ROM (dati), di un CD audio, o di un CD dati e audio. In particolare, si fa riferimento a un lettore-masterizzatore collocato nell'unità SCSI numero tre. È evidente che il file TOC, denominato elenco.toc viene creato automaticamente.

cdrdao copy -v 2 --speed 4 --device 0,3,0 --buffers 64 \
  \       --paranoia-mode 3 --datafile data.bin elenco.toc
[Invio]

L'esempio crea una copia di un CD utilizzando la stessa unità per la lettura del CD e per la scrittura successiva. In particolare, oltre alle opzioni che dovrebbero essere già note: il file temporaneo che viene creato è data.bin (opzione --datafile data.bin); viene richiesto un controllo particolare del CD letto (opzione --paranoia-mode 3).

In alternativa, per fare più copie dello stesso CD, basta creare un'immagine, con il comando read-cd, che poi viene riprodotta con il comando write normale. Per esempio, si può usare il comando seguente per creare il file data.bin, assieme al file TOC elenco.toc:

cdrdao read-cd -v 2 --device 0,3,0 --paranoia-mode 3 \
  \       --datafile data.bin elenco.toc
[Invio]

Quindi, con il comando successivo si passa a incidere un CD in base a quanto contenuto nel file elenco.toc, da ripetere per tutte le copie che si vogliono ottenere:

cdrdao write -v 2 --speed 4 --device 0,3,0 --buffers 64 \
  \       elenco.toc
[Invio]

764.1.2   Xcdrdao

Xcdrdao è un programma frontale per la realizzazione di file TOC di CD audio, guidando fino all'operazione di incisione dei CD vergini. Se si vuole arrivare a pilotare l'incisione del CD, occorre avviarlo con i privilegi dell'utente root; in tal caso dovrebbe essere in grado di individuare l'unità adatta alla masterizzazione, ma se necessario è possibile intervenire nel menù {Settings} alla voce {Devices}.

Figura 764.6. Xcdrdao all'avvio senza l'indicazione di un file TOC.

xcdrdao-pannello-frontale

Xcdrdao si compone dell'eseguibile xcdrdao, che può essere avviato eventualmente indicando il nome di un file TOC. La figura 764.6 mostra il caso comune di Xcdrdao avviato senza alcuna indicazione, dove tutto deve essere definito.

xcdrdao [file_toc]

A titolo di esempio, si suppone di disporre di due file WAV-RIFF da inserire in un CD. La prima cosa che si fa è quella di dare un nome al file TOC, salvandolo anche se vuoto. Per questo si seleziona la voce {Save As} del menù {File}; si ottiene così una finestra che consente la navigazione tra le directory e l'indicazione del file che si vuole salvare. Per iniziare a inserire le tracce, si procede selezionando la voce {Add Track} dal menù {Tools}; si ottiene la finestra che si vede nella figura 764.7, dove già ci si accinge a inserire il file /tmp/wav/1.wav.

Figura 764.7. Aggiunta delle tracce nel file TOC.

xcdrdao-aggiunta-tracce

Dopo la conferma con il pulsante grafico <Ok>, si può aggiungere un altro file, in questo caso /tmp/wav/2.wav. Dopo aver confermato anche l'ultimo inserimento, si conclude selezionando il pulsante grafico <Cancel>. Al termine, per visualizzare la situazione dei file aggiunti, conviene selezionare la voce {Fullview} dal menù {View}. Ovviamente conviene anche salvare il file TOC.

Figura 764.8. Xcdrdao dopo la selezione dei file audio da aggiungere.

xcdrdao-pannello-frontale-con-tracce

Al termine della selezione delle tracce, una volta visualizzato il risultato grafico dell'insieme, è possibile fare una prova di ascolto del CD, prima ancora di passare all'incisione. Si ottiene questo semplicemente selezionando il pulsante grafico <Play>. Al termine si può decidere di passare all'incisione, attraverso la voce {Record} dal menù {Actions}. Ovviamente, in questo modo si va a pilotare l'eseguibile cdrdao con il file TOC sul quale si sta lavorando.

Figura 764.9. Ultima conferma prima dell'incisione del CD.

xcdrdao-pannello-registrazione

A titolo di esempio, viene mostrato anche il file TOC generato in questo modo:

CD_DA


// Track 1
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
FILE "/tmp/wav/1.wav" 0 10555247
SILENCE 529


// Track 2
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
FILE "/tmp/wav/2.wav" 0 8461487
SILENCE 421

Si può osservare che sono stati aggiunte in modo predefinito le direttive di opzione NO COPY, NO PRE_EMPHASIS e TWO_CHANNEL_AUDIO, così come le pause di silenzio alla fine delle tracce.

764.2   Cdrecord

Cdrecord (2) non è particolarmente adatto alla realizzazione di CD audio, tuttavia è opportuno completare il quadro mostrando in che modo ciò potrebbe essere fatto con questo programma. In particolare si utilizza l'opzione -audio per specificare che i file successivi sono da intendersi delle tracce audio.

È opportuno richiamare la sintassi per l'utilizzo dell'eseguibile cdrecord:

cdrecord [opzioni_generali] dev=dispositivo [opzioni_di_traccia] file_traccia...

Il problema dell'indicazione dell'unità SCSI è descritto in un altro capitolo (capitolo 170), a ogni modo, quando l'unità del masterizzatore è collegata attraverso un adattatore SCSI, questa si specifica in uno dei due modi seguenti:

dev=unità_controllo_scsi,scsi_id,lun
dev=scsi_id,lun

In pratica, il secondo modo può essere utilizzato quando si dispone di un'unica unità di controllo SCSI.

Per quanto riguarda l'uso delle opzioni -data e -audio, è necessario sapere che Cdrecord considera automaticamente tracce audio i file che terminano con le estensioni .au e .wav. Vengono mostrati solo alcuni esempi.

cdrecord -v -speed=2 dev=3,0 -audio prova_*.wav[Invio]

Questo esempio rappresenta il caso più comune. Viene richiesta l'incisione di un CD contenuto nell'unità SCSI numero tre del primo adattatore SCSI, a doppia velocità, dei file che corrispondono al modello prova_*.wav.

cdrecord -v -speed=2 dev=3,0 immagine.iso9660 -audio prova_*.wav[Invio]

Questo esempio ulteriore mostra il caso di un CD contenente una traccia dati e una serie di tracce audio. In pratica, differisce dall'esempio precedente solo per l'aggiunta dell'indicazione del file immagine.iso9660, che si intende un'immagine di un file system ISO 9660. Si osservi la mancanza dell'opzione -data, perché non indispensabile.

764.3   Wav2cdr

Wav2cdr (3) è un programma nato originariamente per convertire file WAV-RIFF nel formato CDR, ovvero quello adatto alla masterizzazione di CD audio. Tuttavia, sia Cdrdao, sia Cdrecord sono in grado di accettare direttamente file in formato WAV-RIFF, senza bisogno di convertirli prima in formato CDR, per cui questa funzionalità di Wav2cdr non è più così importante. L'eseguibile che compie il lavoro è wav2cdr e la sua sintassi generale è molto vaga:

wav2cdr opzioni

La caratteristica più importante di Wav2cdr è invece quella di riuscire a individuare facilmente le pause di silenzio all'interno di un file e di consentirne la suddivisione. Prima di arrivare a comprendere il meccanismo è necessario prendere confidenza con l'opzione --cut che richiede l'indicazione di una serie di coppie di numeri, secondo l'unità «C», che per Wav2cdr esprime 1/72 di secondo. L'esempio seguente serve a delimitare tre pezzi che vanno dalla posizione 10 001 alla 20 000, dalla 20 101 alla 50 000 e dalla 55 001 alla 70 000:

--cut 10000C 20000C 20100C 50000C 55000C 70000C

Si osservi quindi che nell'elenco di argomenti dell'opzione --cut, il primo numero di ogni intervallo è escluso.

Per individuare le pause in modo automatico, Wav2cdr deve essere informato della durata minima che queste devono avere e dell'ampiezza sonora massima da considerare come «silenzio» (il livello di soglia del rumore di fondo). La durata delle pause si definisce attraverso l'opzione --silencedelay, a cui segue l'indicazione del numero corrispondente a quantità di 1/72 di secondo (come già visto per l'opzione --cut), mentre il livello sonoro massimo di queste pause è definito dall'opzione --silencethresh, a cui si aggiunge un numero da determinare in base a delle prove. In generale, il valore predefinito per questo livello sonoro è 10; incrementandolo si intende superare un rumore di fondo eventuale, come quello contenuto in una registrazione su nastro magnetico analogico.

Per suddividere un file audio con Wav2cdr si passa generalmente per due stadi: la scansione del file per individuare gli intervalli, utilizzando l'opzione --silencecuts, generando un file contenente l'indicazione di tali intervalli; quindi la suddivisione del file, con l'opzione --cut, riutilizzando il file contenente l'elenco dei tagli da fare. Ecco come si potrebbe procedere con una registrazione ottenuta da una cassetta audio analogica:

wav2cdr --inwav --infile prova.wav \
  \        --silencecuts --silencedelay 30C --silencethresh 80 > elenco
[Invio]

wav2cdr --inwav --towav --infile prova.wav \
  \        --outfile traccia --cut `cat elenco`
[Invio]

Come si può intuire, il file WAV-RIFF che viene scandito e poi separato è prova.wav, mentre il file contenente l'elenco delle sezioni separate dalla pausa stabilita è elenco. Il secondo dei due comandi crea quindi una serie di file, in questo caso ancora WAV-RIFF in quanto richiesto espressamente, con nomi corrispondenti al modello traccian (traccia01, traccia02, ecc.).

Dopo una suddivisione del genere è utile ascoltare i vari file ottenuti per determinare se le suddivisioni sono corrette o meno. Nel caso si voglia eliminare una suddivisione è facile modificare l'elenco. Per esempio, supponendo di avere l'elenco seguente:

0C 2528C
2528C 3236C
3236C 5422C
5422C 6597C
6597C 18907C
18907C 27772C
27772C 40000C

Si può decidere di eliminare completamente il primo intervallo, di fondere assieme il secondo con il terzo e il quarto con il quinto, lasciando stare il resto. Basterebbe modificare l'elenco nel modo seguente, ottenendo in pratica solo quattro suddivisioni:

2528C 5422C
5422C 18907C
18907C 27772C
27772C 40000C

Tabella 764.14. Alcune opzioni.

Opzione Descrizione
--cut n_iniziale_esclusoC n_finale_inclusoC \
  \[n_iniziale_esclusoC n_finale_inclusoC]...
Delimita gli intervalli di tempo da estrarre dal file in ingresso.
--infile nome_file_in_ingresso
Definisce il nome del file audio in ingresso.
--outfile radice_nome_file_in_uscita
Definisce la radice del nome dei file audio ottenuti dalla separazione del file in ingresso. A questo nome viene aggiunto un numero composto da due cifre, per distinguerne la sequenza.
--inwav
--incdr
Il file in ingresso è di tipo WAV-RIFF, oppure è in formato CDR.
--towav
--tocdr
I file da generare devono essere in formato WAV-RIFF oppure CDR.
--silencecuts
Emette l'elenco di intervalli distinguibili dalle pause di silenzio (da definire in base alle opzioni --silencedelay e --silencethresh). Si osservi che l'elenco viene emesso attraverso lo standard output, mentre dallo standard error si ottengono ugualmente altre informazioni generali.
--silencedelay nC
Definisce la durata minima delle pause di silenzio, dove il numero esprime unità di 1/72 di secondo. Se non si usa questa opzione è stabilita una pausa minima di «30C», pari a 0,4 s.
--silencethresh n
Esprime il livello sonoro massimo, al di sotto del quale si intende si tratti di silenzio. Il valore predefinito è 10 e valori superiori alzano la soglia del rumore di fondo consentito.

764.4   Riferimenti


1) Cdrdao   GNU GPL

2) Cdrecord   GNU GPL

3) Wav2cdr   GNU GPL


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome masterizzazione_di_cd_audio.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory