7.5 KiB
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. Mettezcddb=1pour interroger un autre serveur, oucddb=2si 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.wavdu dossier."${f%.wav}.opus": retire l'extension.wavet la remplace par.opus. Ainsitrack01.wavdevienttrack01.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.