Petit guide de gravure sur CD de fichiers MP3

Version française du Linux MP3 CD Burning mini-HOWTO

Greg Wierzchowski

Traduction française: Thibault Alix

Relecture de la version française: Olivier Kaloudoff

Préparation de la publication de la v.f.: Jean-Philippe Guérard

Version : 2.0.fr.1.0

2003-05-01

Historique des versions
Version 2.0.fr.1.02003-05-01TA, OK, JPG
Première version française, avec quelques corrections de liens.
Version 2.02002-04-26GW
Séparation en deux sections : les informations existantes dans la section « audio », et une nouvelle section « données », sur les CD de données. Quelques modifications diverses.
Version 1.52001-11-19GW
Correction des oublis dans la section « gravure en mode Disc-At-Once ».
Version 1.42001-11-17GW
Ajout de la section « gravure en mode Disc-At-Once ».
Version 1.32001-09-02GW
Ajout d'un autre exemple sur le décodage de fichiers MP3 avec Lame.
Version 1.22001-07-12GW
Quelques changements mineurs ; ajout d'une sous-section « Traduction » dans la section « Remerciements ».
Version 1.12001-06-12GW
Modifications mineurs. Correction de l'expression rationnelle dans l'exemple de conversion de nom entre MP3 et WAV.
Version 1.02001-05-29GW
Version Initiale.

Résumé

Ce petit guide est un mode d'emploi complet de la création de CD audio et de CD de données à partir de musique au format MP3.


Table des matières

1. Introduction
1.1. Copyright et License
2. CD audio
2.1. Préparation des pistes
2.2. Graver vos CD
2.3. Graver un CD en DAO
2.4. Logiciel
3. CD de données
4. Crédits
4.1. Traductions
4.2. Autres Crédits

1. Introduction

J'ai écrit ce petit guide pour partager mon expérience de la gravure de CD audio, et à cause du manque sur Internet de quelques informations spécifiques sur la normalisation du son. Je grave en général des CD de musique en les mixant avec des sons provenants de sources différentes. Bien souvent, le volume sonore entre deux chansons varie beaucoup. C'est le premier obstacle. Deuxièmement, la plupart des fichiers pris sur Internet ne sont pas compatible avec les CD (16 bits, stéréo, 44100 Hz), et doivent être convertis. Il y a beaucoup de programmes pour graver des CD de musique à partir de fichiers MP3, et beaucoup d'entre eux réalisent la conversion de façon transparente. Mais, aucun d'entre eux ne permet de normaliser le son, c'est pourquoi j'ai travaillé sur ma propre méthode de gravure de CD.

Cet HOWTO traite d'une seule chose : mettre des MP3 sur un CD pour pouvoir les écouter. Pour des informations approfondies sur les fichiers MP3, voir le Guide du MP3 (Linux MP3 HOWTO) de Phil Kerr, que l'on peut trouver à l'adresse suivante : http://www.traduc.org/docs/HOWTO/lecture/MP3-HOWTO.html. Pour des informations sur la création de CD en général, se référer au Guide de gravure de CD (CD-Writing-HOWTO) de Winfried Trümper, disponible sur http://www.traduc.org/docs/HOWTO/lecture/CD-Writing-HOWTO.html.

Je suppose que vous voulez graver des CD avec la collection de chansons que vous avez récupéré via différentes sources, avec des qualités différentes, mais vous voulez la meilleure qualité de son possible sur le CD. Ce petit guide détaille les étapes nécessaires pour y parvenir.

1.1. Copyright et License

Ce document dispose d'un copyright (c) 2001 par Greg Wierzchowski, et est publié sous les termes de la GNU Free Documentation License, incluse pour référence. Envoyer vos remarques à greg.wierzchowski@usa.net.

2. CD audio

2.1. Préparation des pistes

[Note]Note

Toutes les commmandes sont adaptées pour Bash.

  1. Rassembler tous les fichiers MP3 dans un répertoire.

  2. Si vos fichiers MP3 proviennent de DOS/Windows, ils doivent avoir des extensions en majuscule. Vous pouvez convertir tout le nom du fichier en minuscule, ou simplement l'extension. Pour mettre tout en minuscule, taper :

    for i in *.[Mm][Pp]3; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done

    pour convertir les extensions :

    for i in *.MP3; do mv "$i" "`basename "$i" .MP3`.mp3"; done
  3. Si quelques fichiers contiennent des espaces, les convertir en 'underscore' (_):

    for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done
  4. Convertir ces fichiers en WAV avec la commande :

    for i in *.mp3; do mpg123 -w `basename $i .mp3`.wav $i; done

    Quand vous décodez des fichiers MP3 échantillonnés à 22kHz, en sortie de mpg123, le son peut être déformé. Pour remédier à cela :

    for i in *.mp3; do mpg123 --rate 44100 --stereo --buffer 3072 --resync -w `basename $i .mp3`.wav $i; done

    Mpg123 doir être présent dans n'importe quelle distribution Linux, mais si vous ne le possédez pas, vous pouvez l'obtenir ici : http://www.mpg123.de/.

    NOTE : J'ai remarqué qu'avec quelques fichiers MP3, mpg123 rendait un son distordu. J'ai d'abord pensé que les MP3 étaient de mauvaise qualité, mais je les ai testés avec un autre lecteur, et il n'y avait pas de problème. J'ai alors cherché un autre lecteur de MP3 capable de les convertir en WAV, et j'ai trouvé celui-ci : MAD mp3 decoder disponible à http://www.underbit.com/products/mad/. Avec madplayer, la ligne de commande est :

    for i in *.mp3; do madplay -o `basename $i .mp3`.wav $i; done

    Il y a un autre moyen de réaliser cette conversion. Quelques fichiers MP3 décodés semblent apparement présenter des troubles aussi bien avec mpg123 que avec madplay. Le décodeur lame, qui possède un mode de décodage, semble très bien gérer les cas difficiles (lame peut être obtenu à http://lame.sourceforge.net) :

    for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done

    NOTE : La commande `basename $i .mp3`.wav remplace les extensions MP3 en WAV. Il y a 101 façons de le faire, en voici une : `echo "$1" | sed 's/\.mp3$/.wav/'`

  5. Exécuter "file *.wav" et noter les fichiers dont les caractéristiques s'affichant diffèrent de 16 bits, stéréo, 44100Hz

  6. Si des fichiers présentent des caractéristiques différentes, les convertir avec les spécifications ci-dessus. Par exemple, pour convertir le fichier piste01.wav afin d'obtenir une fréquence d'échantillonnage de 44,1Khz, vous pouvez utiliser :

    sox track01.wav -r 44100 piste01-new.wav resample

    Où, si la commande ci-dessus introduit des parasites durant la conversion de fichiers mono :

    sox track01.wav -r 44100 -c 2 piste01-new.wav

    Sox est tellement populaire qu'il est certainement installé par défaut dans toutes les distributions Linux, et peut être obtenu à l'adresse suivante : http://www.spies.com/Sox/. Cependant, les options en ligne de commande sont quelque peu hardues à comprendre pour un utilisateur débutant (moi), aussi, regarder à http://www.spies.com/Sox/sox.tips.html pour des astuces sur l'utilisation.

  7. Normaliser vos fichiers WAV afin d'éviter des différences trop importantes entre les niveaux de volume sonore. J'utilise un programme de Chris Vaill (), appelé normalize - il peut être obtenu depuis http://www.cs.columbia.edu/~cvaill/normalize/.

    J'utilise la syntaxe suivante (-m est utilisé pour le mode mixage pour lequel le son des fichiers doit être aussi fort que possible) :

    normalize -m *.wav

2.2. Graver vos CD

On trouve beaucoup de programmes pour créer des CD à partir de fichiers WAV. J'utilise cdrecord pour graver en ligne de commande, et XCDROAST pour le mode graphique. Pour cdrecord, vous devez savoir quel périphérique SCSI est votre graveur. Si vous utilisez un graveur ATAPI, utilisez l'émulation SCSI (module ide-scsi du noyau). Disons que votre graveur ATAPI est sur le second bus IDE, en position maître. Par conséquent, il doir exister un fichier /dev/hdc. Pour préciser au noyau que l'on veut considérer ce périphérique comme du SCSI, ajoutez la ligne suivante dans le fichier /etc/lilo.conf :

append=" hdc=ide-scsi"

Aussi, si votre noyau ne charge pas automatiquement le module ide-scsi, il faut ajouter insmod ide-scsi dans votre fichier rc.local (ou un équivalent). Une fois que votre graveur est reconnu comme étant un périphérique SCSI, lancez cdrecord --scanbus pour voir quels sont les paramètres de votre périphérique. Sur ma machine, l'exécution de la commande m'affiche les informations suivantes :

	scsibus1:
	1,0,0 100) 'IOMEGA ' 'ZIP 250 ' '51.G' Removable Disk
	1,1,0 101) 'HP ' 'CD-Writer+ 7100 ' '3.01' Removable CD-ROM
      

Alors, la commande cdrecord devra contenir dev=1,1,0 pour spécifier quel périphérique utiliser. Voici la commande complète sur mon système :

cdrecord dev=1,1,0 -eject speed=2 -pad -audio *.wav
[Note]Note

L'option -pad est necessaire car toutes les pistes sur le CD audio doivent être ajustées à la valeur correcte des données, ce qui n'est pas toujours le cas avec les fichiers MP3.

2.3. Graver un CD en DAO

DAO, (Disc-At-Once, NdT : cela signifie que la gravure s'effectue sans que le laser ne fasse de pause), est à l'heure actuelle la seule méthode pour graver un CD sans la pause de 2 secondes entre les pistes. C'est très utile pour réaliser des mixages pour des soirées. Le programme cdrdao, est disponible depuis SourceForge, http://sourceforge.net/projects/cdrdao/.

Le programme cdrdao utilise un fichier de description appelé TOC (Table Of Contents soit Table Des Matières). Il y a deux moyens de créer un tel fichier. Le premier consiste à utiliser un script shell fourni avec les sources de cdrdao dans le répertoire contrib), appelé generate_toc.sh. Il prend une liste de fichiers .wav en paramètre, et crée un fichier cd.toc. Le deuxième moyen est de créer un fichier semblable, à la main, avec l'éditeur de votre choix. Voici un exemple qui parle de lui-même :

	CD_DA
	
	TRACK AUDIO
	AUDIOFILE "mix-01.wav" 0
	
	TRACK AUDIO
	AUDIOFILE "mix-02.wav" 0
	
	TRACK AUDIO
	AUDIOFILE "mix-03.wav" 0
	
	TRACK AUDIO
	AUDIOFILE "mix-04.wav" 0
	
	TRACK AUDIO
	AUDIOFILE "mix-05.wav" 0
      

Le 0 (zéro) après le nom des fichiers wav signifie : démarrer depuis le début du fichier. Il peut y avoir un second nombre qui indique la taille (en temps) du fichier à graver. Xcdroast crée le même fichier TOC, on trouve des exemples dans le répertoire testtocs des sources de cdrdao.

Cdrdao utilise par défaut le périhérique /dev/cdrecorder, qui doit être un lien vers le graveur. Si le fichier de votre périphérique est /dev/scd0, créer le lien symbolique (en tant que root) de la façon suivante :

ln -s /dev/scd0 /dev/cdrecorder

Admettons que votre fichier TOC soit nommé cd.toc, la commande pour graver le CD est simple :

cdrdao write cd.toc

2.4. Logiciel

Il y a de nombreux logiciels disponibles, ils peuvent automatiser le processus de création de CD à partir de fichiers MP3. Voici une liste non exhaustive de programmes disponibles :

3. CD de données

[Note]Note

Cette section est en cours de réalisation, vous avez devant-vous une version initiale, très épurée.

Avec la popularité croissante des lecteurs de CD/MP3, graver de CD de données pour les écouter devient aisé. L'avantage est sans nul doute d'insérer dix fois plus de temps de musique dans un CD (de façon approximative). Pour obtenir un CD de données contenant des MP3, il faut un simple CD standard de données (ISO9960) avec pour simple fichiers, des MP3. Tous les lecteurs de CD-MP3 que je connais acceptent des CD avec des répertoires à l'intérieur, et je grave en général mes CD avec l'extension Joliet (NdT : pour accepter les noms longs), et cela marche très bien. Donc, pour graver un tel CD sous Linux, vous avez besoin dans un premier temps de créer une image ISO, et de la graver sur le CD, comme décrit dans l'exemple ci-dessous :

      mkisofs -J -o /tmp/mymp3s.iso /home/greg/mp3s/
      cdrecord dev=1,0,0 speed=16 /tmp/mymp3s.iso
    

Et c'est tout !

Je recherche maintenant la technique pour normaliser des fichiers MP3 directement - cependant, je crois que cela nécessitera à chaque fois une décompression, une normalisation, et une recompression, ce qui engendrera une perte de qualité. Restez donc à l'écoute !

4. Crédits

Un grand merci à toutes les peronnes qui contribuent à la Communauté Linux et qui ont rendu la création de ce HOWTO possible.

4.1. Traductions

4.2. Autres Crédits

  • Greg Ferguson - qui à initialement converti ce document HTML en SGML.

  • Rob Russell - qui à corrigé mes noms d'exemples concernant la conversion.

  • Terry Davis - qui m'a suggéré de soumettre ce HOWTO à Linuxdoc.

  • Chris Vaill - le créateur du programme normalize.

  • Jamie Kellogg - qui m'a soumis une solution de décodage avec lame pour les fichiers présentant des troubles.

  • Tom Panning - qui à proposé une astuce pour convertir des fichiers mono avec sox.

  • Adam Buckley - qui à suggéré une idée pour les fichiers avec les extensions en majuscule.

  • Ilia Lobsanov - qui à fournit les options pour décoder les fichiers échantillonés à 22kHz avec mpg123.