| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| pipewire [Le 20/04/2026, 20:11] – [Routage] +chapitre qpwgraph et cable krodelabestiole | pipewire [Le 29/06/2026, 22:06] (Version actuelle) – [Changer la sortie son avec un script] mise en forme krodelabestiole |
|---|
| * les [[:environnements|environnements de bureau]] d'Ubuntu ([[:GNOME]], [[:KDE]], etc.) prennent en charge les fonctionnalités de base de **PipeWire** : gestion du volume depuis les boutons multimédia du clavier ou des raccourcis sur la [[:gnome-shell#barre supérieure]] (ou barre de tâches), choix des entrées et sorties audio par défaut au moins dans les [[:gnome-control-center|paramètres système]]. | * les [[:environnements|environnements de bureau]] d'Ubuntu ([[:GNOME]], [[:KDE]], etc.) prennent en charge les fonctionnalités de base de **PipeWire** : gestion du volume depuis les boutons multimédia du clavier ou des raccourcis sur la [[:gnome-shell#barre supérieure]] (ou barre de tâches), choix des entrées et sorties audio par défaut au moins dans les [[:gnome-control-center|paramètres système]]. |
| |
| * **[[https://github.com/dimtpap/coppwr|coppwr]]** fournit une gestion beaucoup plus complète, et donne accès à quantité d'informations et de réglages de bas niveau. Il propose entre autre un //graph// pour configurer le [[#routage]]. **coppwr** est disponible en [[:flatpak]] sur le dépôt [[https://flathub.org/apps/io.github.dimtpap.coppwr|Flathub]] et peut donc s'installer en suivant [[:gerer_flatpak#pre-requis|cette procédure]] puis en installant le paquet ''io.github.dimtpap.coppwr''. | * **[[#qpwgraph]]** est probablement l'interface la plus utilisée pour [[#router]] les signaux audio, vidéo et [[:MIDI]] (utilise la bibliothèque [[:Qt]]). |
| |
| * **[[https://github.com/rncbc/qpwgraph|qpwgraph]]** est probablement l'interface la plus utilisée pour [[#router]] les signaux audio, vidéo et [[:MIDI]] (utilise la bibliothèque [[:Qt]]). | * **[[#Cable]]** permet de définir la résolution de travail de **PipeWire** (voir //[[#Optimisation]]//), ainsi que de choisir facilement **différents profils** pour ses interfaces audio. Il offre aussi un //graph// pour le [[#routage]], un //mixer//, une visualisation de ''[[man>pw-top]]'', et la gestion de la latence. Il est disponible en [[:deb]] isolé, en [[:Appimage]], ou en [[:Flatpak]] isolé sur son [[https://github.com/magillos/Cable/releases|GitHub]]. |
| |
| * **[[https://gitlab.freedesktop.org/pipewire/helvum|Helvum]]** est une alternative à **qpwgraph**, également consacrée au [[#routage]], utilisant la bibliothèque [[:GTK]]. | * **[[https://github.com/dimtpap/coppwr|coppwr]]** fournit une gestion extrêmement complète, et donne accès à quantité d'informations et de réglages de bas niveau. Il est cependant moins //user friendly// que [[#cable]], par exemple. Il propose entre autre un //graph// pour configurer le [[#routage]]. **coppwr** est disponible en [[:flatpak]] sur le dépôt [[https://flathub.org/fr/apps/io.github.dimtpap.coppwr|Flathub]] et peut donc s'installer en suivant [[:gerer_flatpak#pre-requis|cette procédure]] puis en installant le paquet ''io.github.dimtpap.coppwr''. |
| |
| * **[[https://github.com/saivert/pwvucontrol|pwvucontrol]]** se propose de remplacer **[[pavucontrol]]** pour PipeWire (gestion du mixage et divers paramètres). Il est disponible en [[:Flatpak]] sur le dépôt [[https://flathub.org/fr/apps/com.saivert.pwvucontrol|Flathub]] et peut donc s'installer en suivant [[:gerer_flatpak#pre-requis|cette procédure]] puis en installant le paquet ''com.saivert.pwvucontrol''. | * **[[https://gitlab.freedesktop.org/pipewire/helvum|Helvum]]** est une alternative à **[[#qpwgraph]]**, également consacrée au [[#routage]], utilisant la bibliothèque [[:GTK]]. |
| |
| * **[[https://github.com/magillos/Cable|Cable]]** permet de définir la résolution de travail de **PipeWire** (voir //[[#Optimisation]]//), ainsi que de choisir facilement **différents profils** pour ses interfaces audio. Il offre aussi un //graph// pour le [[#routage]], un //mixer//, une visualisation de ''[[man>pw-top]]'', et la gestion de la latence. Il est disponible en [[:deb]] isolé, en [[:Appimage]], ou en [[:Flatpak]] isolé sur son [[https://github.com/magillos/Cable/releases|GitHub]].((Voir si besoin son //[[https://github.com/magillos/Cable/blob/main/README.md|README]]// pour la liste des dépendances à installer : ''[[apt>python3-jack-client libqt6svg6 jack-delay python3-pyqt6 python3-dbus python3-requests python3-packaging aj-snapshot python3-alsaaudio pipewire-jack]]''.)) (Utilise [[:Python]] et [[:Qt]].) | * **[[https://github.com/saivert/pwvucontrol|pwvucontrol]]** se propose de remplacer **[[pavucontrol]]** pour PipeWire (gestion du mixage et divers paramètres). Il est disponible en [[:Flatpak]] sur le dépôt [[https://flathub.org/fr/apps/com.saivert.pwvucontrol|Flathub]] et peut donc s'installer en suivant [[:gerer_flatpak#pre-requis|cette procédure]] puis en installant le paquet ''com.saivert.pwvucontrol''. |
| |
| * **[[https://github.com/dyegoaurelio/simple-wireplumber-gui|Simple Wireplumber GUI]]** permet de renommer ses périphériques audio et d'afficher leurs propriétés. Il est disponible en [[:Flatpak]] sur le dépôt [[https://flathub.org/fr/apps/io.github.dyegoaurelio.simple-wireplumber-gui|Flathub]] et peut donc s'installer en suivant [[:gerer_flatpak#pre-requis|cette procédure]] puis en installant le paquet ''io.github.dyegoaurelio.simple-wireplumber-gui''. | * **[[https://github.com/dyegoaurelio/simple-wireplumber-gui|Simple Wireplumber GUI]]** permet de renommer ses périphériques audio et d'afficher leurs propriétés. Il est disponible en [[:Flatpak]] sur le dépôt [[https://flathub.org/fr/apps/io.github.dyegoaurelio.simple-wireplumber-gui|Flathub]] et peut donc s'installer en suivant [[:gerer_flatpak#pre-requis|cette procédure]] puis en installant le paquet ''io.github.dyegoaurelio.simple-wireplumber-gui''. |
| En plus d'utiliser simultanément plusieurs logiciels et interfaces matérielles, PipeWire permet de les relier ensemble dans n'importe quel sens, à la manière d'un studio virtuel. | En plus d'utiliser simultanément plusieurs logiciels et interfaces matérielles, PipeWire permet de les relier ensemble dans n'importe quel sens, à la manière d'un studio virtuel. |
| |
| On peut gérer ces connexions en ligne de commande mais il est probablement beaucoup plus pratique d'utiliser une [[#interfaces graphiques|interface graphique]], telle que [[https://gitlab.freedesktop.org/rncbc/qpwgraph|qpwgraph]], qui remplace avantageusement [[:QjackCtl]] (qu'on utilisait pour [[:jackd|JACK]]). | On peut gérer ces connexions en ligne de commande mais il est probablement beaucoup plus pratique d'utiliser une [[#interfaces graphiques|interface graphique]], telle que [[#qpwgraph]] ou [[#Cable]], qui remplacent avantageusement [[:QjackCtl]] (qu'on utilisait pour [[:jackd|JACK]]). |
| |
| Par ailleurs il n'est absolument pas indispensable d'utiliser d'interface de ce type. Les simples connexions sont gérées automatiquement depuis les paramètres de l'[[:environnements|environnement de bureau]] : en choisissant une sortie audio dans le [[:gnome-shell#le_menu_systeme|menu système de GNOME]] par ex., les logiciels du bureau (tels que le navigateur internet ou les lecteurs audio ou vidéo) se connecteront automatiquement au périphérique audio sélectionné. **qpwgraph**, **cable** ou coppwer peuvent permettre de visualiser ce comportement. | Par ailleurs il n'est absolument pas indispensable d'utiliser d'interface de ce type. Les simples connexions sont gérées automatiquement depuis les paramètres de l'[[:environnements|environnement de bureau]] : en choisissant une sortie audio dans le [[:gnome-shell#le_menu_systeme|menu système de GNOME]], ou dans [[:gnome-control-center|GNOME Paramètres]] -> //Son// par ex., les applications du bureau (tels que le navigateur internet ou les lecteurs audio ou vidéo) se connecteront automatiquement au périphérique audio sélectionné. **[[#qpwgraph]]**, **[[#Cable]]** ou **[[https://github.com/dimtpap/coppwr|coppwr]]** peuvent permettre de visualiser ce comportement. |
| |
| <note tip> | <note tip> |
| === qpwgraph === | === qpwgraph === |
| |
| **qpwgraph** est disponible depuis les dépots officiels : ''[[apt>qpwgraph]]'' ou en [[https://flathub.org/apps/details/org.rncbc.qpwgraph|Flatpak]]. | **[[https://github.com/rncbc/qpwgraph|qpwgraph]]**(([[https://gitlab.freedesktop.org/rncbc/qpwgraph|GitLab Freedesktop]])) est disponible depuis les dépots officiels : ''[[apt>qpwgraph]]'' ou en [[https://flathub.org/fr/apps/org.rncbc.qpwgraph|Flatpak]]. |
| |
| Chaque élément (matériel ou logiciel) apparaît comme un bloc avec ses entrées à gauche et ses sorties à droite. On peut les relier les unes aux autres en tirant des liens par cliquer-glisser. Les liens peuvent ainsi conduire des signaux d'un logiciel ou d'un périphérique à l'autre. Des signaux : | Chaque élément (matériel ou logiciel) apparaît comme un bloc avec ses entrées à gauche et ses sorties à droite. On peut les relier les unes aux autres en tirant des liens par cliquer-glisser. Les liens peuvent ainsi conduire des signaux d'un logiciel ou d'un périphérique à l'autre. Des signaux : |
| wget https://github.com/magillos/Cable/releases/download/0.10.5/Cable-0.10.5.deb | wget https://github.com/magillos/Cable/releases/download/0.10.5/Cable-0.10.5.deb |
| sudo apt install ./Cable-0.10.5.deb | sudo apt install ./Cable-0.10.5.deb |
| -- À adapter en fonction de la dernière version disponible sur [[https://github.com/magillos/Cable/releases/latest|GitHub]]. | -- À adapter en fonction de la dernière version disponible sur [[https://github.com/magillos/Cable/releases/latest|GitHub]].\\ |
| | On peut aussi mettre l'application à jour avec le bouton //Settings// sur la fenêtre d'accueil -> //Check for new version//. |
| |
| {{:captures:cable_home.png?300|Cable - accueil}} | {{:captures:cable_home.png?300|Cable - accueil}} |
| |
| En bas de la page d'accueil de **Cable**, cliquer sur le bouton //Cables// pour ouvrir la fenêtre principale de l'application. | En bas de la page d'accueil de **Cable**, cliquer sur le bouton //Cables// pour ouvrir la fenêtre principale de l'application. |
| | |
| | <note tip> |
| | On peut aussi changer l'interface pour avoir la fenêtre d'accueil intégrée comme les autres onglets, et donc tout dans une fenêtre unique :\\ |
| | cliquer sur le bouton //Settings// en bas de la fenêtre d'accueil -> puis cocher //Integrate Cable and Cables//. |
| | </note> |
| |
| {{:captures:cable_graph.png?700|Cable - graph}} | {{:captures:cable_graph.png?700|Cable - graph}} |
| |
| Il est possible de modifier ces paramètres sans éditer de fichier ou entrer la moindre ligne de commande : | Il est possible de modifier ces paramètres sans éditer de fichier ou entrer la moindre ligne de commande : |
| * soit au moyen de **[[https://extensions.gnome.org/extension/7699/pipewire-settings/|Pipewire Settings]]**, une [[:extensions-gnome|extension GNOME]] très simple et dédiée spécifiquement à ces réglages (sélectionner //Persist settings// pour conserver les réglages pour les prochaines sessions)((Merci à socratisator [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22838522#p22838522|sur le forum]] pour la découverte de cette extension !)) | * **[[https://extensions.gnome.org/extension/7699/pipewire-settings/|Pipewire Settings]]** est une [[:extensions-gnome|extension GNOME]] très simple et dédiée spécifiquement à ces réglages (sélectionner //Persist settings// pour conserver les réglages pour les prochaines sessions)((Merci à socratisator [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22838522#p22838522|sur le forum]] pour la découverte de cette extension !)) |
| |
| * soit au moyen de **[[https://github.com/dimtpap/coppwr|coppwr]]**, l'[[#Interfaces graphiques|interface graphique]] actuellement la plus puissante pour PipeWire.\\ 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// ! | * La fenêtre d'accueil de **[[#Cable]]** permet d'ajuster ces paramètres très simplement quel que soit l'[[:environnements|environnement de bureau]], et de relancer **PipeWire** après modification. Un vumètre affiche le chargement DSP (la puce dédiée au traitement audio). |
| | |
| | * **[[https://github.com/dimtpap/coppwr|coppwr]]**, l'[[#Interfaces graphiques|interface graphique]] actuellement la plus puissante pour PipeWire.\\ 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// ! |
| |
| === En ligne de commande === | === En ligne de commande === |
| Pour changer de sortie audio la syntaxe est : | Pour changer de sortie audio la syntaxe est : |
| <code>wpctl set-default ID</code> | <code>wpctl set-default ID</code> |
| où ID est le numéro de la sortie. | où ''ID'' est le numéro de la sortie. |
| |
| Ce numéro est visible dans la section "Sinks" en exécutant la commande : | Ce numéro est visible dans la section ''Sinks'' en exécutant la commande : |
| <code>wpctl status</code> | <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. | Problème : ce numéro change à chaque redémarrage ! Il faut donc le récupérer via la commande ''[[man>grep]]'' en cherchant le nom de la sortie qui lui ne change pas. |
| |
| | Voici un exemple de [[:bash|script]] pour changer la sortie vers le HDMI (remplacer le texte entre guillemets ''""'' par le nom de votre interface -- notez le caractère d'échappement ''\'' ajouté devant ''['' et '']'') : |
| 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 ] ) : | <file> |
| <code bash> | |
| #!/bin/bash | #!/bin/bash |
| idhdmi=$(wpctl status | grep "Baffin HDMI/DP Audio \[Radeon RX 550 640SP / RX 560/560X\] D" | cut -c 10-12) | idhdmi=$(wpctl status | grep "Baffin HDMI/DP Audio \[Radeon RX 550 640SP / RX 560/560X\] D" | cut -c 10-12) |
| wpctl set-default $idhdmi | wpctl set-default $idhdmi |
| exit 0 | exit 0 |
| </code> | </file> |
| |
| Lorsque votre script est au point, vous pouvez créer un raccourci clavier personnalisé pour le lancer avec la commande | Lorsque votre [[:bash|script]] est au point, vous pouvez créer un raccourci clavier ou un [[:raccourci-lanceur|lanceur]] personnalisé avec la commande : |
| <code>bash nom-du-fichier-script.sh</code> | <code>bash nom-du-fichier-script.sh</code> |
| |