Retrouvez cet article dans : Linux Pratique 39
Dans le numéro précédent, vous avez appris les bases de la gravure de CD et DVD, mais nous nous étions limités aux données. Nous allons maintenant aborder les commandes requises pour la création de CD audio.
Introduction
Insérez un CD vierge dans votre graveur CD. Sur un bureau Gnome devrait apparaître une fenêtre vous demandant si vous souhaitez graver un CD de données ou un CD audio. Un clic sur la gravure d'un CD de données vous dirige vers le créateur de CD de votre explorateur Nautilus si vous l'avez installé. C'était l'objet de l'article précédent.
Cliquez maintenant sur la gravure d'un CD audio et le logiciel de gravure Serpentine (si vous l'avez installé) devrait se lancer. Pourquoi cette différence alors que la plupart des environnements disposent d'un logiciel permettant de tout graver (par exemple KDE et son puissant K3b) ? Tout simplement car un CD de données et un CD audio n'ont de commun que le support : le CD. Leur format est différent. Sans aller plus loin, vous pouvez compter le nombre de pistes, qui est systématiquement 1 (sauf exceptions) pour un CD de données et autant que de chansons sur un CD audio.
Serpentine
L'interface de Serpentine est rudimentaire. Cela est normal : il s'agit d'indiquer une liste de pistes audio à graver puis de lancer la gravure. À tâche simple, logiciel simple !
Fig. 1 : L'écran principal de Serpentine, le graveur de CD audio pour l'environnement Gnome
Cette interface contient une liste de fichiers initialement vide, les boutons Ajouter et Enlever, et celui pour graver. En ligne de commandes, tout cela s'effectue en une seule opération avec le logiciel cdrecord que nous avions vu dans le numéro précédent :
|
|
cdrecord speed=10 dev=/dev/hdc -dao driveropts=burnfree -v -copy -audio -pad piste1.wav -copy -audio -pad piste2.wav ... -copy -audio -pad pisteN.wav |
De façon plus lisible, vous pouvez écrire un petit script dans lequel vous pouvez remplacer certaines espaces par le caractère \ suivi d'un retour à la ligne :
|
|
#! /bin/sh
cdrecord speed=10 dev=/dev/hdc -dao driveropts=burnfree -v \
-copy -audio -pad piste1.wav \
-copy -audio -pad piste2.wav \
...
-copy -audio -pad pisteN.wav |
Dans cette ligne de commande, vous indiquez donc la vitesse de gravure, qui est de 10x ici (speed=10). Cette option est facultative : sans précision de votre part, c'est la valeur par défaut qui est prise en compte. Est défini également le périphérique correspondant au graveur (ici /dev/hdc). Sans reprendre le précédent article, sachez que vous pouvez l'obtenir avec la commande lshal. Nous vous rappelons que vous devez y chercher une ligne contenant à la fois info.capabilities et storage.cdrom. Dans ce bloc, vous y trouvez également une ligne commençant par block.device qui vous indique le périphérique de votre graveur.
Dans le précédent article, nous avions parlé du mode Disk-At-Once dit " DAO " et du Track-At-Once dit " TAO ". Autant dans un CD de données cette notion a peu d'importance, car ne s'y trouve qu'une seule piste, autant elle prend toute son ampleur avec un CD audio. En effet, en mode TAO, le graveur grave piste par piste, et y insère deux secondes de blanc entre chacune d'elle. En mode DAO, le CD est gravé en une seule fois, ce qui permet d'éviter cette zone de blanc, surtout si vous gravez l'enregistrement d'un concert ! C'est l'intérêt de l'option -dao.
De façon facultative, vous pouvez demander au graveur d'aller jusqu'au bout du CD, même si ce que vous y gravez est plus court. L'option s'appelle driveropts=burnfree. Vous pouvez également rendre cdrecord un peu plus bavard avec l'option -v.
Enfin, le plus important arrive : vous indiquez les pistes audio en faisant précéder les noms des fichiers WAV par -audio. Attention : vous ne pouvez pas graver autre chose que des fichiers WAV ! Vous devez les convertir si vous avez en votre possession des fichiers ogg, mp3 ou autres. Serpentine effectue d'ailleurs cette conversion puisqu'il accepte ce genre de fichiers, sujet que nous approfondissons plus loin. De plus, vos fichiers WAV doivent avoir un format spécifique : échantillonnage à 44100 Hz, taille multiple de 2352 octets et 705600 octets... Si vos fichiers n'ont pas une taille multiple de 2352 octets, il est possible de s'en sortir facilement avec l'option -pad que nous avons précisée partout ci-dessus par précaution. Pour la taille, faites un effort, gravez un minimum de musique, quand même ! Quant à l'échantillonnage, nous y reviendrons plus loin.
Pour chaque piste, que vous faites précéder de -audio, vous pouvez également positionner un drapeau avec l'option -copy indiquant que cette piste pourra être copiée sans limitations. Inversement, avec l'option -nocopy, une seule copie sera possible. Cela ne vous fait-il pas penser à la façon dont certains disques sont protégés ? Et le sont-ils vraiment si vous activez cette option ? Par précaution, choisissez -copy.
Convertir en WAV
Comme nous l'avons vu, Serpentine accepte divers formats audio, en particulier le WAV bien sûr, puisqu'il s'agit du format requis par cdrecord, mais aussi MP3 ou OGG. C'est Serpentine qui se charge de la conversion, et ce, en toute transparence pour vous (à part le temps que cela prend).
En ligne de commande, vous devez fournir du format WAV à cdrecord et personne ne va convertir quoi que ce soit pour vous. Vous pourriez choisir un convertisseur graphique, mais à quoi bon puisque cet article vise à vous montrer comment faire en ligne de commandes. Pour convertir un MP3 en WAV, nous vous proposons l'utilitaire
mpg321. Voici un exemple qui convertit le fichier
piste1.mp3 en
piste1.wav :
|
|
$ mpg321 --wav piste1.wav piste1.mp3 |
L'utilitaire mpg321 se trouve généralement dans le paquet (.rpm ou .deb) du même nom.
Quand il s'agit d'un fichier OGG à convertir, nous avons oggdec à notre disposition. Il fait généralement partie du paquet ayant pour nom vorbis-tools ou similaire. Voici comment l'utiliser pour convertir piste2.ogg en piste2.wav :
|
|
$ oggdec -Q -o piste2.wav piste2.ogg |
Nous avons indiqué l'option -Q afin que la sortie soit silencieuse. Si vous préférez un mode bavard qui affiche entre autres le pourcentage de progression, n'indiquez pas cette option.
Si vous disposez de DVD (contenant des fichiers VOB) ou tout simplement des pistes .mpeg, vous pouvez également en extraire les pistes audio. Nous avons essayé avec mplayer et la commande suivante :
|
|
$ mplayer VTS_01_1.VOB -ao pcm:waveheader:file=vts_01_1.wav -af resample=44100:0:2 -vc null -vo null |
Cette commande joue la vidéo, mais avec le codec vidéo null ! En d'autres termes, nous ne jouons que l'audio. Le codec de celui-ci est pcm avec les options waveheader pour indiquer à mplayer qu'il devra placer un en-tête dans le fichier et file=vts_01_1.wav qui définit le fichier dans lequel l'audio sera joué.
Nous avons vu plus haut que le format du fichier WAV n'est pas n'importe lequel. En particulier, la fréquence d'échantillonnage doit être de 44100 Hz. Or, les DVD et nombreuses vidéos ont une fréquence plus élevée : 48000 Hz. Il faut donc demander à mplayer de ré-échantillonner, et ce, avec le filtre resample que vous indiquez avec l'option -af. Il est suivi de cette fameuse fréquence nécessaire, 44100, puis de deux options. La première, 0, indique qu'aucun écart de fréquence n'est toléré. La seconde indique le niveau de qualité (qui impacte sur la vitesse de ré-échantillonnage) souhaité. La valeur 0 permet d'aller plus vite. La valeur 2 donne une meilleure qualité.

Dupliquer un CD audio
Pour dupliquer un CD audio, le meilleur moyen est d'en extraire les pistes. Le manuel de cdrecord propose la commande suivante (dont nous avons retiré l'option
cddb=0, non documentée) :
|
|
$ cdda2wav dev=2,0 -vall -B -Owav |
Les options sont les suivantes :
- dev : le périphérique correspondant au lecteur CD (même syntaxe que pour cdrecord) ;
- -vall : rend l'outil bavard au point de tout (all) afficher ;
- -B : extrait chaque piste dans un fichier WAV différent ;
- -Owav : indique le format audio de chaque piste.
Il existe un autre outil,
cdparanoia, qui permet d'obtenir de meilleurs résultats pour les disques ayant subi les épreuves du temps (et les rayures du petit chaton qui jouait au freesbee avec vos CD). Nous l'utilisons ainsi :
|
|
$ cdparanoia -d /dev/hdc --output-wav -B |
Cette commande va créer autant de fichiers que de pistes (option
-B) qui seront au format WAV (option
--output-wav), et qui s'appelleront
track01.cdda.wav,
track02.cdda.wav et ainsi de suite.
Ensuite, il ne vous reste plus qu'Ã graver les fichiers WAV comme nous l'avons vu ci-dessus.

Encoder en ogg ou mp3
Nous venons de voir implicitement comment ripper un CD, c'est-Ã -dire en extraire les pistes audio avec la ligne de commandes. Il serait tentant d'aller plus loin et de voir comment les compresser en
.ogg ou en
.mp3 en ligne de commandes comme le font de nombreux logiciels.
Ceci n'étant pas l'objet de l'article, nous nous limiterons à vous proposer de vous renseigner sur
oggenc (qui fait partie des
vorbis-tools) et sur
lame.
Conclusion
Nous avons fait le tour des différentes façons de graver un support, qu'il soit DVD ou CD, qu'il soit audio, dans ce numéro, ou de données, dans le précédent. A l'usage, les logiciels comme CD Burner, Serpentine ou K3B peuvent être plus intéressants, car vous pouvez visualiser au fur et à mesure que vous le composez, le CD ou DVD que vous allez créer.
Inversement, la ligne de commandes vous permettra de réfléchir davantage à ce que vous voulez faire, sans vous laisser perturber par l'ensemble des fonctionnalités offertes par le logiciel graphique. Enfin, lorsque vous utilisez la ligne de commandes, vous pouvez plus aisément garder une trace des commandes que vous tapez, afin de les reproduire plus tard. Il est tellement pratique de créer un CD de photos à la fois rapidement et similaire au précédent, rien qu'en réutilisant les mêmes lignes de commandes...