Identifier les propriétés de son DAC

  • wpctl status
    
    • Identifier le périphérique de sortie actuellement utilisé par PipeWire
  • cat /proc/asound/cards
    
    • Identifier le numéro de la carte ALSA correspondant au DAC
  • cat /proc/asound/cardX/stream0
    
    • Identifier les capacités de décodage du DAC

Créer la configuration adéquate

  • mkdir -p ~/.config/pipewire/pipewire.conf.d/
    
    • Créer un dossier de configuration PipeWire propre à notre compte utilisateur
  • ~/.config/pipewire/pipewire.conf.d/10-hires-dac.conf
      
    context.properties = {
    	# Fréquence par défaut
    	default.clock.rate          = 384000
      	
    	# Autoriser PipeWire à basculer automatiquement sur ces fréquences sans rééchantillonner
    	default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 ]
      	
    	# Profondeur de bits maximale pour exploiter le DAC
    	default.audio.format        = "S32_LE"
      	
    	# Amélioration de la latence et réduction des craquements
    	default.clock.quantum       = 1024
    	default.clock.min-quantum   = 32
    	default.clock.max-quantum   = 8192
    }
    
    • Adapter la configuration avec les paramètres spécifique au modèle du DAC, récupérés avec les commandes précédentes.
  • systemctl --user restart pipewire pipewire-pulse wireplumber
    
    • Redémarrer PipeWire pour appliquer la nouvelle configuration.

Tester et Vérifier la qualité de lecture

  • grep -i "Momentary freq" /proc/asound/card*/stream0
    
    • Après avoir lancé la lecture d’un fichier Hi-Res, permet de voir en quelle qualité est lue le fichier en temps réel.
  • pw-top
    
    • Petit outil GUI/CLI permettant de voir quel processus décode actuellement du contenu audio et à quelle qualité.

Il est important de ne pas modifier le volume et de laisser tout à 100% pour ne pas forcer Linux à re-encoder le flux audio !