Linux MP3 HOWTO <author>Philip Kerr <htmlurl url="mailto:phil@websentric.com" name="phil@websentric.com">, traduction Arnaud Gomes-do-Vale <htmlurl url="mailto:arnaud@carrosse.frmug.org" name="arnaud@carrosse.frmug.org"> <date>v1.10, Septembre 1999 <abstract> Ce document décrit le matériel, les logiciels et les procédures à suivre pour créer et écouter des fichiers son <em/MP3/ sous Linux. </abstract> <toc> <sect>Introduction <p> Ce document décrit le matériel, les logiciels et les procédures à suivre pour créer et écouter des fichiers son <em/MP3/ sous Linux. <sect>Copyright <p> Ce HOWTO est © Philip Kerr, 1999. Sauf indication contraire, les droits d'auteur des HOWTO Linux sont détenus par leurs auteurs respectifs. Les HOWTO Linux peuvent être reproduits et distribués, en totalité ou en partie, sur tout média physique ou électronique dans la mesure où ce copyright est préservé dans chaque copie. La distribution commerciale en est autorisée et encouragée. L'auteur apprécierait toutefois qu'on lui notifie individuellement ce genre de distribution. Le présent copyright doit couvrir toute traduction, compilation et autre travail dérivé des HOWTO Linux. C'est-à-dire qu'il est interdit d'imposer des restrictions de diffusion allant au delà du présent copyright à des ouvrages inspirés, ou incorporant des passages, de HOWTO Linux. Sous certaines conditions, des exceptions à ces règles seront tolérées : contactez le coordinateur des HOWTO à l'adresse donnée ci-dessous. Pour résumer, nous souhaitons une diffusion aussi large que possible de ces informations. Néanmoins, nous entendons garder la propriété intellectuelle (copyright) des HOWTO, et apprécierions d'être informés de leur redistribution. Pour toute question plus générale, merci de contacter le coordinateur des HOWTO, Tim Bynum, à l'adresse électronique <htmlurl url="mailto:linux-howto@metalab.unc.edu" name="linux-howto@metalab.unc.edu">. <sect>Où trouver ce document <p> La dernière version officielle de ce document se trouve sur le site du Linux Documentation Project <url url="http://metalab.unc.edu/LDP/">. La dernière version française se trouve à <url url="http://www.freenix.org/linux/HOWTO/">. <sect>Remerciements <p> Lors de l'écriture de ce document, je me suis largement inspiré du <em/Sound-HOWTO/ de Jeff Tranter et du <em/Sound-Playing-HOWTO/ de Yoo C. Chung. Merci également aux autres auteurs de HOWTO, au travail desquels je me réfère: <itemize> <item><em/Linux System Administrators Guide/ de Lars Wirzenius <item><em/Linux Network Administrators Guide/ d'Olaf Kirch <item><em/Multi Disk System Tuning HOWTO/ de Stein Gjoen </itemize> <sect1>Dénégation <p> Vous utilisez les informations contenues dans ce document à vos propres risques. Nous déclinons toute responsabilité quant à son contenu. L'utilisation des concepts, des exemples ou de tout autre contenu se fait entièrement à vos propres risques. Tous les droits sont détenus par leurs propriétaires respectifs, sauf mention contraire explicite. L'utilisation d'un terme dans ce document ne constitue pas une limitation à sa validité en tant que marque. Le fait de citer un produit ou une marque particulière ne constitue pas une adhésion. Il est fortement conseillé d'effectuer une sauvegarde de votre système avant une installation importante ainsi qu'à intervalles réguliers. <sect>Matériel nécessaire et influence sur les performances <p> Le traitement de son numérique est une tâche qui demande beaucoup de ressources, notamment en termes de puissance de calcul et d'entrées/sorties. Je recommande fortement une machine de type Pentium au minimum. Si vous voulez produire des MP3 à partir d'une source analogique, une carte son PCI donnera les meilleurs résultats. La différence de performance entre les E/S d'une carte ISA et celles d'une carte PCI sont importantes (environ 132 Mbps pour du PCI, d'après le <em/PCI-HOWTO/). Naturellement, meilleur est le rapport signal/bruit de la carte, meilleur est le MP3 produit. J'ai utilisé une Soundblaster PCI128, et je suis récemment passé à une Soundblaster Live Value. Les deux cartes ont de bonnes performances, mais la Live a un rapport signal/bruit sensiblement meilleur, assez bon pour un usage semi-professionnel. Souvenez-vous de la vieille maxime du traitement de données: si vous partez de déchets, vous obtiendrez des déchets. Lorsque vous enregistrez du son directement sur un disque dur (enregistrement d2d, direct-to-disk), les performances du disque et de son interface sont primordiales. Si vous utilisez un système basé sur de l'IDE, le mode 4 ou l'UDMA sont préferables, dans la mesure où ils ont un débit presque acceptable. La solution idéale reste un système à base de SCSI, dont les disques et les interfaces ont un bien meilleur débit, de 5 Mo/s pour le SCSI-1 à 80 Mo/s pour le SCSI ultra-wide. L'IDE peut aller jusqu'à des vitesses variant de 8,3 Mo/s à 33 Mo/s pour l'Ultra-ATA, mais il s'agit de crêtes, les débits moyens seront plus faibles. Si vous pouvez trouver ou vous offrir un disque SCSI AV, allez-y. Les disques AV ont des têtes de lecture/écriture optimisées pour les transferts continus de données; les autres disques SCSI et IDE ne peuvent normalement soutenir un transfert de données car leurs têtes chauffent trop ! <!-- NdT: Il semble y avoir une confusion entre Mo/s et Mbps dans la VO. J'espère ne pas m'être trompé en corrigeant. --> Naturellement, un disque équipé de cache donnera des résultats plus homogènes, vu que le cache peut servir de tampon lorsque les têtes se déplacent ou ne peuvent pas soutenir le débit. Si votre disque n'est pas à la hauteur, vos enregistrements seront parsemés de coupures et d'erreurs lorsque le disque n'arrivera pas à enregistrer le signal. Si vous enregistrez des événements uniques, comme des concerts, investissez dans un bon système disque SCSI. Une charge système élevée peut aussi causer des coupures dans des enregistrements d2d. Des tâches de fond peuvent momentanément occuper le système. Il vaut mieux réduire les services au minimum vital, particulièrement les services réseau. Pour plus d'informations à propos des services réseau et des scripts de démarrage, reportez-vous au <em/SAG/ et au <em/NAG/. La pagination de la mémoire virtuelle peut aussi provoquer des erreurs, donc mettez le plus de mémoire physique possible. Je recommande au moins 32 Mo, mais vous pouvez avoir besoin de plus. Pour ceux qui veulent tirer le maximum de leur système, optimiser le noyau ne fera probablement pas de mal. Alors que le matériel ci-dessus vous donnera un système acceptable pour encoder des données sonores, ne négligez pas l'emploi de matériel plus ancien et moins performant si c'est tout ce à quoi vous avez accès. La configuration d'un système bas de gamme pour donner de bons résultats sera un défi intéressant pour un administrateur système, et le résultat sera probablement une machine Linux plus heureuse. Un autre point important est la connectique. Des cãbles et des connecteurs bon marché et de mauvaise qualité donneront un enregistrement de mauvaise qualité. Si votre carte le permet, utilisez des connecteurs phono (RCA). Des contacts plaqués or aideront aussi à obtenir un son de bonne qualité. Enfin, séparez bien les câbles audio des câbles transmettant d'autres données pour éviter les risques d'interférences. Mais n'oubliez pas, une fortune dépensée en câbles sera perdue si le reste du système n'est pas optimisé. Pour encoder des MP3 depuis un CD-ROM, la vitesse et le type du lecteur déterminent le temps nécessaire à l'extraction des informations. Un lecteur simple vitesse est probablement trop lent sauf pour les plus patients. Votre lecteur de CD-ROM doit être connecté à votre carte son, ou bien au moyen du connecteur interne, ou bien en branchant la sortie casque du lecteur sur l'entrée ligne de la carte son. Pour des informations détaillées sur la configuration des cartes son, lisez le <em/Sound-HOWTO/. <sect>Logiciels nécessaires <label id="logiciels"> <p> La conversion de son en MP3 se fait normalement en deux étapes. D'abord, le son est enregistré au format WAV, puis le WAV est converti en MP3. Le support du son que vous voulez encoder, CD ou enregistrement direct, déterminera les logiciels nécessaires à la production du fichier WAV. Si vous voulez enregistrer depuis une source sonore, vous aurez besoin d'un programme pour lire les données sur l'entrée de votre carte son et les sauvegarder au format WAV. Voici quelques logiciels utiles. <em/Wavrec/ Wavrec fait partie du paquetage Wavplay, qui peut être téléchargé sur : <url url="ftp://metalab.unc.edu/pub/Linux/apps/sound/players/"> Pour convertir des CD audio au format WAV (extraction de CD) : <em/CDDA2WAV/ <url url="http://metalab.unc.edu/pub/Linux/apps/sound/cdrom/"> <em/Cdparanoia/ <url url="http://www.xiph.org/"> Pour convertir les fichiers WAV au format MP3 : <em/Blade's MP3 Encoder/ <url url="http://bladeenc.cjb.net"> Pour lire les MP3, il vout faut un lecteur : <em/Xmms (anciennement X11Amp)/ <url url="http://www.xmms.org"> <em/Xaudio/ <url url="http://www.xaudio.com"> Vous aurez peut-être également besoin d'un mixeur ; Xmixer, inclus dans la plupart des distributions, fonctionne bien. <sect>Configuration du système <p> Cette section décrit les bases de la configuration de Linux en vue de l'enregistrement de son depuis une source analogique ou un CD audio. J'ai pris comme base mon système Intel sous Red Hat 5.2, mais cette section devrait être raisonnablement indépendante de la distribution utilisée. Je traiterai prochainement de la plate-forme Sparc. Si ce HOWTO vous est utile avec d'autres types de matériel, merci de me contacter. Naturellement, une carte son en état de marche est un pré-requis raisonnable. Pour cela, je vous invite à lire l'excellent <em/Linux Sound HOWTO/ de Jeff Tranter et le <em/Linux Sound Playing HOWTO/ de Yoo C. Chung. Ces deux HOWTO décrivent l'art et la manière de configurer le son sous Linux beaucoup mieux que je ne saurais le faire. <sect1>Configuration pour la capture d'une source analogique <p> Pour commencer, configurez votre équipement audio. Il existe de multiples façons d'amener le son jusqu'à votre machine Linux. Voici les plus communes : Sortie ligne vers entrée ligne. La plupart des appareils audio ont une sortie ligne. Le niveau ligne est un standard précisant la tension et l'intensité du courant émis par l'appareil. Si je me souviens bien, l'intensité est de 500 mA pour les équipements domestiques et semi-pro et 750 mA pour les équipements pro. Je suppose que la plupart des cartes son utilisent le standard à 500 mA, mais certaines cartes pro récentes peuvent utiliser l'autre. La différence ne devrait pas être trop importante si vous n'enregistrez pas à un volume très important. La sortie ligne est généralement utilisée pour connecter des équipements hi-fi à un amplificateur, donc les tuners radio et les platines cassette, CD, DAT, Mini-Disc et autres devraient pouvoir se brancher sans problème. Les tourne-disques peuvent être plus embêtants; voir ci-dessous pour en savoir plus. Vous pouvez aussi capturer du son depuis un magnétoscope. La plupart des magnétoscopes ont une sortie ligne, ou vous pouvez obtenir un signal au niveau ligne depuis une prise péritel si votre magnétoscope en est équipé. Sortie d'amplificateur vers entrée ligne, sortie ligne vers entrée cassette sur l'amplificateur. Essentiellement, vous remplacez la platine cassette reliée à votre ampli hi-fi par votre système Linux. Le lien entre la sortie ligne et l'entrée de l'ampli permet de contrôler le niveau de l'enregistrement. Micro sur entrée micro. Le courant généré par un microphone est beaucoup plus faible que le niveau ligne. Si vous branchez votre micro sur votre entrée ligne, vous n'enregistrerez probablement jamais rien. <em/Attention/, l'inverse, brancher la sortie ligne d'un appareil sur l'entrée micro, peut endommager votre carte son ! Tourne-disques sur entrée micro. Hélas, je ne dispose pas d'informations à ce sujet pour le moment. Si je me souviens bien, le tourne-disques devrait être branché sur l'entrée micro, vu qu'il utilise un mécanisme similaire et des courants comparables. Les claviers et synthés doivent être branchés sur l'entrée ligne, et les guitares sur l'entrée ligne via une boîte de direct (DI box, utilisée pour convertir le signal au niveau ligne). Avant de brancher quoi que ce soit sur votre carte son, assurez-vous que le volume est reglé au minimum et que les éventuels micros ne sont pas tournés vers les haut-parleurs. <sect1>Configuration pour l'extraction de son depuis un CD <p> Configurer votre système Linux pour extraire le son d'un CD avec votre lecteur de CD-ROM est relativement simple. Si vous pouvez écouter un CD audio avec votre lecteur branché sur votre carte son, il y a des chances que vous puissiez l'enregistrer. <!-- NdT: Pas évident de le faire simplement. Certains lecteurs ne connaissent pas le format CDDA, et donc ne peuvent pas extraire des CD audio, à moins de ruser. --> <sect1>Configuration additionnelle <p> Logez-vous normalement sur votre système, puis utilisez un programme mixeur pour regler des niveau d'enregistrement assez forts pour avoir un son décent, mais pas trop pour éviter la distorsion. Normalement, j'évalue ça à l'oreille ; après quelques temps, vous connaîtrez le meilleur niveau pour votre système. Je recommande ou bien d'arrêter tous les services non indispensables, ou bien de passer en mode utilisateur seul, en particulier si vous enregistrez depuis une source extérieure. Cela assure que seuls un nombre minimum de services fonctionnent, et donc que les erreurs d'enregistrement sont réduites au minimum. J'ai réservé un disque SCSI à l'enregistrement du son. J'y ferai référence comme <tt>/mnt/mp3</>. J'ai fait cela principalement pour le gain de performances apporté par un disque SCSI. De plus, enregistrer sur un disque séparé, dont vous savez que la tête ne va pas tout à coup se déplacer à l'autre bout du disque pendant que vous êtes en train d'enregistrer, est une Bonne Chose. :-) Pour les détails de la configuration d'un système Linux avec plusieurs disques, la lecture du <em/Multi-Disk-HOWTO/ de Stein Gjoen peut être utile. <sect>Encodage depuis une source audio <p> Premièrement, assurez-vous que vous avez suffisamment de place sur votre disque dur. Pour un enregistrement de qualité CD (44,1 kHz, 16 bits, stéréo), une minute prend près de 5 Mo. <!-- NdT: Chez moi, en extrayant directement le son d'un CD, c'est plus proche de 10 Mo que de 5. --> En général, j'enregistre avec une qualité DAT, 48 kHz, 16 bits, stéréo. Avec <tt/wavrec/, j'utilise la syntaxe suivante: <tscreen><verb> /usr/local/bin/wavrec -t 60 -s 48000 -S /mnt/mp3/temp.wav </verb></tscreen> La première partie est le chemin d'accès explicite de <tt/wavrec/. le <tt/-t 60/ précise la durée de l'enregistrement en secondes. l'option <tt/-s 48000/ donne la fréquence d'échantillonnage en bits/s (la fréquence du DAT est 48000, celle du CD, 44100). La dernière option indique le fichier de sortie. Pour voir la liste complète des options, lancez <tt/wavrec -help/ ou lisez le manuel. Ceci va produire un fichier WAV. Ensuite, vous allez devoir l'encoder au format MP3. Utilisez <tt/bladeenc/ avec la ligne de commande suivante. <tscreen> /usr/local/bin/bladeenc <em/[fichier source] [fichier destination]/ -br 256000 </tscreen> L'option <tt/-br/ précise la fréquence. En l'occurrence, je l'ai reglée au maximum: 256 kbits/s. Le chemin d'accès de <tt/bladeenc/ peut aussi être différent sur votre système de celui de mon exemple. Pour voir la liste des options, lancez <tt/bladeenc -help/. En fait, il s'agit d'une option invalide, mais cela va afficher la liste des options. <sect>Encodage depuis un lecteur de CD-ROM <p> Là encore, vérifiez que vous avez suffisamment de place sur votre disque dur. J'ai écrit un petit script Perl pour extraire et encoder des pistes d'un CD. <tscreen><code> #!/usr/bin/perl if ($ARGV[0] ne "") { $count = 1; do { $cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav"); $track = "$ARGV[1]/track".$count.".mp3"; $benc = system("bladeenc /tmp/cdda.wav $track -br 256000"); $count++; } until $count > $ARGV[0]; exit; } else { print "Usage cdriper [nombre de pistes] [répertoire cible]\n\n"; } </code></tscreen> La ligne intéressante est <tscreen><verb> $cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav"); </verb></tscreen> Cette ligne appelle l'extracteur de CD audio, <tt/cdparanoia/, qui convertit les données brutes extraites d'un CD en fichier WAV. Les options sont <tt/$count/ (le nombre de pistes à extraire), puis le chemin d'accès des fichiers WAV produits. Dans mon exemple, il d'agit d'un répertoire <tt/tmp/ sur mon disque réservé aux MP3. Les fichiers WAV sont ensuite convertis en MP3 avec <tt/bladeenc/. J'ai écrit ce script pour extraire tout un CD sans devoir extraire et encoder chaque piste séparément, et sans utiliser le traitement par lots de <tt/cdparanoia/, qui extrait tout le disque, ce qui peut occuper jusqu'à 600 Mo. Remarquez que ce script est très simple et ne s'embarrasse pas de détails comme la récupération d'erreurs. Vous êtes libre de l'améliorer. :-) <sect>Lire des MP3 <p> Maintenant, vous devriez avoir quelques fichiers MP3 prêts à lire. Les deux lecteurs MP3 les plus appréciés sous Linux sont Xaudio et <tt/xmms/ (anciennement <tt/x11amp/). J'ai donné des liens vers leurs sites web dans la section <ref id="logiciels" name="Logiciels nécessaires">. Pour l'écriture de ce HOWTO, je me suis appuyé sur Xaudio, principalement parce qu'il est utilisable avec ou sans X. Ce logiciel est un partagiciel. Il s'agit en fait d'un ensemble de programmes, dont les plus intéressants pour nous sont <tt/xaudio/ et <tt/mxaudio/. Après l'avoir installé sur votre système, vous avez le choix entre utiliser la version en ligne de commande <tt/xaudio/ ou la version X <tt/mxaudio/. L'interface de <tt/mxaudio/ est agréable et simple à utiliser. La liste des options de <tt/xaudio/ peut être obtenue avec l'option <tt/-help/ (<tt/xaudio -h/). Pour lire un fichier, utilisez <tt/xaudio fichier.mp3/. Pour lire le contenu d'un répertoire, <tt/xaudio *.mp3/. Les deux programmes sont accompagnés de fichiers <tt/README/. <sect>Retours <p> De nouveaux matériels et logiciels sortent sans cesse. Si vous utilisez des versions plus récentes du matériel et/ou des logiciels décrits dans ce HOWTO, ou si vous pouvez ajouter quoi que ce soit, envoyez-moi vos informations à <htmlurl url="mailto:phil@websentric.com" name="phil@websentric.com"> pour que je les rajoute à la prochaine version. Bons MP3 ! </article>