jzu.free.fr
Home
Mirage
Knouts
Tubes
Dazibao
Outils
Liens

OUTILS


Il m'a souvent fallu configurer des utilitaires ou écrire des scripts pour convertir des fichiers son et autres, et pour me simplifier la vie d'une manière générale. En voici donc un échantillon, en espérant qu'ils aideront quelques personnes confrontées à des situations similaires...

Avertissement : tous les outils cités ci-après fonctionnent dans un environnement Linux. N'importe quelle distribution fera l'affaire, sachant que j'ai une grosse faiblesse pour Debian, une distribution libre ; ainsi que pour Demudi, qui en dérive en se spécialisant dans l'audio et bientôt tout le multimédia.

De la répétition au CD

Les Knouts, par exemple, répètent une fois par semaine. Toutes les répétitions sont enregistrées, à l'origine sur un PC ultra-portable (un vieil IBM ThinkPad 240), aujourd'hui sur un Archos. La semaine suivante, des CD sont distribués aux autres musiciens contenant l'enregistrement de la précédente répétition, celui-ci étant édité en conservant trois quarts d'heure de musique environ.

Enregistrement live

Pour enregistrer une répétition sur un portable, il faut utiliser l'entrée micro de la carte son avec un micro dynamique (type Shure SM58, j'ai un Peavey qui est très bien), mais en passant par une mixette car le volume auquel joue le groupe sature l'entrée du préampli. On trouve le Ki-Sound MMX-4 chez Paul Beuscher à Paris, qui donne un résultat très correct pour un prix assez démocratique (je crois que c'était dans les 300FF). Il faut régler les deux potentiomètres à 3 environ. Sur le portable, il suffit de charger le module ad hoc si ce n'est pas fait automatiquement, dans le cas de l'IBM :

modprobe esssolo1

puis de régler le niveau du mixer interne assez bas. On lance tout simplement l'enregistrement par :

rec toto.wav

que l'on interrompt par Ctrl-C et l'on obtient un fichier mono 8 bits à 8 KHz, ce qui suffit largement dans notre cas, si, si.

Pour éditer le fichier et l'éclater en morceaux individuels, j'employais MiXViews, assez laid, avec une gestion du focus, hmm, particulière, mais qui dispose de fonctionnalités de filtrage et de montage exceptionnelles et qui gère correctement ce format de fichier.

Audacity n'y arrivait pas, mais il est beaucoup plus puissant dans d'autres domaines et c'est maintenant mon arme principale pour éditer des fichiers importants (70 Mo de MP3 à 112 Kbits/s). Il les importe directement et permet de les découper en .WAV par copier/coller. OK, il lui arrive de segfaulter, quand on a ouvert puis fermé plusieurs fenêtres avec des données assez massives ; le contournement consiste à n'utiliser que deux fenêtres, l'une avec la source, l'autre avec la sélection copiée/collée. En tout cas, il est en train de devenir mon outil standard.

Gravage de CD

Ceci concerne les CD-ROM SCSI. La procédure semble demander une étape préliminaire dans le cas d'un CD-ROM IDE. On se reportera avec profit à cette page de Lea-Linux, par exemple. Il faut d'abord convertir les fichiers WAV de mono 8 bits à 8000 Hz en stéréo 16 bits à 41000 Hz. On se place dans le répertoire des fichiers à convertir, puis

for i in *.wav
do 
    sox $i -s -w -c 2 -r 44100 cd_$i polyphase
done

cdrecord -v speed=4 dev=0,1,0 -pad -audio cd_*.wav

Et hop, le CD est prêt. La pochette est ensuite réalisée avec un script Perl qui prend en arguments la date de la répétition, la durée de chaque morceau et la durée totale pour générer du Postscript sur la sortie standard.

Calcul de la longueur d'un fichier WAV

Ce petit script affiche la longueur d'un fichier WAV enregistré sur le portable. Cela permet notamment d'effectuer un fade-out sur N secondes avant la fin d'un morceau (car sox fonctionne à partir du début).

#!/bin/bash

if [ $# -ne 1 ]
then
    echo "Usage: $0 [fichier.wav]" 1>&2
    exit 1
fi

RATE=`od -x $1 | head -2 | tail -1 | tr "a-f" "A-F" \
    | sed "s/.*\(....\) \(....\)$/ibase=16;\2\1/" | bc`
SIZE=`od -x $1 | head -3 | tail -1 | tr "a-f" "A-F" \
    | sed "s/.*\(....\) \(....\) .... ....$/ibase=16;\2\1/" \
    | bc`

echo $(($SIZE/$RATE))

exit 0

MP3

Les MP3 sont ici employés non comme copie de CD, mais en tant que moyen de diffusion pratique - comme ceux de ce site. Pas de CD-ROM en entrée, mais un fichier WAV ou l'entrée ligne analogique de la carte son.

D'un WAV vers un MP3

C'est ici lame qui est utilisé. Comme il faut un format numérique de type CD, on doit convertir les fichiers au vol par sox qui est un véritable couteau suisse dans son domaine.

for i in *.wav
do
    sox $i -s -w -c 2 -r 44100 -t raw - polyphase \
	| lame -x -r -a -b 24 -s 44.1 - `echo $i | sed 's/wav$/mp3/'`
done

D'une entrée ligne vers un MP3

Après avoir enregistré un morceau sur un Portastudio ou tout autre enregistreur analogique, on peut directement masteriser sur un fichier MP3 avec ce script :

#!/bin/bash

if [ $# -eq 0] 
then
    echo Usage: $0 [fichier.mp3]
    exit 1
fi

sudo sox -t ossdsp -w -s -r 44100 -c 2 /dev/dsp -t raw - \
     | lame -x -m s - $1

De l'Archos vers un WAV

Quand même plus pratique à transporter que l'IBM, l'Archos Jukebox Recorder est un enregistreur MP3 qui accepte des données provenant du micro intégré (nul), d'une entrée numérique ou d'une entrée ligne. Il faut donc employer un préampli comme le Vivanco MA222 et on peut même faire de la stéréo. on peut se passer deu préampli mais le niveau sera un peu faible (corriger ensuite quand on passe par sox).

L'Archos est ensuite monté sur une machine Linux par le port USB.

mount -t usbdevfs none /proc/bus/usb
mount /dev/sda1 /mnt/archos/

Il faut avoir chargé les modules usb-uhci, usb-storage et sg.

Audacity permettant d'importer directement les MP3, toute la procédure s'en trouve simplifiée : les bouts de répétition intéressants sont directement sauvegardés au format WAV à 44100 Hz.

Vidéo

Dans la même lignée, comment diffuser une vidéo de concert enregistrée sur une caméra DV ? Plusieurs solutions sont possibles : on peut d'abord écrire un fichier MPEG sur un CD-R au format iso9660 pour les gens qui ont un ordinateur avec un lecteur de fichiers multimedia. Mais pour les autres ?

VideoCD

Les lecteurs DVD se sont démocratisés et presque tous peuvent lire les Video CD ou VCD, un standard antérieur. Pour écrire un VCD, il faut un fichier MPEG-1 dont la vidéo et l'audio sont multiplexés d'une façon particulière, les vcdtools pour créer une image ainsi que cdrdao pour l'écrire sur le CD-R. Pour le lire sur un PC sous Linux, mplayer fait l'affaire. Pour monter le film sur sa machine, on a Kino.

Kino

En gros, ça tue. Le projet est vivant, les développeurs réagissent au quart de tour, des plug-in de trucage (kinoplus) apparaissent sans arrêt grâce à une API intelligente et un code sans bavure. L'interface utilisateur est compréhensible par le vulgum pecus. J'aime bien aussi éditer le fichier SMIL (le plan de montage) à la main. Que du bonheur, une fois qu'on a compris que les crashs sont dûs à un mauvais paquetage de libdv, dont il faut donc télécharger et recompiler la dernière version.

Capture

Bien, mais comment récupérer le flux vidéo depuis la caméra DV ? Il faut une interface IEEE 1394 (celle de la Soundblaster Audigy est impeccable puisqu'elle est OHCI), installer libraw, lire tout sur Linux et la norme IEEE 1394, customiser le noyau pour Firewire/IEEE 1394, charger les modules ieee1394, ohci1394, raw1394 et video1394 et au besoin faire un

mknod -m 666 /dev/video1394 c 172 0

Vérifier que le bus est correctement détecté par testlibraw, puis que la caméra est visible par gscanbus. Si on ne la voit pas sur le bus, il est très possible que le câble soit mal enfoncé ;-)

On capture donc les frames en provenance de la caméra, de deux manières possibles : soit depuis Kino, soit en ligne de commande en contrôlant la caméra depuis un autre terminal avec dvcont (dvcont play, dvcont stop, dvcont rewind, etc.). On lance alors dvgrab concert ce qui crée les fichiers concert001.avi, concert002.avi, et ainsi de suite en fonction des interruptions à la prise de vue. L'intérêt de ne pas avoir d'image à l'écran est de ne faire travailler le processeur qu'à la capture, ce qui évite de dropper des frames sur une petite machine.

Gravure

Une fois qu'on a monté son film avec tous les effets possibles, on se sert du module d'exportation au format MPEG-1/VCD, entre autres (le SVCD est aussi supporté). C'est ce fichier qui est utilisé par mkvcdfs pour créer l'image, laquelle est gravée par

cdrdao write --device 0,1,0 -n vcd.toc

0,1,0 est mon graveur SCSI tel qu'indiqué par cdrecord -scanbus, vcd.toc a été créé par mkvcdfs.

compteur