Linux audio & Hi-Fi : choisir la bonne fréquence d’échantillonnage

J’ai récemment pu comparer le son de Tidal Hifi (qualité CD) entre un ordi Apple et un autre sous Linux (Debian 11) branchés sur une carte son USB et une chaine Hifi haut de gamme. Quelle ne fut pas ma surprise alors qu’il était clairement évident que le son de l’ordi Apple était meilleur dans les aigus…

Je pense avoir trouvé la raison. Sous Linux, le système son (PulseAudio ou Pipewire) utilise un mixeur dont la fréquence d’échantillonnage est réglée sur 48kHz par défaut. Or la majorité des enregistrements audio CD sont au format 44.1kHz. La conversion 44.1 -> 48 kHz me semble être la source de la perte de qualité sonore.

Comparaison des convertisseurs de fréquences (resampler) MacOS et Linux (Pipewire) dans leur réglages par défaut

Plusieurs solutions sont possibles. Il faut d’abord comprendre l’intérêt du mixeur. La carte son peut changer de fréquence d’échantillonnage. Mais cela se fait souvent par une rupture (clic sonore audible) et quid de plusieurs logiciels émettant simultanément des sons dans des échantillonnages différents? Le mixeur mixe les signaux émis par les logiciels et en fait sortir un mix à une fréquence d’échantillonnage unique.

Voyons les solutions à disposition avec Pipewire :

Créer un fichier texte ~/.config/pipewire/pipewire.conf.d/customconfig.conf et ajouter les textes suivants:

Solution 1 : Augmenter la qualité du resampleur du mixeur

stream.properties = {
  #quality of software resampling (to convert 44.1kHz source into 48Khz for example). 1 is min quality. 15 is max quality
  resample.quality = 14
}

Solution 2 : Changer la fréquence échantillonnage par défaut pour celle du CD (44100Hz)

context.properties = {
   #default sample rate of your sound card
   default.clock.rate = 44100
}

Solution 3: Changer dynamiquement la fréquence d’échantillonnage en fonction de la source jouée (une seule source en meme temps)

context.properties = {
   #default sample rate of your sound card
   default.clock.rate = 44100

   #allows to switch the sound card sample rate to those values to match to the source sample rate
   default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
}

Pour appliquer la configuration, redémarrer Pipewire avec la commande suivante (pas besoin d’être root)

systemctl restart --user pipewire pipewire-pulse 

Le comportement peut se vérifier avec la commande pw-top. Vous verrez la fréquence d’échantillonnage de sortie (ici la carte Focusrite en 88200Hz) et la fréquence de la source (Firefox en 44100Hz)

Je vous laisse trouver le réglage qui vous convient.

Moi j’ai pris les solutions 1+2 en mettant 88200Hz par défaut (en espérant que re-sampler 48kHz->88.2kHz soit plus qualitatif que 48kHz->44.1kHz si j’ai du son à 48Khz à jouer). Le changement de fréquence (solution 3) de ma carte son occasionnant des clicks audibles.

Si vous vous demandez pourquoi le CD est en 44.1Hz, c’est tout simplement car à l’époque les enregistrements numériques sur bandes magnétiques étaient faits à cette fréquence. Aujourd’hui, sur ordinateur, c’est plutôt une puissance de 2 (48 ou 96Khz) qui est considérée comme optimisée pour le matériel.

Postez en commentaire votre expérience !

Sources :
https://wiki.archlinux.org/title/PipeWire#Sound_quality_(resampling_quality)
https://discovery.endeavouros.com/audio/audiophile/2022/01/
https://src.infinitewave.ca/

5 réactions sur “ Linux audio & Hi-Fi : choisir la bonne fréquence d’échantillonnage ”

  1. waitnsea

    Merci du topo
    erratum, utiliser plutôt cette syntaxe:
    $ systemctl restart –user pipewire pipewire-pulse

  2. Tourneriff

    Blog très intéressant, pour un passionné de son et de ce que linux peut apporter dans ce domaine ! Merci !

  3. CharlesLox

    The article on the https://www.citybeat.com/cannabis/the-best-delta-9-thc-gummies-overview-2024-17943927 was incredibly friendly through despite navigating the large array of products available. It provided elaborate reviews and comparisons, highlighting factors like potency, ingredients, and customer feedback. The inclusion of pros and cons in the interest each product was amazingly utilitarian in making intelligent choices. Whether you’re a late user or looking to shift brands, this article offers valuable insights to oversee your CBD/THC gummy selection.

  4. Phil_Walt

    Astuce aussi utile que rare sur le net, merci infiniment ! C’est la première fois que je vois un OS capable de varier le sample rate selon la source. Non que la différence soit (très) audible, mais comme beaucoup d’audiophiles j’y tiens, ne serait-ce que par principe.
    Très satisfaisant de vérifier source et sortie avec pw-top :)
    Malgré tout j’ai observé un 96000Hz qui persistait sur les fichiers 88200; après vérification c’est parfaitement cohérent, ma carte son ne reconnaît pas cette fréquence, Pipewire la passe donc en 96000Hz au moment de « négocier » avec le matériel.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.