Skip to main content

4 - Toutes les autres applications, les émulateurs...


Timemachine -> mp3

Articles: 30
Bonjour,

Depuis peu j'enregistre les répés de mes groupes avec mon portable et un micro statique. J'utilise pour ça timemachine avec les options : -c 1 -f wav

J'obtiens un fichier wav que j'ouvre avec audacity pour le normaliser (le niveau d'entrée est un peu bas et le clipping au niveau du signal d'entrée a lieu bien avant le niveau max au niveau du signal enregistré). J'exporte ensuite avec audacity vers un fichier mp3 pour le mettre en partage avec les autres membres.

J'aimerais pouvoir faire cette normalisation/encodage avec un script (je fais parfois plusieurs enregistrements durant une répé, et la procédure avec audacity est un peu lourde). Le problème c'est que d'une part je ne connais pas d'utilitaire qui puisse réaliser cette normalisation en ligne de commande, et d'autre part en passant par lame pour faire l'encodage plutôt qu'audacity j'obtiens un mp3 "bruit blanc". J'imagine que c'est le format qui ne lui plait pas mais je ne sais pas. De plus la durée du mp3 indiquée quand j'encode avec audacity (je ne sais pas quel encodeur il utilise) ne correspond pas à la durée réelle. Quelqu'un sait pourquoi et comment y remédier ?

Enfin plusieurs questions dans ce post, mais la principale est : connaissez vous un outil pour normaliser un wav généré par timemachine et pour l'encoder en mp3 (sachant que lame avec les options par défaut ne fonctionne pas avec les fichiers de timemachine).

Merci d'avance pour votre aide 😊
Articles: 98
Pour normaliser l'outil en ligne de commande s'appelle... normalize ! 😎

Sinon c'est très étonnant ce que lame te fait... C'est quoi ta ligne de commande complète ? Vérifie aussi que timemachine a bien généré un WAV avec la commande "file".




Articles: 30
Ah mais j'ai vérifié, c'est bien du wav qu'il produit (RIFF (little-endian) data, WAVE audio, mono 44100 Hz), la ligne de commande que j'utilise c'est la commande lame toute seule, normalement ça suffit (le wav contient une entête avec tout ce qu'il faut à lame en théorie). D'ailleurs ça fonctionne très bien avec un wav récupéré ailleurs (par exemple des sons systèmes ou des extractions de vidéos).

Merci pour normalize, j'avais même pas pensé à chercher dans les paquets. J'ai trouvé un paquet normalize-audio, je vais tester ça.

edit j'ai testé normalize, ça fonctionne bien, le wav est bien modifié. Par contre j'ai essayé gogo comme encodeur mp3 sur le wav (d'origine ou normalisé), et il sort avec un éloquent : Illegal wave type

Bon ben je vais chercher...
Articles: 960 France
Salut, timemachine produit un fichier wav en float 32bit, souvent les petits utilitaires ne savent gérer que le wav 16 bit int (format CD quoi).

Il faudrait donc convertir ton 32 bit en 16 ou alors trouver un encoder qui sache directement lire ce format.
Articles: 30
Salut,

Merci pour ces précisions. J'ai joué un peu avec les options de lame, le -x (pour les problème litttel/big endian) donne au moins un son audible et pas du bruit statique. Mais même en jouant sur les paramètre (fréquence d'échantillonnage, signé/non-signé, etc.) je n'arrive pas à avoir un fichier mp3 correct.

Je passerais bien à un autre enregistreur pour les prochaines, j'espère que les autres (ardour par exemple) permettent de sauvegarder sous un format plus gérablle.


Articles: 960 France
Cherche pas c'est le format float qui doit pas passer, il y a sox qui permet de faire cette conversion. Il faut la faire après le normalize.

J'ai remarqué que normalize a une option "--output-bitwidth=", je te suggère d'essayer ça.

normalize mon_wav_en_32bit.wav --output-bitwidth=16


Ensuite lame.

Cela t'éviteras peut-être l'étape "sox", mais sinon c'est juste un peu de RTFM pour que sox te fasse la conversion en int 16.
Articles: 30
Ah cool, effectivement ça le fait.

Je viens d'essayer la conversion en 16bits avec normalize et l'encodage avec gogo sans option (je préfère qu'il me dise directement qu'il connait pas le format plutôt que me casser les oreilles avec du statique dans le casque).

Ca fonctionne. Plus qu'à ajouter l'option dans un petit script.

Merci 😊