domenica 20 ottobre 2013

Ripping per tutti

A giudicare dalle email che arrivano alla rubrica della posta di Musica & Memoria una delle preoccupazioni principali di chi si accinge a passare alla musica liquida è il trasferimento della propria, spesso cospicua, libreria musicale su CD.

Si confrontano due scuole: quella che ritiene che un lettore CD di un computer è un componente tecnologicamente evoluto, in grado di leggere correttamente dati e programmi per computer (altrimenti servirebbe a poco), e che la correttezza della operazione lettura è dimostrata dal fatto che un programma per PC se ha qualche byte fuori posto non funziona più. L'altra scuola invece pone la massima attenzione alla correzione di errori, che ovviamente garantisce quanto sopra, e ai suoi nefasti effetti (o presunti tali) sull'ascolto.
Provo temerariamente a fare un po' di chiarezza, allo scopo soprattutto di abbassare la criticità e lo stress attribuito a questa operazione.

Cominciamo dal CD
Questo supporto figlio di un'altra era tecnologica è stato progettato per distribuire file audio musicali (e in seconda battuta dati) con basso costo. Quindi, progettato per funzionare anche con lettori o supporti in condizioni non perfette e con un basso costo di produzione del dischetto. Le soluzioni adottate sono state l'inserimento di un efficace sistema di correzione di errori e l'adozione di un supporto stampabile. Il CD viene infatti stampato, non inciso, e questo processo non garantisce la identità al 100% col master (non lo garantirebbe neanche la masterizzatore) e tutto funziona grazie alla correzione di errore. Che non è una novità, ed è ovviamente presente anche nei dischi rigidi dei PC.

La correzione di errore
Non voglio fare qui una trattazione sui sistemi di correzione di errore, si può approfondire su varie fonti in internet. Vediamo invece perché dovrebbe avere effetto sulla musica. Si tratta come noto di una serie di informazioni aggiunte al file musicale, che consentono al software che si occupa della lettura non solo di verificare se la sequenza di bit letti non corrisponde a quella originale, ma anche di ripristinare la sequenza originale, fino ad un certo livello di alterazioni. Quale livello? Zone alterate troppo estese, quelle di cui ci accorgiamo in lettura con un clic o con altre alterazioni o con la lettura che si blocca.

In tutti gli altri casi, dell'intervento di correzione non ce ne accorgiamo, la musica fluisce senza interruzioni e apparentemente senza alterazioni. Apparentemente ...  ma le alterazioni ci sono e sono percepibili con un impianto di livello adeguato, oppure no? È opinione comune che ci siano e possano degradare l'ascolto anche se non in modo evidente, soprattutto a causa di ritardi minimi dovuti al processo di correzione che producono un aumento della distorsione nel dominio del tempo chiamata jitter e molto citata come uno dei difetti principali dell'audio digitale.
Ma questo avviene ascoltando un CD Audio con un lettore CD, in modo tradizionale. Noi invece ascoltiamo seguendo un processo diverso. Stiamo trasferendo il contenuto del CD audio su normali file da computer che poi saranno utilizzati come dati di input per un programma informatico, che chiamiamo media player (che sia Foobar2000 o iTunes o altri) da memoria fisica a memoria di lavoro, con un livello di possibili errori di molti ordini di grandezza inferiore. Difatti, come abbiamo già detto, quel PC nel quale dati di input o istruzioni di programmi arrivassero all'unità centrale, alla CPU, alterati, non funzionerebbe correttamente già da un bel po' e per tutte le altre sue funzioni.

Seguiamo allora, per chiarirci le idee, questo processo
All'origine abbiamo un CD audio che, è importante ricordarlo, non è un CD dati (CD-R) ha una organizzazione diversa, a settori (vedi Wikipedia per i dettagli) e difatti da PC non lo "vediamo" come insieme di file gestibili dal file system del PC, ma come una serie di "tracks".
Il nostro ripper, che sia foobar2000, iTunes, DBpowerAmp o altri, legge le tracce e le trasforma una per una in un file audio, per esempio in formato WAV, non compresso, il formato standard per l'audio digitale in codifica PCM, oppure ALAC se abbiamo usato iTunes e/o vogliamo mantenere i tag.

Nel farlo utilizza ovviamente il sistema di correzione di errore e quindi le informazioni ridondanti presenti sul CD, che consentono di individuare eventuali anomalie di lettura o di stampaggio e di ricreare un file audio senza errori. Se in questa fase si crea ad esempio jitter non ce ne importa nulla perché non stiamo ascoltando il CD.

A questo punto abbiamo una serie di file audio che il nostro media player leggerà, come abbiamo già detto, senza problemi e senza alterazioni e quindi potremmo vivere sereni e felici senza preoccuparci di altro.


Invece, come al solito, non è così perché non possiamo essere sicuri che il ripristino dell'audio originale abbia ricreato esattamente l'audio originale. Ha ricreato un file audio che non manda in errore il media player, certamente, ma nel ripristino, se l'errore era esteso, potrebbe non aver potuto recuperare esattamente la sequenza di bit originale.

Anche se difficilmente lo potremmo avvertire all'ascolto questa eventualità non ci farebbe dormire e quindi la vorremmo evitare, vorremmo una copia esatta dell'audio originale.

Le alternative per la copia esatta dell'originale
Proprio Exact Audio Copy o EAC si chiama il più popolare programma che fa questo mestiere. Ci avverte se la correzione di errore è stata attivata oltre a una certa soglia. La soglia la dobbiamo decidere noi in base ad una serie di parametri di configurazione. Quelli di default sono orientati ad una acquisizione veloce e senza problemi, ma si può richiedere che la estrazione si blocchi se il tempo è superiore al previsto di un tot di volte, che la qualità del recupero sia alta (di default è media) o impostare la modalità di lettura da "sicura" a "paranoid". Le prime due sono opzioni di EAC, le seconde dell'unità di lettura, ma per approfondire tutte le possibilità di configurazione è necessario leggere il manuale su wiki.hydrogenaudio.org.

Il sistema alternativo si chiama AccurateRip. è stato messo a punto per il controllo errori in stampaggio negli stabilimenti di produzione CD e usa un criterio probabilistico che, come tutti i metodi probabilistici, funziona nella maggior parte dei casi, con tendenza al 100% asintotico al crescere del campione. In pratica, oltre alla correzione di errore prevista dal CD, esegue verifiche (checksum) a intervalli regolari su porzioni di disco in lettura e le confronta con i checksum allo stesso punto in altri ripping precedenti. Tutti i controlli effettuati vengono infatti archiviati in un DB centrale e anche il nostro si aggiungerà a quelli già esistenti.

Se risulterà identico a quelli esistenti e questi sono in buon numero i casi sono due: la ricostruzione (anche dopo eventuale correzione errore) è esatta oppure in tutti i casi si è verificato lo stesso medesimo errore. Questa seconda eventualità è già molto improbabile se i dischi uguali nel DB sono pochi e diventa velocemente nulla se sono molti. Come è nella grande maggioranza dei casi. Se non risulta identica il sistema ripete la lettura per tentare di avere un risultato compatibile, se non ci riesce dopo un certo numero di tentativi, ma il file è stato comunque ripristinato ed e ascoltabile lo dichiara trasferito con "minor problems" (altrimenti saranno, evidentemente, "major problems", alias brano non trasferito e ce ne accorgeremo per forza).

Esperienza pratica 1: Foobar2000 + AccurateRip
Ho trasferito sinora, a piccole quantità alla volta, oltre 500 album e quindi posso avere una idea di quanto siano frequenti i problemi di ripping. Ho utilizzato il sistema AccurateRip incluso in Foobar2000, come descritto nel precedente articolo, ma ho testato anche EAC per completezza.
I CD erano in gran parte nuovi ma in parte non trascurabile usati, acquistati su Amazon da Zoverstock o altri negozi online specializzati. Tutti in buone condizioni ovviamente e trattati bene.
La presenza di problemi, sempre e solo minor problems, è stata piuttosto rara (meno del 5%) ed è stata indipendente dal fatto che il CD fosse nuovo o usato. Anche per album apparentemente rari il confronto si è rilevato quasi sempre possibile. 
Nel caso di minor problems si può procedere verso la presunta perfezione con una serie di azioni ulteriori:
  • impostare sulla unità di lettura la velocità dimezzata;
  • pulire accuratamente il dischetto;
  • passare alla conversione file per file, per le sole tracce che sono state convertite con minor problems (una alla volta); non so perché ma con questa azione su Foobar2000 quasi sempre il problema sparisce;
  • provare la stessa operazione su un altro PC (potrebbe essere un problema meccanico-ottico del lettore CD interno che non legge perfettamente il dischetto, si può anche provare a pulire con attenzione la lentina).
L'attenta pulizia del dischetto è stata anche l'azione correttiva per gli unici casi di major problems rilevati, che erano sempre la impossibilità di leggere il CD, quindi probabilmente la impossibilità di leggere la TOC (table of contents). 
In sintesi si riesce a trasferire un CD in 10-15' in media con una buona confidenza che sia stata fatta la migliore conversione possibile. 

L'esperienza con EAC
E' stata invece piuttosto sorprendente. Mi aspettavo che fosse un programma "schizzinoso" e trovasse problemi sui CD che ho usato come test, scegliendoli ovviamente tra quelli che erano stati diagnosticati con minor problems da AccurateRip. Invece la conversione si completava sempre senza errori, con confidenza vicino al 100%. Allora ho provato ad utilizzare CD meno tenuti bene, andando a cercarli tra quelli di mia figlia, che quando li usava (ormai è passata a Spotify e prima ancora usava solo iPod e iTunes) ne faceva un uso, diciamo, più libero. Anche scegliendo i più disastrati con graffi e simili, e addirittura copie piratate, per EAC andava sempre bene tutto. Allora ho settato tutti i parametri ai criteri più stringenti, inclusa la misteriosa modalità "paranoid", ma il risultato era sempre una conversione senza errori. Merito forse del lettore del mio notebook, forse di qualche altro parametro nascosto. Gli stessi album peraltro venivano letti anche da Foobar2000 al peggio con minor problems.

Ho dovuto quindi passare alle maniere forti e rigare qualche CD duplicato.

Il CD sacrificato è stato in particolare Laundry Service di Shakira, risalente alla fase pre-adolescenziale di mia figlia. Una incisione con le forbici nella parte centrale e finalmente, anche se su un brano solo, anche per EAC c'era qualcosa che non andava. Solo però impostando "salta la traccia in caso di errori", altrimenti comunque la correzione di errore riusciva a recuperare il contenuto. A conferma che il CD era stato progettato proprio per questo.
Il log però non riporta nessuna particolare informazione sul tipo di errore rilevato o sulle modalità di rilevazione, solo un generico messaggio di errore "copia annullata".

(Se qualche visitatore riesce a generare un log con errori più dettagliati e ce lo invia farebbe cosa gradita per completare questa analisi. Nella documentazione presente in rete non ho trovato molto di più al riguardo).

Riprovato il dischetto rigato anche su Foobar2000 con AccurateRip il risultato è stato il medesimo: conversione effettuata ma senza la conferma del "march" con i checksum. Come peraltro già avveniva per le altre tracce non difettate su questa copia già molto scadente (piratata). Un poco più estese le informazioni in questo caso.

Esperienza 3: l'import di iTunes
Per impiegare meno tempo in certi casi ho utilizzato un sistema alternativo semplicissimo e che anzi si propone di solito automaticamente: l'import di iTunes. Anche in questo caso è possibile configurare l'acquisizione con controllo errori. Un controllo che appare molto blando perché iTunes ha sempre  "digerito" tutto e senza problemi, e anche con tempi molto ridotti rispetto a Foobar2000 con AccurateRip. L'ho quindi usato quando trovavo problemi di qualche tipo e il CD non giustificava il tempo occorrente per arrivare alla conversione tendente alla perfezione.

Se tutto il resto non funziona?
Come premesso, sinora non mi è mai capitato che la conversione non vada a buon fine. Il merito è probabilmente da attribuire alla correzione di errori effettuata dall'unità di lettura inserita nel mio notebook Sony Vaio (una unità BD/DVD Pioneer BD-ROM BDC-TD03) come penso che avvenga per tutte le unità di ultima generazione. Consideriamo infatti che le tolleranze di lettura per DVD e ancor più per Blu Ray sono molto più stringenti che quelle per i CD.
Dall'analisi appena descritta la soluzione nel caso che un brano non sia acquisibile neanche con i rimedi indicati prima è molto semplice: si tratta di abbassare il livello di controllo, cosa fattibile sia in EAC sia con Foonbar2000 (dove si può disabilitare il controllo con AccurateRip). Oppure rinunciare.

In sintesi
Gli ulteriori test hanno confermato che Foobar2000 con AccurateRip è la soluzione di compromesso migliore per chi vuole ottenere un buon risultato di ripping, anzi vicino alla perfezione, senza dover studiare i complicati parametri di EAC, che peraltro include, volendo, anche il controllo con AccurateRip. EAC è gratuito come Foobar2000 e ha prestazioni simili, quindi può essere una alternativa comunque praticabile per chi si ritrovi meglio con questo prodotto.

Videate e log dei test effettuati
Come al solito una serie di videate a commento dei test effettuati.

1) Così si presenta EAC. Il riconoscimento automatico del CD bisogna abilitarlo, altrimenti si deve procedere manualmente




2. EAC al lavoro, in verifica delle tracce. Notare il piccolo riquadro che mostra il numero di interventi della correzione di errore.




3. Il log di EAC

Exact Audio Copy V1.0 beta 3 from 29. August 2011
File di log EAC per l'estrazione del 18. Ottobre 2013, 23:40
Neil Young & Crazy Horse / Everybody Knows This Is Nowhere
Unità predefinita : PIONEER BD-ROM  BDC-TD03   Adapter: 0  ID: 1

Modalità di lettura       : Sicura
Utilizza lettura accurata : Sì
Disattiva cache audio     : Sì
Rileva errori lettura C2  : No

Correzione offset di lettura                         : 667
Compensa lettura nel Lead-In e nel Lead-Out          : No
Riempi sample offset mancanti con silenzio           : Sì
Rimuovi blocchi di silenzio ad inizio e fine traccia : No
Usa i sample nulli nel calcolo CRC                   : Sì
Interfaccia usata                                    : Interfaccia nativa Win32 Per Windows XP/Vista/Win 7
Gestione Gap                                         : Non rilevato, così aggiunto a traccia precedente

Effettua un'estrazione solo di prova


TOC del CD estratto

     Traccia |  Inizio  | Lunghezza | Inizio settore | Fine settore 
    ----------------------------------------------------------------
         1   |  0:00.32 |   3:00.18 |         32     |     13549    
         2   |  3:00.50 |   2:28.55 |      13550     |     24704    
         3   |  5:29.30 |   5:53.50 |      24705     |     51229    
         4   | 11:23.05 |   9:16.70 |      51230     |     92999    
         5   | 20:40.00 |   4:07.00 |      93000     |    111524    
         6   | 24:47.00 |   5:36.07 |     111525     |    136731    
         7   | 30:23.07 |  10:06.55 |     136732     |    182236    


Traccia  1

     Nome file 01. Neil Young & Crazy Horse - Cinnamon Girl.wav

     Livello di picco 89.4 %
     Velocità estrazione 2.1 X
     Qualità traccia 99.9 %
     Verifica CRC 18BB3D2A
     Estratta accuratamente (Confidence 28)  [B61D45EA]  (AR v2)
     Copia corretta

4 commenti:

  1. Anonimo23/10/13

    All'origine abbiamo un CD audio che, è importante ricordarlo, non è un CD dati (CD-R) ha una organizzazione diversa, a settori (vedi Wikipedia per i dettagli) e difatti da PC non lo "vediamo" come insieme di file gestibili dal file system del PC, ma come una serie di "tracks".

    In realtà qualsiasi informazione memorizzata su un supporto di memoria di massa (cd, dvd, hd, chiavette usb, etc.) è fatto più o meno così:

    01001010010111010101110101011101011110101010101 (etc.)

    RispondiElimina
  2. ... e continueresti a vederli così se non ci fossero una serie di strati di software che organizzano questi bit e li presentano in una forma comprensibile agli umani.

    RispondiElimina
  3. Anonimo26/10/13

    esatto, ma il punto è: i dati sono tutti uguali, non c'è nessuna differenza tra musica, testo, immagini o qualsiasi altra cosa.
    e la correzione di errori funziona proprio per questo: perchè si basa sulla matematica. la correzione d'errori non è che "approssimi" i valori esatti. li ricrea esatti. se no i computer non potrebbero funzionare.

    RispondiElimina
  4. Proprio all'inizio del post scrivevo che si confrontano su questo tema due scuole di pensiero: tu evidentemente appartieni alla prima e quindi, nel caso dovessi avere la necessità di trasferire il contenuto di un CD, potresti tranquillamente usare l'import di iTunes e impiegare meno tempo. Per tutti gli altri che invece hanno meno fiducia nella perfezione del mondo dell'informatica può essere interessante leggere l'articolo e confrontare le esperienze nell'utilizzo dei sistemi messi a punto per controllare l'esito del trasferimento.

    RispondiElimina

Sono stati segnalati occasionali problemi nell'inserimento dei commento con account Google con alcuni browser e impostazioni di protezione. In questo caso inserire il commento come "anonimo". Grazie