Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
pipewire [Le 18/08/2025, 09:49] krodelabestiole [Installation] typo |
pipewire [Le 07/10/2025, 13:54] (Version actuelle) krodelabestiole +Craquements, "hachage" |
||
---|---|---|---|
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 ===== |