Archives par mot-clé : audio

Taguer ses fichiers audio en ligne de commande avec beets

Après mon post pour taguer les fichiers audio via via une interface graphique, voici le complément pour taguer les fichiers en ligne de commande avec l’outil beets avec quelques scripts utiles.
Beets est un outil écrit en python qui tout comme MusicBrainz Picard permet de taguer automatiquement les fichiers audio à partir de la base de données musicales de MusicBrainz. Rappelons que MusicBrainz est une vaste bibliothèque musicale totalement libre qui collecte des métadonnées musicales que tout un chacun peut alimenter.

Beets utilise une base de données locales où sont stockées les métadatas par fichier audio, les mêmes métadatas peuvent être enregistrés dans chaque fichier. Je l’ai installé sur ma mageia 9 tout simplement en tapant pip install beets

Le fichier de configuration se trouve sous /home/olivier/.config/beets/config.yaml et contiendra a minima

directory : /anatole/beets-music #le répertoire contenant les fichiers audio qui seront copiés ou déplacés
library: /anatole/beets-music/music-database.db #la base de données

import:
    copy: no #si yes les fichiers audio modifiés seront copiés dans le répertoire défini plus haut
    move: no #si yes les fichiers audio modifiées seront déplacés dans le répertoire défini plus haut
    write: no #si yes les métadatas seront enregistrés dans le fichier, si no elles seront seulement enregistrées dans la base de données

Maintenant pour importer des fichiers audio, il suffit d’indiquer le répertoire où se trouvent les fichiers audio en tapant beet import -s /anatole/musiques/classement\ par\ genre/rock

L’option -s pour singleton permet de traiter chaque fichier comme une piste indépendante, sinon par défaut il va considérer que toutes les pistes du répertoire font partie d’un unique album. Le traitement va se lancer de manière plus ou moins automatique, quand il identifie sans ambiguïté un fichier audio, on va avoir quelque chose comme cela

/anatole/musiques/classement par genre/rock/ACDC - hell bells.mp3
Tagging track: AC/DC - Hells Bells
URL:
    https://musicbrainz.org/recording/5da479ac-3b98-43f6-88d8-6afeb9ccfcc7
(Similarity: 100.0%)

/anatole/musiques/classement par genre/rock/ACDC - highway to hell.mp3
Tagging track: AC/DC - Highway to Hell
URL:
    https://musicbrainz.org/recording/5935ec91-8124-42ff-937f-f31a20ffe58f
(Similarity: 100.0%)

/anatole/musiques/classement par genre/rock/ACDC - Let Me Put My Love Into You.mp3
Tagging track: AC/DC - Let Me Put My Love Into You
URL:
    https://musicbrainz.org/recording/69de4ab7-bfce-424e-b109-d96b34801516
(Similarity: 100.0%)
Continuer la lecture de Taguer ses fichiers audio en ligne de commande avec beets

Normaliser le son sous linux

J’écoute régulièrement de la musique avec différents lecteurs audio présentés dans cette page, mais ils présentent tous l’inconvénient de ne pas normaliser le son. La normalisation du son consiste à abaisser le volume de certaines musiques et d’augmenter le volume pour d’autres de manière à ce qu’à l’oreille le volume du son soit identique. Cela dépend donc beaucoup du niveau sonore d’enregistrement du fichier audio d’origine, alors certes il existe des commandes qui permettent une fois intégrées dans un script bash de normaliser par lot des mp3. On peut citer par exemple mp3gain. Mais je préfèrerais autant ne pas toucher à mes fichiers audio pour ne pas risquer de les dégrader et que ça se fasse au niveau de la sortie audio pilotée par pulseaudio.

J’ai vainement essayé de configurer pulseaudio pour normaliser en temps réel. Pour cela, sur ma Mageia 7.1 j’ai installé le package ladspa-plugins-swh et rajouté les lignes suivantes dans le fichier /etc/pulse/default.pa

load-module module-ladspa-sink  sink_name=ladspa_sink  master=combined plugin=dyson_compress_1403  label=dysonCompress  control=0,1,0.5,0.99

# Create normalized sink that outputs to the compressed sink
load-module module-ladspa-sink  sink_name=ladspa_normalized  master=ladspa_sink  plugin=fast_lookahead_limiter_1913  label=fastLookaheadLimiter  control=10,0,0.8

# Comment out the line below to disable setting the normalized output by default:
set-default-sink ladspa_normalized

Mais rien n’y fait, il n’arrive pas à charger le module et je bute sur cette erreur

pulseaudio[5186]: Failed to load module "module-ladspa-sink" (argument: ""): initialization failed.

Sur internet on trouve bien comme astuce qu’il faut que la variable LADSPA_PATH pointe vers les bibliothèques LADSPA qui se trouve dans la pratique sous /usr/lib64/ladpsa. Mais ce n’est pas suffisant, je soupçonne que ça ne fonctionne pas car pulseaudio est lancée en mode system et que c’est pulse le propriétaire du processus.

Du coup j’ai changé mon fusil d’épaule et j’ai installé PulseEffects. C’est un logiciel qui s’interface entre les lecteurs vidéo et le serveur de son pulseaudio et qui permet d’appliquer des traitements et des effets en temps réel au son qui est envoyé vers la sortie audio de pulseaudio. Il permet notamment de normaliser le son.

Dans le screenshot ci-dessous, j’ai appliqué les effets Maximiser et Auto Gain qui me permettent d’avoir un volume à peu près constant entre les différents titres audio. La configuration est très simple, on lance son lecteur multimédia puis PulseEffects et par défaut le son du lecteur multimédia est filtré par les effets de PulsefEffects avant d’être renvoyé vers la sortie audio de pulseaudio. Plus besoin d’avoir à jouer manuellement sans cesse sur le niveau du volume.

Lecteurs audio sous linux

Comme lecteur audio cela fait des années que j’utilise Clementine. Par rapport à ses nombreux concurrents, il présente le gros avantage de proposer des listes de lecture intelligentes et c’est bien pour ça que mon choix s’est porté vers lui. En effet, quand on dispose d’un catalogue de plusieurs milliers de titres, c’est souvent laborieux et chronophage de créer ses propres listes de lecture, autant laisser le système le faire à votre place. Clementine propose ainsi les modes de lecture intelligents suivants :

  • 50 pistes aléatoires ;
  • déjà joués ;
  • dernières écoutes ;
  • jamais joués ;
  • les plus joués ;
  • mix aléatoire dynamique ;
  • nouvelles pistes ;
  • pistes favorites ;
  • pistes les moins aimées ;
  • toutes les pistes.

Pour que ça soit efficace, il faut bien sûr utiliser régulièrement Clementine pour qu’il constitue une base de données des goûts musicaux.

Capture d’écran de Clementine en Qt5

Suivant le mode choisi, après un premier choix de liste réalisé par le système, on peut repeupler ou agrandir la liste de lecture comme bon nous semble. Sinon Clementine, comme d’autres, propose un mode parole des chansons, un mode d’information sur l’artiste et l’affichage des pochettes d’album.

Continuer la lecture de Lecteurs audio sous linux