Files
abonnel-www/3b609b9e-d3c1-4f08-8d31-88895ed76cc9/index.md
T

148 lines
7.5 KiB
Markdown

# Copier un CD Audio sous Linux avec cdda2wav
## Pourquoi utiliser cdda2wav ?
Un CD audio n'est pas un disque de fichiers comme une clé USB : les pistes y sont stockées dans un format brut, sans système de fichiers classique. Vous ne pouvez donc pas simplement faire un *copier-coller* depuis votre gestionnaire de fichiers. Il faut un outil capable de lire les secteurs audio bit par bit et de les transformer en fichiers exploitables, généralement au format **WAV** (qualité CD, sans perte). Cette opération s'appelle le *ripping*.
**cdda2wav** est l'un des plus anciens et des plus fiables outils pour faire cela en ligne de commande. Il a deux atouts majeurs :
- Il utilise la bibliothèque **paranoia**, qui relit plusieurs fois les zones douteuses pour corriger les erreurs de lecture (rayures, poussière, lecteur capricieux).
- Il interroge automatiquement les bases de données en ligne pour récupérer le nom de l'album, de l'artiste et des pistes.
## Identifier votre lecteur CD
Avant de copier le CD, il faut savoir comment Linux nomme votre lecteur. Sur les systèmes modernes, c'est presque toujours `/dev/sr0` (parfois `/dev/sr1` si vous avez plusieurs lecteurs). Vérifiez avec :
```
lsblk -d -o NAME,TYPE,LABEL
```
ou, plus parlant pour un CD :
```
ls -l /dev/cdrom /dev/sr*
```
Le chemin du lecteur sera utile pour toutes les commandes qui suivent.
## Installation selon la distribution
Le paquet ne porte pas toujours le même nom : sur les distributions dérivées de Debian, le projet a été renommé **icedax** (un fork de cdda2wav) à la suite d'un changement de licence en amont, mais la commande reste très similaire.
**Sur Fedora / RHEL / openSUSE** :
```
sudo dnf install cdda2wav cdparanoia opus-tools
```
**Sur Debian / Ubuntu / Linux Mint** :
```
sudo apt install icedax cdparanoia opus-tools
```
Sur Debian/Ubuntu, vous lancerez alors `icedax` au lieu de `cdda2wav` ; les options sont identiques. J'ai aussi inclus `cdparanoia`, une alternative très populaire que je présente plus bas, et `opus-tools` pour la conversion finale en fichiers compressés.
## Extraire le CD audio en WAV
Voici la commande de base, à adapter selon votre lecteur :
```
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
```
Décortiquons chaque option :
- `-vall` : verbosité maximale, affiche tout ce qui se passe (table des matières, progression piste par piste, problèmes éventuels). Pratique pour comprendre ce qui se passe ; on peut alléger ensuite avec `-v summary`.
- `cddb=0` : tente de récupérer les métadonnées (titre, artiste…) depuis la base CDDB en ligne. Mettez `cddb=1` pour interroger un autre serveur, ou `cddb=2` si la première requête a échoué.
- `-paranoia` : active le mode de lecture sécurisé qui relit les zones suspectes. C'est plus lent mais bien plus fiable, à utiliser sauf si vous êtes pressé et que le CD est en parfait état.
- `-B` : *bulk extraction*, crée **un fichier par piste** (sinon vous obtenez un seul gros fichier de toutes les pistes collées). C'est l'option qu'on veut presque toujours.
- `-D /dev/sr0` : indique le lecteur à utiliser.
**Espace disque nécessaire** : comptez environ **10 Mo par minute de musique** au format WAV (44,1 kHz, 16 bits, stéréo). Un CD de 74 minutes occupera donc ~700 Mo, un CD de 60 minutes ~600 Mo. Les fichiers seront créés dans le **dossier courant** : placez-vous dans un dossier dédié avant de lancer la commande.
```
mkdir mon-album
cd mon-album
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
```
## Comprendre la sortie
Pendant l'extraction, cdda2wav affiche d'abord les caractéristiques du CD : nombre de pistes, durée totale, position de chaque piste sur le disque. Puis il extrait piste par piste et donne un compte rendu pour chacune :
```
100% track 1 recorded successfully
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
```
Voici ce que signifient ces compteurs :
- **rderr** : erreurs de lecture matérielles. Doit rester à 0.
- **skip** : secteurs sautés. Doit rester à 0.
- **atom**, **edge**, **drop**, **dup**, **drift** : petites incohérences détectées et corrigées par la lecture redondante. Quelques unités sont normales et n'altèrent pas le son.
Un message comme `track 3 recorded with minor problems (0.2% problem sectors)` n'est pas inquiétant : les zones problématiques ont été relues et corrigées. Si vous voyez `rderr > 0` ou `skip > 0`, en revanche, le résultat est probablement abîmé : nettoyez le CD et recommencez.
À noter dans l'exemple historique : le message `Operation not permitted. cannot set posix realtime scheduling policy` signifie que cdda2wav n'a pas pu se donner une priorité temps réel. Ce n'est pas grave, l'extraction se déroule normalement.
## Alternative recommandée : cdparanoia
Sur les distributions modernes, beaucoup d'utilisateurs préfèrent **cdparanoia**, un outil plus simple et tout aussi fiable, dédié à la lecture sécurisée :
```
cdparanoia -B -d /dev/sr0
```
L'option `-B` produit un fichier WAV par piste (`track01.cdda.wav`, `track02.cdda.wav`…). cdparanoia ne va pas chercher les métadonnées en ligne, mais il est très efficace pour récupérer les CD rayés.
## Récupérer les métadonnées (titres, artiste)
Les bases CDDB historiques (FreeDB) ont fermé. Aujourd'hui, l'écosystème s'appuie principalement sur **MusicBrainz**. Si vos pistes sont nommées `audio_01.wav`, `audio_02.wav`, etc., et que vous voulez les renommer avec les vrais titres, deux approches :
- Utiliser **abcde** (*A Better CD Encoder*), un script qui combine extraction, récupération des tags et conversion en une seule commande :
```
sudo apt install abcde # ou: sudo dnf install abcde
abcde -d /dev/sr0
```
- Ou taguer manuellement après coup avec un outil comme **picard** (l'outil officiel de MusicBrainz).
## Convertir les WAV en fichiers compressés
Les fichiers WAV sont volumineux (~10 Mo/min). Pour les écouter sur un téléphone ou un baladeur, on les convertit en format compressé. Le **format Opus** est le meilleur choix actuel : il offre une qualité supérieure au MP3 à débit égal, est libre, et lu partout.
Pour convertir tous les WAV du dossier courant en Opus à 128 kbit/s (qualité quasi indiscernable de l'original) :
```
for f in *.wav; do
opusenc --bitrate 128 "$f" "${f%.wav}.opus"
done
```
Quelques explications sur cette boucle :
- `for f in *.wav` : prend chaque fichier `.wav` du dossier.
- `"${f%.wav}.opus"` : retire l'extension `.wav` et la remplace par `.opus`. Ainsi `track01.wav` devient `track01.opus`.
- `--bitrate 128` : 128 kbit/s est un bon compromis qualité/taille. Pour de la musique classique exigeante, montez à 160 ou 192 ; pour de la voix, descendez à 64 ou 96.
Si vous préférez le **MP3** (compatibilité maximale avec les vieux appareils) :
```
for f in *.wav; do
lame -V2 "$f" "${f%.wav}.mp3"
done
```
L'option `-V2` produit un MP3 en débit variable de très bonne qualité (~190 kbit/s en moyenne).
Pour du **FLAC** (compression sans perte, fichiers plus petits que WAV mais qualité identique) :
```
for f in *.wav; do
flac --best "$f"
done
```
## En résumé
Le workflow complet pour archiver un CD audio sous Linux tient en quatre étapes : identifier le lecteur (`/dev/sr0` en général), se placer dans un dossier dédié, extraire avec `cdda2wav -vall -paranoia -B -D /dev/sr0` (ou `icedax` sur Debian, ou `cdparanoia -B` en alternative), puis convertir au format souhaité avec `opusenc`, `lame` ou `flac` selon vos besoins. Pour automatiser le tout y compris les métadonnées, **abcde** reste l'outil tout-en-un de référence.