Correction des distorsions sonores sous Ubuntu 24.04 grâce à des ajustements de configuration ALSA

Sous Ubuntu 24.04, la distorsion sonore peut provenir de plusieurs sources : l’application, PipeWire, WirePlumber, ALSA, le pilote du noyau ou le matériel audio lui-même. La méthode la plus pratique consiste à identifier d’abord le périphérique concerné, puis à modifier un paramètre de tampon ou de périphérique à la fois. Sur un ordinateur Ubuntu 24.04 standard, PipeWire se situe au-dessus d’ALSA et WirePlumber gère les périphériques ALSA. Il est donc généralement conseillé aux utilisateurs d’optimiser les propriétés ALSA accessibles via WirePlumber avant de remplacer la configuration ALSA par défaut du système.

Ubuntu 24.04 était initialement fourni avec PipeWire 1.0.4, et les paquets Noble actuels d'Ubuntu continuent d'utiliser WirePlumber 0.4.17 au lieu du format de configuration plus récent de la version 0.5. Ce détail de version est important car WirePlumber 0.4 utilise des fragments Lua ~/.config/wireplumber/main.lua.d/. La syntaxe plus récente wireplumber.conf.dque vous pouvez rencontrer dans la documentation officielle s'applique à WirePlumber 0.5 et versions ultérieures. Vérifiez la version installée avant de copier toute configuration.

Références officielles : notes de version d’Ubuntu 24.04 LTS , paquet WirePlumber d’Ubuntu pour les mises à jour Noble , référence de configuration ALSA de WirePlumber 0.4 et référence du plugin ALSA PCM .

Guide rapide : que faire en premier ?

SymptômePremier contrôle pratiqueModification potentielle
Crépitements sous charge du processeurVérifiez que le récepteur est correct et surveillez les déconnexions.Testez une période ALSA plus grande, par exemple 1024 ou 2048 images.
Distorsion uniquement sur un DAC USBIdentifiez le nœud ALSA/PipeWire exactAppliquez la règle uniquement à ce nœud ; évitez une règle globale.
Bruit lors de la sortie de veille d'un appareilReproduire après plusieurs secondes de silenceAugmentez ou désactivez le délai d'expiration de la suspension pour ce nœud spécifique.
Problèmes dans une application héritée utilisant uniquement ALSATestez l'application avec aplayou un PCM expliciteUtilisez une configuration par utilisateur ~/.asoundrcavec plug/dmix
Distorsion à une fréquence d'échantillonnage donnéeMatériel de test à 44,1 kHz et 48 kHzPrivilégiez une fréquence d'échantillonnage matérielle prise en charge et laissez PipeWire rééchantillonner en cas de besoin.

1. Identifier le matériel ALSA et la pile audio

Commencez par lister les périphériques de lecture et vérifiez quel serveur audio est actif. Ne présumez pas qu'il hw:0,0s'agit de vos haut-parleurs ; les périphériques HDMI, les casques USB, les webcams et les stations d'accueil peuvent modifier la numérotation des cartes entre deux redémarrages.

aplay -l
wpctl status
pactl info
wireplumber --version
pipewire --version
Terminal Ubuntu affichant la sortie de la commande aplay -l avec un périphérique analogique intégré et un périphérique de lecture HDMI

Légende : La aplay -lliste sépare le périphérique de lecture analogique intégré du HDMI, ce qui permet d’éviter d’appliquer une modification ALSA à la mauvaise carte.

Si pactl infole message « PulseAudio (sur PipeWire) » s'affiche, c'est normal sous Ubuntu 24.04. L'interface compatible PulseAudio est fournie par PipeWire. Pour une installation standard d'Ubuntu 24.04/Noble, wireplumber --versionla série 0.4.x devrait normalement s'afficher, sauf si vous avez installé une version différente.

2. Vérifiez la distorsion avant de modifier la configuration.

Utilisez un test reproductible plutôt que de vous fier à des vidéos web aléatoires pour évaluer les changements. Un court fichier WAV speaker-testou un morceau de musique connu permettra de comparer l'avant et l'après de manière plus pertinente. Vérifiez également si le problème se produit de façon égale sur les sorties analogique, HDMI, Bluetooth et USB. Si une seule sortie est affectée, concentrez la correction sur cette sortie.

speaker-test -c 2 -t wav
aplay /usr/share/sounds/alsa/Front_Center.wav

Pour les périphériques USB, le noyau expose les informations de flux sous /proc/asound/. Le chemin exact varie selon la carte, il est donc conseillé de vérifier /proc/asound/cardsd'abord au lieu de copier aveuglément un numéro de carte.

Terminal Ubuntu affichant les informations du flux ALSA PCM, notamment une fréquence d'échantillonnage de 48 000 Hz, deux canaux et le format S16_LE.

Légende : Les informations de flux ALSA peuvent révéler la fréquence d’échantillonnage active, le nombre de canaux et le format d’échantillonnage d’un flux de lecture ; le numéro de carte dépend du matériel.

3. Sauvegardez la configuration utilisateur actuelle

Avant toute modification, conservez les configurations ALSA ou WirePlumber existantes. Les modifications au niveau utilisateur sont plus sûres que la modification des fichiers système /usr/share, car les mises à jour de paquets peuvent remplacer les fichiers système.

cp -a ~/.asoundrc ~/.asoundrc.backup 2>/dev/null || true
mkdir -p ~/.config/wireplumber/main.lua.d
cp -a ~/.config/wireplumber/main.lua.d ~/.config/wireplumber/main.lua.d.backup 2>/dev/null || true

Si vous avez précédemment copié une configuration à partir d'un guide rédigé pour WirePlumber 0.5, supprimez-la ou déplacez-la avant de tester sur Ubuntu 24.04 standard. WirePlumber 0.4 et 0.5 utilisent des formats de configuration différents.

4. Optimisez le comportement du tampon ALSA via WirePlumber 0.4

Sous Ubuntu 24.04, il s'agit généralement du réglage ALSA le plus pertinent, car WirePlumber crée et configure les nœuds PipeWire basés sur ALSA. La documentation officielle de WirePlumber décrit api.alsa.period-sizela période comme la taille de la période en échantillons et api.alsa.headroomcomme un tampon supplémentaire entre les pointeurs matériels et logiciels. La plupart des périphériques USB sont traités comme des périphériques de traitement par lots, et la période influe à la fois sur la fréquence des interruptions et sur le comportement du tampon.

Créer une règle utilisateur :

nano ~/.config/wireplumber/main.lua.d/51-alsa-tuning.lua

Utilisez une règle qui cible uniquement le nœud de sortie problématique. Commencez par obtenir le nom du nœud avec `node_name` wpctl statusou `node_name` pw-cli list-objects Node. Ensuite, adaptez cet exemple :

local rule = {
  matches = {
    {
      { "node.name", "matches", "alsa_output.*" },
    },
  },
  apply_properties = {
    ["api.alsa.period-size"] = 1024,
    ["api.alsa.headroom"] = 0,
  },
}

table.insert(alsa_monitor.rules, rule)

Ne considérez pas 1024 comme une valeur magique universelle. Il s'agit d'un point de test prudent. Si la distorsion persiste, comparez successivement 512, 1024 et 2048. Des périodes plus longues peuvent améliorer la tolérance aux délais d'ordonnancement sur certains systèmes, mais augmentent la latence ; des périodes plus courtes peuvent réduire la latence, mais augmentent la fréquence des interruptions et peuvent révéler des sous-débits sur une machine fortement sollicitée. Conservez la plus petite valeur qui reste stable pour votre charge de travail.

Si le périphérique présente des E/S mappées en mémoire défectueuses, WirePlumber expose également une interface api.alsa.disable-mmap. La documentation officielle décrit explicitement ce comportement comme une solution de repli pour la compatibilité et précise que l'accès en lecture/écriture est plus lent ; il est donc déconseillé de l'activer sauf si la distorsion observée est clairement liée au comportement de mmap.

["api.alsa.disable-mmap"] = true,

Une autre option spécifique à l'appareil consiste à session.suspend-timeout-seconds… Si un DAC émet des craquements ou des distorsions à chaque sortie de veille, tester un délai d'inactivité plus long (ou 0désactiver la suspension pour ce nœud) peut aider à identifier la cause. La désactivation de la suspension maintient le périphérique ALSA occupé ; il s'agit donc d'un compromis plutôt que d'une recommandation par défaut.

5. N'utilisez le fichier .asoundrc que lorsque l'application utilise réellement ALSA directement.

Une configuration par utilisateur ~/.asoundrcpeut s'avérer utile pour les anciennes applications qui contournent PipeWire et ouvrent directement les fichiers PCM ALSA. Elle peut également servir à tester le comportement à fréquence d'échantillonnage fixe ou lors du mixage logiciel. Toutefois, la modification globale de la configuration ALSA par défaut peut interférer avec le plugin ALSA de PipeWire ; il est donc préférable d'utiliser un fichier PCM nommé lorsque cela est possible plutôt que de le remplacer pcm.!default.

Par exemple, le plugin ALSA dmixprend en charge les valeurs explicites de rate, period_size, et buffer_size. Un PCM de test nommé peut ressembler à ceci :

pcm.stable_test {
    type plug
    slave.pcm "stable_dmix"
}

pcm.stable_dmix {
    type dmix
    ipc_key 2048
    ipc_key_add_uid true
    slave {
        pcm "hw:0,0"
        rate 48000
        period_time 0
        period_size 1024
        buffer_size 4096
    }
}

Remplacez hw:0,0par la carte et le périphérique réels aplay -l. Ensuite, testez sans modifier les paramètres système par défaut :

aplay -D stable_test /usr/share/sounds/alsa/Front_Center.wav
GNU nano sous Ubuntu, éditant un fichier .asoundrc utilisateur avec un processeur PCM matériel, une fréquence d'échantillonnage de 48 000 Hz, une période de 1024 et une taille de tampon de 4096.

Légende : Chaque utilisateur .asoundrcpeut définir des paramètres ALSA fixes pour des tests contrôlés ; une hwcible directe doit être utilisée avec précaution car elle contourne la conversion automatique de format.

Le projet ALSA indique qu'il dmixpossède une configuration de base fixe, sauf si vous spécifiez des valeurs dans sa définition d'esclave, tandis que le plugplugin peut effectuer des conversions de format et de fréquence. C'est pourquoi, pour les expérimentations, il est plus sûr de combiner un plugPCM nommé avec un PCM réglé séparément dmixque de forcer chaque programme à accéder directement au matériel.

6. Redémarrez les services audio utilisateur et effectuez un nouveau test.

Après avoir modifié la règle WirePlumber, redémarrez la pile audio utilisateur. Fermez d'abord les applications qui utilisent activement le son.

systemctl --user restart wireplumber pipewire pipewire-pulse

Répétez ensuite le même test qu'avant la modification. Ouvrez Paramètres > Son et vérifiez que le périphérique de sortie et le profil souhaités sont toujours sélectionnés.

Panneau de configuration audio d'Ubuntu affichant les haut-parleurs intégrés sélectionnés avec un profil de sortie stéréo analogique

Légende : Après avoir redémarré les services audio, vérifiez qu’Ubuntu sélectionne toujours le périphérique de sortie et le profil souhaités avant de déterminer si la distorsion est corrigée.

Comment déterminer si la modification a fonctionné

  • Le même fichier de test est lu en boucle sans craquements, bourdonnements, écrêtages ni brèves coupures.
  • La distorsion ne réapparaît pas après la mise en veille et la sortie de veille de l'appareil.
  • Les applications de bureau classiques, les navigateurs et les appels vidéo utilisent toujours le périphérique de sortie attendu.
  • La latence reste acceptable pour votre utilisation ; la lecture de musique tolère une mise en mémoire tampon plus importante que la surveillance en direct ou les jeux vidéo.
  • Le correctif reste stable après une déconnexion et une reconnexion ou un redémarrage.

Quand les modifications d'ALSA ne constituent pas la solution adéquate

N'augmentez pas la taille des tampons si le problème provient clairement d'une saturation matérielle, d'un câble mal branché, d'une entrée analogique saturée, d'un hub USB défectueux ou d'un haut-parleur défectueux. Vérifiez également les niveaux de la table de mixagealsamixer ; une distorsion qui n'apparaît qu'aux alentours de 100 % du volume peut être liée au gain plutôt qu'à un problème de planification.

Si le problème est apparu après une mise à jour du noyau ou du micrologiciel, testez un autre noyau compatible depuis le menu GRUB avant de créer des règles audio plus complexes. Si seul le Bluetooth est affecté, concentrez-vous sur le codec/profil Bluetooth plutôt que sur les paramètres de période ALSA. Si seul le HDMI est affecté, vérifiez d'abord le profil HDMI et le récepteur/moniteur.

Liste de contrôle de restauration

  • Supprimer ou renommer ~/.config/wireplumber/main.lua.d/51-alsa-tuning.lua.
  • Restaurez ~/.asoundrcà partir de la sauvegarde ou supprimez le fichier de test uniquement.
  • Redémarrez wireplumber, pipewire, et pipewire-pulse.
  • Relancez l'exécution wpctl statuspour speaker-testconfirmer que le comportement par défaut est rétabli.

En résumé

Pour Ubuntu 24.04, commencez par des règles ALSA WirePlumber 0.4 ciblées plutôt que par un remplacement global du système .asoundrc. Identifiez le nœud de sortie précis, modifiez une propriété à la fois et comparez le même fichier audio de test après chaque modification. Une période de 1024 est un point de départ raisonnable pour le diagnostic, mais la valeur optimale dépend du périphérique et de la charge de travail. Réservez disable-mmaples modifications suspendues et dmixles PCM personnalisés aux cas où vos tests mettent spécifiquement en évidence ces comportements.

Laisser un commentaire

Téléchargez FlightGear gratuitement : Guide d’installation officiel

Téléchargez FlightGear gratuitement : Guide d’installation officiel

Téléchargez gratuitement FlightGear depuis le site officiel. Comparez les versions pour Windows, macOS et Linux, installez les fichiers de données et effectuez votre premier vol.

Application Google Tasks pour ordinateur : comment l’utiliser sur un ordinateur

Application Google Tasks pour ordinateur : comment l’utiliser sur un ordinateur

Ouvrez Google Tasks dans un navigateur, ajoutez un raccourci Chrome ou lancez-le comme une application, et gérez vos tâches datées via Agenda et Gmail.

OKSampler : un échantillonneur musical gratuit et simple pour les rythmes au clavier

OKSampler : un échantillonneur musical gratuit et simple pour les rythmes au clavier

OKSampler permet d'associer des clips MP3 à des touches du clavier et de lire des fichiers audio en boucle. Découvrez les fonctionnalités de cette ancienne version gratuite, ses limitations et les points à vérifier avant de la télécharger.

Comment créer une clé USB bootable Windows 11 sous Linux

Comment créer une clé USB bootable Windows 11 sous Linux

Créez une clé USB d'installation Windows 11 sous Linux avec Ventoy : téléchargez l'ISO officiel, installez Ventoy en toute sécurité, copiez l'image et démarrez le PC cible.

Comment jouer à Don't Starve Together sous Linux

Comment jouer à Don't Starve Together sous Linux

Installez la version Linux de Don't Starve Together via Steam, créez un monde ou rejoignez vos amis grâce à ces étapes d'installation et de dépannage.

Comment jouer à Squad sur Linux avec Steam Proton

Comment jouer à Squad sur Linux avec Steam Proton

Configurez Squad sur Linux avec Steam Play et Proton, installez le jeu, choisissez un outil de compatibilité et résolvez les problèmes liés à l'anti-triche.

Comment installer Linux Mint Debian Edition 5 « Elsie » depuis une clé USB

Comment installer Linux Mint Debian Edition 5 « Elsie » depuis une clé USB

Téléchargez et vérifiez l'image ISO archivée de LMDE 5, créez une clé USB bootable et choisissez l'option d'installation sécurisée. Elsie n'est plus prise en charge ; consultez la version actuelle de LMDE.

Comment installer Wireshark sous Linux : Ubuntu, Fedora, Arch et autres distributions

Comment installer Wireshark sous Linux : Ubuntu, Fedora, Arch et autres distributions

Installez Wireshark sur Ubuntu, Debian, Fedora, Arch ou openSUSE avec les commandes de paquets actuelles, puis configurez la capture de paquets en direct en toute sécurité.

Comment jouer à DiRT Rally sur Linux : configuration de Steam et correctifs Proton

Comment jouer à DiRT Rally sur Linux : configuration de Steam et correctifs Proton

Découvrez comment jouer à DiRT Rally sur Linux si vous le possédez déjà sur Steam : installez la version native, lancez-la et n’utilisez Proton qu’en dernier recours.

Comment jouer à It Takes Two sur Linux avec Steam Proton

Comment jouer à It Takes Two sur Linux avec Steam Proton

Apprenez à jouer à It Takes Two sur Linux avec Steam Proton, à installer la version Steam, à activer la compatibilité, à configurer le mode coopératif et à résoudre les problèmes de lancement.