Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
pipewire [Le 08/07/2025, 04:26]
krodelabestiole [Optimisation] typos
pipewire [Le 07/10/2025, 13:54] (Version actuelle)
krodelabestiole +Craquements, "hachage"
Ligne 18: Ligne 18:
  
 **PipeWire** est installé par défaut sur Ubuntu à partir de la version [[:​jammy|Jammy 22.04.4]].\\ **PipeWire** est installé par défaut sur Ubuntu à partir de la version [[:​jammy|Jammy 22.04.4]].\\
-Si ce n'est pas le cas, quel qu'en soit la raison, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] ''​[[apt>​pipewire]]''​.+Si ce n'est pas le cas, quelle ​qu'en soit la raison, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] ''​[[apt>​pipewire]]''​.
  
 On trouve aussi le paquet ''​[[apt>​pipewire-pulse]]''​(([[:​depots#​sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]] pour [[:​jammy|Jammy 22.04]])) qui fournit la rétro-compatibilité pour les applications implémentant [[:​PulseAudio]]. Il risque donc d'​être indispensable pendant encore un certain temps... On trouve aussi le paquet ''​[[apt>​pipewire-pulse]]''​(([[:​depots#​sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]] pour [[:​jammy|Jammy 22.04]])) qui fournit la rétro-compatibilité pour les applications implémentant [[:​PulseAudio]]. Il risque donc d'​être indispensable pendant encore un certain temps...
Ligne 131: Ligne 131:
 Il est souvent court (on l'​exprime en millisecondes),​ mais si on peut négliger ce délai lorsqu'​on appuie sur une touche play, le problème devient beaucoup plus épineux pour jouer de la batterie électronique ou pour appliquer un effet sur sa voix sans s'​entendre en double. Il est souvent court (on l'​exprime en millisecondes),​ mais si on peut négliger ce délai lorsqu'​on appuie sur une touche play, le problème devient beaucoup plus épineux pour jouer de la batterie électronique ou pour appliquer un effet sur sa voix sans s'​entendre en double.
  
-Diverses optimisations permettent de le réduire au maximum. La plus importante optimisation consiste à ajuster le //buffer// (taille du tampon) et le //sample rate// (fréquence d'​échantillonnage). À ce sujet, voir //​[[:​mao#​optimisation audio]]// sur la page //​[[:​MAO]]//​.((Voir aussi la [[https://​gitlab.freedesktop.org/​pipewire/​pipewire/​-/​wikis/​Config-PipeWire#​samplerate-settings|documentation officielle]].))+Diverses optimisations permettent de le réduire au maximum. La plus importante optimisation consiste à ajuster le **//buffer//** (taille du tampon, appelée //quantum// chez PipeWire) et le **//sample rate//** (fréquence d'​échantillonnage). À ce sujet, voir //​[[:​mao#​optimisation audio]]// sur la page //​[[:​MAO]]//​.((Voir aussi la [[https://​gitlab.freedesktop.org/​pipewire/​pipewire/​-/​wikis/​Config-PipeWire#​samplerate-settings|documentation officielle]].)) 
 + 
 +<note tip>Il est aussi possible de modifier ces paramètres sans éditer de fichier ou entrer la moindre ligne de commande ! 
 + 
 +On peut pour cela utiliser l'​[[#​Interfaces graphiques|interface graphique]] la plus puissante pour PipeWire : **[[https://​github.com/​dimtpap/​coppwr|coppwr]]**. 
 + 
 +On trouvera ces paramètres dans le menu //Tools// -> //Context Manager//​.\\ 
 +On peut d'ici ajuster entre autres les propriétés //​default.clock.rate//​ et //​default.clock.quantum//​.\\ 
 +Une fois les valeurs entrées, n'​oubliez pas de cliquer sur //Update properties//​ !</​note>​ 
 <​code>​ <​code>​
 pw-metadata -n settings 0 clock.force-rate <​samplerate>​ pw-metadata -n settings 0 clock.force-rate <​samplerate>​
Ligne 245: Ligne 254:
  
   * Mettre en sourdine la sortie principale pendant une minute :<​code>​wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ; sleep 60 ; wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle</​code>​   * Mettre en sourdine la sortie principale pendant une minute :<​code>​wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ; sleep 60 ; wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle</​code>​
 +
 +==== Changer la sortie son avec un script ====
 +
 +Pour changer de sortie audio la syntaxe est :
 +<​code>​wpctl set-default ID</​code>​
 +où ID est le numéro de la sortie.
 +
 +Ce numéro est visible dans la section "​Sinks"​ en exécutant la commande :
 +<​code>​wpctl status</​code>​
 +Problème : ce numéro change à chaque redémarrage ! Il faut donc le récupérer via la commande grep en cherchant le nom de la sortie qui lui ne change pas.
 +
 +
 +Voici un exemple de script pour changer la sortie vers le HDMI (remplacer le texte entre ""​ par ce qui vous correspond - notez le caractère d'​échappement \ ajouté devant [ et ] ) :
 +<code bash>
 +#!/bin/bash
 +idhdmi=$(wpctl status | grep "​Baffin HDMI/DP Audio \[Radeon RX 550 640SP / RX 560/560X\] D" | cut -c 10-12)
 +echo $idhdmi
 +wpctl set-default $idhdmi
 +exit 0
 +</​code>​
 +
 +Lorsque votre script est au point, vous pouvez créer un raccourci clavier personnalisé pour le lancer avec la commande
 +<​code>​bash nom-du-fichier-script.sh</​code>​
  
 ===== Problèmes courants ===== ===== Problèmes courants =====
Ligne 258: Ligne 290:
   * La commande <​code>​wpctl status</​code>​ donne un aperçu général de la configuration audio.\\ Chaque élément audio ou vidéo (matériel ou logiciel) est précédé d'un numéro qu'on peut utiliser comme identifiant (//ID//). On peut utiliser cet //ID// pour obtenir une description détaillée d'un élément précis de la manière suivante : <​code>​wpctl inspect ID</​code>​   * La commande <​code>​wpctl status</​code>​ donne un aperçu général de la configuration audio.\\ Chaque élément audio ou vidéo (matériel ou logiciel) est précédé d'un numéro qu'on peut utiliser comme identifiant (//ID//). On peut utiliser cet //ID// pour obtenir une description détaillée d'un élément précis de la manière suivante : <​code>​wpctl inspect ID</​code>​
  
-  * En cas de problèmes ​audio comme des craquements,​ la commande <​code>​pw-top</​code>​ permet de monitorer les processus audio, la latence de chaque interface, la charge des DSP et les décrochages audio / //​[[mao#​optimisation_audio|xruns]]//​ (colonne ''​ERR''​).((**(//​en//​)** [[https://​docs.pipewire.org/​page_man_pw-top_1.html|documentation de  +==== Craquements,​ "​hachage"​ ==== 
-pw-top]]))+ 
 +En cas de défauts ​audio comme des craquements ​ou des coupures intermittentes, la commande <​code>​pw-top</​code>​ permet de monitorer les processus audio, la latence de chaque interface, la charge des DSP et les décrochages audio / //[[:mao#​optimisation_audio|xruns]]//​ (colonne ''​ERR''​).((**(//​en//​)** [[https://​docs.pipewire.org/​page_man_pw-top_1.html|documentation de pw-top]])) 
 + 
 +On peut généralement remédier au problème en réduisant la fréquence d'​échantillonnage (//sample rate//) et la taille du tampon (//buffer size// ou //​quantum//​),​ comme indiqué dans le chapitre //​[[#​Optimisation]]//​.
  
 ==== Delay Bluetooth ==== ==== Delay Bluetooth ====
Ligne 269: Ligne 304:
  
 À cette fin on peut trouver des informations au chapitre //Delay// de [[https://​docs.pipewire.org/​page_module_filter_chain.html#​Delay|la documentation]] en anglais.\\ À cette fin on peut trouver des informations au chapitre //Delay// de [[https://​docs.pipewire.org/​page_module_filter_chain.html#​Delay|la documentation]] en anglais.\\
-Une autre possibilité peut-être plus simple (mais plus lourde) est d'​ajouter un [[mao#​effets|effet]] [[:​jackd|JACK]] ou [[:LV2]] qui propose ce genre de chose dans la chaîne audio (un //​[[wpfr>​Delay_(effet)|delay]]//​ sans //​feedback//​ et 100% //wet// - sans signal source).+Une autre possibilité peut-être plus simple (mais plus lourde) est d'​ajouter un [[:mao#​effets|effet]] [[:​jackd|JACK]] ou [[:LV2]] qui propose ce genre de chose dans la chaîne audio (un //​[[wpfr>​Delay_(effet)|delay]]//​ sans //​feedback//​ et 100% //wet// - sans signal source).
  
 ===== Voir aussi ===== ===== Voir aussi =====
  • pipewire.1751941602.txt.gz
  • Dernière modification: Le 08/07/2025, 04:26
  • par krodelabestiole
  • Actuellement bloqué par: krodelabestiole