[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


231. Lettore CD audio

Indipendentemente dal fatto che sia disponibile una scheda audio, è possibile ascoltare dei CD musicali attraverso il lettore CD-ROM, che dovrebbe essere provvisto di un'uscita autonoma (una presa stereo per cuffia sulla parte frontale dell'unità). Naturalmente, se è disponibile la scheda audio, il lettore CD-ROM potrebbe esservi stato collegato attraverso un cavetto schermato, in modo da poter utilizzare le funzionalità della stessa scheda per rielaborare il suono.

231.1 Ascolto di un CD audio

Il software che si occupa di mettere in funzione il lettore CD-ROM come lettore di CD audio, interviene solo sul dispositivo `/dev/cdrom' (o meglio, sul dispositivo a cui punta questo collegamento simbolico, che come già spiegato deve avere i permessi opportuni). Il segnale audio può essere prelevato direttamente dal lettore CD, oppure può essere gestito attraverso la scheda audio per mezzo di altro software.

Se la scheda audio non è di ottima qualità, questa potrebbe generare un rumore di fondo. Di conseguenza, per essere certi di prelevare il segnale più pulito possibile, è necessario utilizzare l'uscita del lettore CD stesso.

Il software che permette l'ascolto di un CD audio, non richiede di tenere sotto controllo il lettore, per cui potrebbe essere costituito anche da un semplice programma a riga di comando, come nel caso di `dcd'.

231.1.1 $ dcd

`dcd' è un programma di utilità molto semplice che segue la filosofia dei comandi a riga di comando, con tutti i vantaggi che questo può dare. In pratica, senza impegnare una console virtuale o un terminale, manda al lettore i comandi richiesti di volta in volta.

dcd [<n-traccia>...]

dcd {stop|restart|next|prev|info|dir|loop [n...]}

La sintassi è molto semplice: se si indica un numero n si intende avviare l'esecuzione della traccia n-esima corrispondente; se si indicano più numeri si intende ottenere l'esecuzione di quelle tracce nella sequenza indicata; se si indica un'altra parola chiave, si vuole impartire il comando corrispondente:

Alcuni esempi

dcd

Avvia l'esecuzione del primo brano del CD, proseguendo fino all'ultimo.

dcd 1

Esattamente come nell'esempio precedente.

dcd 1 3 5 7

Richiede l'esecuzione dei brani numero uno, tre, cinque e sette, in sequenza.

dcd next

Passa all'esecuzione del brano successivo.

231.1.2 TCD

TCD è un pacchetto composto da due programmi: uno per lo schermo a caratteri e uno per il sistema grafico X. L'utilizzo è intuitivo e non occorrono molte spiegazioni. È importante osservare che il controllo del volume riguarda il lettore CD e non la scheda audio. In altri termini, si tratta del volume del segnale che viene generato dal lettore CD: sia quello che si ottiene attraverso l'uscita sul pannello frontale dell'unità, sia quello che viene inviato alla scheda audio (ammesso che esista) per mezzo del cavetto schermato interno all'elaboratore.

La figura 231.1 mostra il funzionamento di TCD nella versione per terminali a caratteri, mentre la figura 231.2 mostra la versione per il sistema grafico X *1*

+-TCD v2.0, by Tim Gerla------Control Panel------------------------------------+
|                           |                                                  |
| Status: Paused            | [P] - Start playing.      [-] - Previous track.  |
| Track:  10 of 12          | [U] - Pause or restart.   [+] - Ne|t track.      |
| Time:   03:36             | [E] - Eject CDROM.        [G] - Go to track #.   |
| CD:     55:17             | [S] - Stop playing.       []] - Skip ahead.      |
|                           |                           [[] - Skip back.       |
|-Track List----------------| [M] - Change play mode.   < > - Adjust volume.   |
|                           | Current Mode: Normal      Current Volume: 10%    |
| 01a - 06:10               |                                                  |
| 02a - 06:21               |                                                  |
| 03a - 03:22               |                                                  |
| 04a - 04:06               |                                                  |
| 05a - 05:51               |                                                  |
| 06a - 08:05               | [T] - Edit track database.                       |
| 07a - 04:38               | [D] - Download CDDB data.                        |
| 08a - 05:10               |                                                  |
| 09a - 07:55               |                                                  |
| 10a - 08:29               | [Q] - Quit.                                      |
| 11a - 04:54               |                                                  |
| 12a - 06:37               |-Disc Information---------------------------------|
|                           | Length: 71:40                                    |
|                           | Title:  Unknown / Unknown                        |
|                           | Track:  Track 10                                 |
+------------------------------------------------------------------------------+

Figura 231.1: Esempio del funzionamento di TCD nella versione per terminali a caratteri.

181.jpg

Figura 231.2: Esempio del funzionamento di TCD nella versione grafica.

Gli eseguibili sono rispettivamente `tcd' e `gtcd'. La lettera «g» di `gtcd' sta per GTK+, ovvero le librerie grafiche utilizzate.

Una cosa interessante di TCD sta nel fatto che più copie dei suoi eseguibili possono funzionare in modo concorrenziale, e tutte risultano perfettamente sincronizzate, a parte qualche difficoltà nella regolazione del volume.

231.2 CDDB

CDDB è una società (CDDB Inc., http://www.cddb.com) il cui nome è tutto un programma: Compact Disc Data Base; in altri termini è la base di dati dei CD. Questa mette a disposizione la sua base di dati attraverso una serie di nodi di Internet. La cosa più interessante è che esiste un protocollo TCP apposito, che utilizza la porta 8880, con il quale si può interrogare il servizio utilizzando i pochi dati che fornisce il CD sui brani che contiene. Nella maggior parte dei casi l'interrogazione ha successo e su questa base sono stati realizzati una serie di programmi che permettono di conoscere cosa si sta ascoltando in modo quasi automatico.

Alcuni sistemi grafici integrati, come Gnome, utilizzano un programma cliente che si occupa di eseguire le interrogazioni per conto dei programmi che possono averne bisogno, come TCD (nella versione per Gnome). Nel caso di Gnome si tratta precisamente di `cddbslave', il quale poi memorizza le informazioni nella directory `~/.cddbslave/', su più file, mentre altri programmi potrebbero salvare le loro informazioni in file con nomi simili, per esempio `~/.cddb'.

Tanto per fare un esempio di come possa funzionare il meccanismo, si fa riferimento a TCD nella versione per Gnome. Sul pannello frontale, tra le varie icone se ne trova una che permette di accedere alla finestra di inserimento e modifica delle informazioni sulle tracce. Queste informazioni sono memorizzate naturalmente nella propria directory personale. Si vede questa finestra nella figura 231.3. In questo caso appaiono anche i titoli dei vari brani, se così non fosse, si potrebbe interrogare la base di dati CDDB, come suggerisce il pulsante grafico nella parte bassa.

182.jpg

Figura 231.3: Finestra di accesso alle informazioni sulle tracce del CD musicale.

Il servizio offerto da CDDB Inc. avviene per mezzo di diversi nodi, in particolare `us.cddb.com' e `uk.cddb.com'. Tuttavia, il software che si utilizza dovrebbe essere già predisposto per interrogare correttamente questi indirizzi.

231.3 Tracce CDDA

Le tracce audio di cui si compone un CD musicale sono in pratica dei file audio in un formato particolare. Anche se con qualche difficoltà, è possibile estrarre queste tracce, e teoricamente si possono ricomporre masterizzando un nuovo CD.

È importante ricordare che l'acquisto di un CD non dà implicitamente il diritto di farne quello che si vuole. In generale si ottiene solo il diritto di ascoltarlo per sé; mentre altre operazioni come la copia, l'esecuzione in pubblico e la trasmissione, sono attività che devono essere autorizzate espressamente da chi detiene i diritti di quella pubblicazione sonora.

Qui viene mostrato a titolo didattico il modo in cui le tracce audio di un CD possono essere estratte. Tuttavia, utilizzare questa tecnica per memorizzare tali brani in una qualunque unità di memorizzazione vuol dire farne una «copia», e ciò rappresenta un'azione che normalmente è vietata da chi possiede i diritti sulla pubblicazione relativa.

L'estrazione delle tracce da un CD non è necessariamente un'operazione illegale, anche se la prima idea che viene in mente a chiunque è quella di fare così delle copie digitali perfette. In certi casi può essere l'unico modo per riuscire ad ascoltare un CD attraverso un lettore in cui l'uscita audio non funziona; in ultima analisi potrebbe essere il modo per realizzare un sistema audio completamente digitale fino all'ultima fase del processo di elaborazione che si vuole attuare.

In generale, per estrarre le tracce audio da un CD si utilizza Cdda2wav o Cdparanoia. Il primo è ricco di funzionalità, ma è in grado di utilizzare solo con un gruppo relativamente ristretto di lettori, mentre il secondo è più spartano, ma è capace di gestire più tipi di lettori e in modo più preciso. Infatti, il problema più difficile dell'estrazione dei brani è quello di riuscire a individuarne correttamente l'inizio e la fine, oltre al problema di seguire correttamente la traccia senza salti.

231.3.1 Dispositivi

Quando si utilizzano applicativi come Cdda2wav o Cdparanoia per accedere direttamente alle tracce audio del lettore CD, è necessario che i file di dispositivo abbiano i permessi necessari, a meno che si voglia utilizzarli solo in qualità di utente `root'.

Di solito si fa riferimento a `/dev/cdrom' come collegamento simbolico al file di dispositivo corretto per il tipo di lettore di cui si dispone. Dal momento che gli applicativi in questione devono poter interagire con il lettore, nel caso questo sia di tipo SCSI è necessario prendersi cura anche del «dispositivo generico», in pratica di uno che corrisponde al modello `/dev/sgn'. Alcune distribuzioni GNU/Linux utilizzano una forma non standard per i nomi di questi file di dispositivo: `/dev/sga', `/dev/sgb',... In questi casi, è necessario creare anche i file corretti, o abbinare a questi dei collegamenti simbolici opportuni. In generale, da quanto si legge nel Linux allocated devices, documento mantenuto da Peter H. Anvin e corrispondente al file `/usr/src/linux/Documentation/devices.txt':

[...]
 21 char	Generic SCSI access
		  0 = /dev/sg0		First generic SCSI device
		  1 = /dev/sg1		Second generic SCSI device
		      ...

		Most distributions name these /dev/sga, /dev/sgb...;
		this sets an unnecessary limit of 26 SCSI devices in
		the system and is counter to standard Linux
		device-naming practice.
[...]

Naturalmente, `/dev/sgn' si abbina a `/dev/scdn'. Volendo creare per esempio il primo di questa serie, si può utilizzare il comando seguente:

mknod /dev/sg0 c 21 0

Il dispositivo generico deve avere i permessi di scrittura se si vuole permettere a questi applicativi di funzionare.

231.3.2 Cdparanoia

Cdparanoia è in grado di estrarre le tracce audio di un CD in modo digitale, senza passare per l'elaborazione della scheda audio. Può generare diversi tipi di formati, tuttavia al principiante conviene un formato con intestazione, come il WAV RIFF. Si compone di un eseguibile unico, `cdparanoia':

cdparanoia [<opzioni>] <intervallo-di-esecuzione> [<file-da-generare>]

La caratteristica più importante di questo applicativo sta nel fatto che è in grado di leggere e rileggere più volte le tracce audio in modo da escludere errori, attraverso il confronto delle letture successive.

A parte il caso in cui venga utilizzata l'opzione `-B', è obbligatorio specificare l'intervallo di tracce e di tempo di registrazione. Semplificando al massimo, si tratta dell'intervallo di tracce espresso semplicemente nella forma m-n, dove m è la traccia iniziale e n quella finale. Nella pagina di manuale cdparanoia(1) si può leggere una spiegazione un po' più dettagliata che permette di individuare meglio la porzione desiderata.

Alcune opzioni

-w | --output-wav

Genera un formato WAV RIFF.

-B | --batch

Genera una serie di file, uno per ogni traccia.

-Z | --disable-paranoia

Disabilita il processo di rilettura e correzione degli errori.

Esempi

cdparanoia -w 1 mio_file.wav

Crea il file `mio_file.wav' ottenuto dalla prima traccia del CD contenuto nel lettore.

cdparanoia -w 1-2 mio_file.wav

Crea il file `mio_file.wav' ottenuto dalle prime due tracce del CD contenuto nel lettore.

cdparanoia -w -B

Crea una serie di file, nella directory corrente, uno per ogni traccia del CD contenuto nel lettore. I file sono in formato WAV.

cdparanoia -w 1 - | sox - .wav -t ossdsp /dev/dsp

Legge la prima traccia audio del CD contenuto nel lettore e la passa a un altro programma, attraverso una pipeline. Quel programma si occupa di convertire il formato in modo da poterlo inviare al dispositivo `/dev/dsp' che in pratica corrisponde a un ingresso digitale della scheda audio (viene mostrato nel prossimo capitolo).

A parte la qualità della riproduzione che si ottiene, eventualmente anche pessima, questo esempio mostra in che modo si può prelevare una traccia audio per rielaborarla prima dell'ascolto, senza passare per l'uscita audio del CD.

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


1.) TCD si dovrebbe trovare incluso anche nella raccolta degli applicativi di Gnome, e in tal caso, l'aspetto della versione grafica è un po' diverso rispetto a quanto si vede nelle figure riportate qui.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]