Tutoriel: installation de Cantata/mpd/BruteFIR - Lecture de musique dématérialisée et "room correction" open source - Partie 1/2

 

Introduction

Même au sein d'une installation vintage, le "digital room correction" (correction de l'acoustique de votre pièce dans le domaine numérique) est un outil qui peut s'avérer très utile. Peut être dispensable sur la majorité du spectre dans une pièce "correcte" et légèrement traitée, il est en revanche presque indispensable dans le grave. La correction des défauts de la pièce par des moyens physiques devient en effet problématique dans ce registre, voir impossible dans le salon/salle à manger/bureau ou nous autres, audiophiles, écoutons pour la plupart notre musique.

Par bonheur, Linux dispose de tous les logiciels nécessaires afin que nous puissions lire notre musique dématérialisée et effectuer des corrections acoustiques de façon totalement gratuite. Il s'agit d'une magnifique opportunité offerte à la communauté par les développeurs de ces outils, et il serait dommage de ne pas en profiter.

Ces logiciels comprennent un système de bibliothèque musicale pour gérer sa musique, un lecteur audio performant et hautement configurable, et un moteur de convolution qui servira à effectuer des corrections acoustiques à l'aide de filtres.

La conception de ces filtres ne sera pas traitée pour l'instant, car nous pensons qu'il existe assez de contenu sur le Web (forums, blogs...) pour trouver son bonheur. Nous conseillerons simplement REW et Rephase, d'une part pour rester dans l'optique d'un écosystème logiciel totalement gratuit, et surtout parce-que ce sont d'excellents outils.

Si tous les logiciels sont gratuits, il vous faudra quand même acquérir un micro correctement calibré pour réaliser les mesures nécessaires à la création de vos filtres.

Nous avons choisi une façon de faire, en utilisant certains logiciels, mais il existe bien entendu d'autres solutions et d'autres choix tout aussi pertinents.

Les logiciels que nous avons choisis pour notre installation sont:

  • Cantata: interface graphique pour mpd, c'est la partie visible de l'ensemble qui nous servira à gérer notre musique, créer des playlists, etc...
  • mpd (documentation ici): le "moteur" derrière Cantata, c'est lui qui lit vos fichiers audio et avec un peu de configuration, transférera le tout à bruteFIR
  • bruteFIR: utilisé pour la correction acoustique de la pièce, il reçoit le flux audio de mpd, y applique nos filtres et renvoie le tout vers la carte son

Comme un petit dessin est souvent plus efficace qu'une longue explication, voici comment les éléments que nous utiliserons interagissent:

 

 

Le tutoriel étant assez long, nous l'avons divisé en deux parties.

Prérequis

Vous devriez pouvoir vous en tirer avec des connaissances basiques sous Linux, nous partons aussi du principe que vous avez déjà créé vos filtres FIR pour la correction acoustique.

Petite précision peut-être utile pour les débutants sous Linux: "~" désigne le répertoire home de votre utilisateur. Ainsi, si votre utilisateur s'appelle john, le chemin vers le fichier noté "~/images/tux.jpg" est équivalent à "/home/john/images/tux.jpg".

Ce tutoriel a été réalisé sous Ubuntu 18.04LTS puis 20.04LTS.

 

1. Cantata Music player et mpd

1.1 Installation

Cantata est disponible dans les dépôts Ubuntu, donc l'installation est très simple, entrez les commandes suivantes dans un terminal:

sudo apt-get update

sudo apt-get install cantata

Idem pour installer mpd:

sudo apt-get install mpd

 

1.2 Premier lancement de Cantata

Lancez Cantata avec votre compte utilisateur habituel (pas de sudo).
Vous pouvez le lancer via le menu de démarrage, tapez "cantata" dans la boîte de recherche pour le trouver (Sur LXDE il se trouve dans la catégorie "Son et vidéo").

La fenêtre de bienvenue de Cantata s'ouvre, choisissez "Profil standard pour un simple utilisateur" et cliquez sur "Suivant".

Entrez le chemin du répertoire contenant votre collection musicale dans "Dossier musical". Le chemin doit être complet, commençant par la racine "/" par exemple "/mnt/stockage/musique/", cliquez sur "Suivant".

Faites votre choix concernant les pochettes d'albums puis cliquez sur "Suivant".

Cliquez sur "Terminer".

Cantata doit se lancer, ouvrez le menu en haut à droite et sélectionnez "Rafraîchir la base de données", le dossier ou se situe votre musique sera scanné par Cantata. Après quelques secondes/minutes (selon la quantité de données), votre musique devrait apparaître dans le panneau de gauche lorsque vous cliquez sur "Bibliothèque".

Vous pouvez maintenant fermer Cantata, nous allons passer à la configuration de mpd.

 

1.3 Configuration de mpd

La façon dont nous avons configuré Cantata fait qu'il utilisera sa propre instance de mpd, qui démarrera automatiquement en fond au lancement de l'interface graphique. Le fichier de configuration de mpd, "mpd.conf", se situe donc dans notre cas à cet emplacement:

~/.local/share/cantata/mpd/mpd.conf

Ouvrez ce fichier de configuration avec votre éditeur de texte favori, par exemple:

vim ~/.local/share/cantata/mpd/mpd.conf

Modifiez votre fichier exactement comme suit, en remplaçant les valeurs en gras par celles correspondant à votre configuration:

music_directory "/chemin/vers/votre/musique"
playlist_directory "/home/votreutilisateur/.local/share/cantata/mpd/playlists"
sticker_file "/home/votreutilisateur/.local/share/cantata/mpd/sticker.sql"
bind_to_address "/home/votreutilisateur/.local/share/cantata/mpd/socket"
db_file "/home/votreutilisateur/.cache/cantata/mpd/tag_cache"
pid_file "/home/votreutilisateur/.cache/cantata/mpd/pid"
state_file "/home/votreutilisateur/.cache/cantata/mpd/state"
log_file "/dev/null"
metadata_to_use "artist,album,title,track,name,genre,date,disc,albumartist,composer,musicbrainz_albumid"
 
#upsampling via libsamplerate si besoin
resampler {
plugin "libsamplerate"
type "0"
}

#sortie vers interface de loopback
audio_output {
name "loopback_brutefir"
type "alsa"
device "hw:CARD=brutefirloop,DEV=0"    #l'interface de loopback que nous avons créée
format "44100:16:2"                    #format de sortie sous la forme samplerate:bits:canaux, ici qualité CD
auto_resample "no"
auto_format "no"
enabled "yes"
mixer_type "none"                      #pas de contrôle de volume pour l'interface de loopback
}

audio_buffer_size "4096"
max_output_buffer_size "4096"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"

La ligne "music_directory" est normalement correctement remplie car nous avons déjà renseigné cette information lors du premier démarrage de Cantata, vérifiez la simplement.

L'option "format" configure le format de sortie de mpd, le taux d’échantillonnage doit être identique à celui que vous utilisez pour vos filtres avec BruteFIR.

Si vous souhaitez lire des fichiers audio de différents formats sans changer de filtre FIR a chaque fois, vous devez laisser activé le resampling. Dans ce cas, on choisira généralement comme format de sortie celui des meilleurs fichiers audio que l'on possède, par exemple 96000:24:2. En effet l'upsampling ne provoque (presque?) pas de perte de qualité contrairement au downsampling, qu'il faut donc éviter.

Enregistrez vos modifications et quittez.

 

1.4 Optionnel: supprimer le resampling logiciel

Si vous souhaitez désactiver tout resampling côté logiciel (par exemple si votre DAC le gère mieux), vous devrez faire plusieurs choses:

  • Créer un filtre FIR par taux d’échantillonnage que vous souhaitez lire (par exemple 44100, 48000 et 96000).
  • Commenter la ligne "format" et les lignes du bloc "resampler" dans mpd.conf, le flux audio sortira alors dans son format d'origine:
#format "44100:16:2"

#upsampling via libsamplerate si besoin
#resampler {
#plugin "libsamplerate"
#type "0"
#}
  • Dans la configuration de BruteFIR (voir seconde partie du tutoriel) mettre les valeurs correctes à "sampling_rate", à toutes les occurrences de "sample" et à "filename". Faire cela à chaque fois que vous changez de format.

Comme vous le voyez cela devient vite fastidieux, sauf si toute votre collection de musique est au même format bien entendu !

Vous pouvez créer un script effectuant ces tâches automatiquement pour gagner du temps.

Rendez-vous très bientôt pour la suite du tutoriel !

Ce site utilise des cookies. En continuant votre navigation sur celui-ci, vous acceptez notre politique de confidentialité.