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édentesRévision précédente
Prochaine révision
Révision précédente
pipewire [Le 07/10/2025, 13:54] – +Craquements, "hachage" krodelabestiolepipewire [Le 20/04/2026, 21:57] (Version actuelle) – détails copwr krodelabestiole
Ligne 1: Ligne 1:
 {{tag>Kinetic multimédia audio vidéo mao}} {{tag>Kinetic multimédia audio vidéo mao}}
  
-{{ :logo:pipewire.png?100| logo de PipeWire}}+{{ :logo:pipewire.png?100|Logo de PipeWire}}
 ====== PipeWire ====== ====== PipeWire ======
  
 **PipeWire** est le serveur de son installé par défaut sur Ubuntu à partir de la version [[:kinetic|Kinetic 22.10]]. **PipeWire** est le serveur de son installé par défaut sur Ubuntu à partir de la version [[:kinetic|Kinetic 22.10]].
  
-Un serveur de son permet à plusieurs applications d'utiliser simultanément les pilotes de la carte son, afin de pouvoir être toutes audibles et utilisées simultanément.+Un [[:audio#les_serveurs_de_sons|serveur de son]] permet entre autre à plusieurs applications d'utiliser simultanément les pilotes de la carte son, afin de pouvoir être toutes audibles et utilisées simultanément. Il permet aussi de configurer la manière dont le système gère l'audio en général.
  
 Il remplace [[:PulseAudio]], le serveur de son installé par défaut jusqu'à [[:jammy|Ubuntu Jammy 22.04]]. Il propose en plus les fonctionnalités avancées utiles dans le domaine de la [[:MAO]] que proposait jusqu'ici le serveur [[:jackd|JACK]], qu'il remplace aussi, avec une configuration simplifiée. Il rend possible l'utilisation simultanée de n'importe lesquels de ses logiciels et appareils audio. On peut par exemple pré-écouter un flux audio sur des oreillettes bluetooth tandis qu'on en diffuse un autre sur la carte son intégrée à son ordinateur, le tout en enregistrant le micro de sa webcam dans [[:Audacity]]... Il remplace [[:PulseAudio]], le serveur de son installé par défaut jusqu'à [[:jammy|Ubuntu Jammy 22.04]]. Il propose en plus les fonctionnalités avancées utiles dans le domaine de la [[:MAO]] que proposait jusqu'ici le serveur [[:jackd|JACK]], qu'il remplace aussi, avec une configuration simplifiée. Il rend possible l'utilisation simultanée de n'importe lesquels de ses logiciels et appareils audio. On peut par exemple pré-écouter un flux audio sur des oreillettes bluetooth tandis qu'on en diffuse un autre sur la carte son intégrée à son ordinateur, le tout en enregistrant le micro de sa webcam dans [[:Audacity]]...
  
-Il dispose de plus des couches de rétro-compatibilité avec les serveurs de son ALSA, [[:PulseAudio]], et [[:jackd|JACK]]. +Il dispose de plus des couches de rétro-compatibilité avec les serveurs de son [[:ALSA]], [[:PulseAudio]], et [[:jackd|JACK]].\\ 
-Pour en bénéficier il faut [[:tutoriel:comment_installer_un_paquet|installer les paquets]] ''[[apt>pipewire-alsa]]'', ''[[apt>pipewire-pulse]]'' et ''[[apt>pipewire-jack]]''. Grâce à ces paquets, les applications compatibles voient respectivement des serveurs ALSA, [[:PulseAudio]], ou [[:jackd|JACK]] tourner, et peuvent s'y connecter. Il s'agit en fait à chaque fois de PipeWire.+Pour en bénéficier il faut [[:deb#installer_un_paquet_deb|installer les paquets]] ''[[apt>pipewire-alsa]]'', ''[[apt>pipewire-pulse]]'' et ''[[apt>pipewire-jack]]''. Grâce à ces paquets, les applications compatibles voient respectivement des serveurs [[:ALSA]], [[:PulseAudio]], ou [[:jackd|JACK]] tourner, et peuvent s'y connecter. Il s'agit en fait à chaque fois de PipeWire.
  
-PipeWire dispose aussi de fonctionnalités permettant de gérer des flux vidéo, utiles par ex. pour des applications de [[:streaming]].+PipeWire dispose aussi de fonctionnalités permettant de gérer des flux vidéo, utiles par ex. pour des applications de //[[:streaming]]//.
  
 ===== Installation ===== ===== Installation =====
  
 **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, quelle 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'[[:deb#installer_un_paquet_deb|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...
  
-Vous pouvez si besoin installer les paquets ''[[apt>pipewire-jack]]'' pour profiter des applications compatibles [[:jackd|JACK]], et ''[[apt>pipewire-alsa]]'' pour intégrer celles censées se connecter directement au serveur de son d'ALSA.((Ces paquets sont fournis par le [[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]].))+Vous pouvez si besoin installer les paquets ''[[apt>pipewire-jack]]'' pour profiter des applications compatibles [[:jackd|JACK]], et ''[[apt>pipewire-alsa]]'' pour intégrer celles censées se connecter directement au serveur de son d'[[:ALSA]].((Ces paquets sont fournis par le [[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]].))
  
 <note tip> <note tip>
-Avec ''[[apt>pipewire-pulse]]'' et ''[[apt>pipewire-jack]]'', il est conseillé de [[:tutoriel:comment_supprimer_un_paquet|désinstaller]] respectivement [[:PulseAudio]] (paquet ''pulseaudio'') et [[:jackd|JACK]] (paquet ''jackd''), qui deviennent inutiles, et peuvent être gênants.+Avec ''[[apt>pipewire-pulse]]'' et ''[[apt>pipewire-jack]]'', il est conseillé de [[:deb#desinstaller_un_paquet_deb|désinstaller]] respectivement [[:PulseAudio]] (paquet ''pulseaudio'') et [[:jackd|JACK]] (paquet ''jackd''), qui deviennent inutiles, et peuvent être gênants.
 </note> </note>
  
Ligne 39: Ligne 39:
 ==== Focal 20.04 ==== ==== Focal 20.04 ====
  
-Sur ces versions plus anciennes il est possible d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>pipewire]]'' depuis les dépôts officiels à partir de [[:focal|Focal 20.04]] ([[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]] pour cette version précise).+Sur ces versions plus anciennes il est possible d'[[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>pipewire]]'' depuis les dépôts officiels à partir de [[:focal|Focal 20.04]] ([[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]] pour cette version précise).
  
 === Installer le gestionnaire WirePlumber (recommandé) === === Installer le gestionnaire WirePlumber (recommandé) ===
Ligne 47: Ligne 47:
 Pour installer **WirePlumber** sur ces anciennes versions d'Ubuntu, il faut [[:ppa#ajout_d_un_ppa_a_vos_sources_logicielles|ajouter le PPA]] ''ppa:pipewire-debian/wireplumber-upstream''((https://launchpad.net/~pipewire-debian/+archive/ubuntu/wireplumber-upstream)). Pour installer **WirePlumber** sur ces anciennes versions d'Ubuntu, il faut [[:ppa#ajout_d_un_ppa_a_vos_sources_logicielles|ajouter le PPA]] ''ppa:pipewire-debian/wireplumber-upstream''((https://launchpad.net/~pipewire-debian/+archive/ubuntu/wireplumber-upstream)).
  
-[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] additionnels de PipeWire : ''[[apt>gstreamer1.0-pipewire libpipewire-0.3-{0,dev,modules} libspa-0.2-{bluetooth,dev,jack,modules} pipewire{,-{audio-client-libraries,pulse,bin,jack,alsa,v4l2,libcamera,locales,tests}}]]''.+[[:deb#installer_un_paquet_deb|Installez les paquets]] additionnels de PipeWire : ''[[apt>gstreamer1.0-pipewire libpipewire-0.3-{0,dev,modules} libspa-0.2-{bluetooth,dev,jack,modules} pipewire{,-{audio-client-libraries,pulse,bin,jack,alsa,v4l2,libcamera,locales,tests}}]]''.
  
 Installez le gestionnaire de session ''[[apt>wireplumber{,-doc} gir1.2-wp-0.4 libwireplumber-0.4-{0,dev}]]''. Installez le gestionnaire de session ''[[apt>wireplumber{,-doc} gir1.2-wp-0.4 libwireplumber-0.4-{0,dev}]]''.
  
-Maintenant, cachez votre ancien serveur de son **PulseAudio**.((Voir étape 3a de [[https://github.com/pipewire-debian/pipewire-debian#1-add-the-launchpad-ppa|la documentation officielle]].))+Maintenant, cachez votre ancien serveur de son **PulseAudio**.((Voir étape 3a de [[https://github.com/pipewire-debian/pipewire-debian?tab=readme-ov-file#a-disabling-pulseaudio|la documentation officielle]].))
  
 <note tip>Il n'est pas indispensable de supprimer **PulseAudio** pour le remplacer par **PipeWire**.</note> <note tip>Il n'est pas indispensable de supprimer **PulseAudio** pour le remplacer par **PipeWire**.</note>
Ligne 60: Ligne 60:
 </code> </code>
  
-Lancez cette commande pour autoriser et lancer PipeWire.((Voir étape 3b de [[https://github.com/pipewire-debian/pipewire-debian#1-add-the-launchpad-ppa|la documentation officielle]].))+Lancez cette commande pour autoriser et lancer PipeWire.((Voir étape 3b de [[https://github.com/pipewire-debian/pipewire-debian?tab=readme-ov-file#b-enabling-pipewire-related-stuff|la documentation officielle]].))
 <code> <code>
 systemctl --user --now enable pipewire{,-pulse}.{socket,service} filter-chain systemctl --user --now enable pipewire{,-pulse}.{socket,service} filter-chain
Ligne 76: Ligne 76:
 <note>Il est aussi possible d'installer **PipeWire** et tous ses outils sur des versions plus anciennes qui ne les incluent pas dans les dépôts par défaut, à partir d'Ubuntu [[:bionic|Bionic 18.04]]. <note>Il est aussi possible d'installer **PipeWire** et tous ses outils sur des versions plus anciennes qui ne les incluent pas dans les dépôts par défaut, à partir d'Ubuntu [[:bionic|Bionic 18.04]].
  
-Il faut pour cela [[:ppa#ajout_d_un_ppa_a_vos_sources_logicielles|ajouter les PPA]] **ppa:pipewire-debian/pipewire-upstream**((https://launchpad.net/~pipewire-debian/+archive/ubuntu/pipewire-upstream)) et **ppa:pipewire-debian/wireplumber-upstream**((https://launchpad.net/~pipewire-debian/+archive/ubuntu/wireplumber-upstream)) dans vos sources de logiciels.+Il faut pour cela [[:ppa#ajout_d_un_ppa_a_vos_sources_logicielles|ajouter les PPA]] ''ppa:pipewire-debian/pipewire-upstream''((https://launchpad.net/~pipewire-debian/+archive/ubuntu/pipewire-upstream)) et ''ppa:pipewire-debian/wireplumber-upstream''((https://launchpad.net/~pipewire-debian/+archive/ubuntu/wireplumber-upstream)) dans vos sources de logiciels.
  
 Voir ici la documentation en anglais à ce sujet : https://pipewire-debian.github.io/pipewire-debian/</note> Voir ici la documentation en anglais à ce sujet : https://pipewire-debian.github.io/pipewire-debian/</note>
Ligne 97: Ligne 97:
  
 Il existe différentes interfaces graphiques permettant de gérer **PipeWire** : Il existe différentes interfaces graphiques permettant de gérer **PipeWire** :
-  * en particulier **[[https://github.com/dimtpap/coppwr|coppwr]]** fournit un 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 [[:tutoriel:installer_application_flatpak|cette procédure]] puis en installant le paquet ''io.github.dimtpap.coppwr''+  * 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/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]])+ 
-  * **[[https://gitlab.freedesktop.org/pipewire/helvum|Helvum]]** est une alternative à **qpwgraph**, également consacrée au [[#routage]], utilisant la bibliothèque [[:GTK]].+  * **[[#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://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://gitlab.freedesktop.org/pipewire/helvum|Helvum]]** est une alternative à **[[#qpwgraph]]**, également consacrée au [[#routage]], utilisant la bibliothèque [[:GTK]]. 
 + 
 +  * **[[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://codeberg.org/sonusmix/sonusmix|Sonusmix]]** propose des fonctionnalités de mixage proches de **pwvucontrol**, avec la possibilité de personnaliser plus finement l'interface, ce qui le rend probablement moins intuitif. Il est distribué en [[:Flatpak]] et en [[:Appimage]] sur [[https://codeberg.org/sonusmix/sonusmix/releases|son site]]. 
 + 
 +  * de nombreuses [[:extensions-gnome|extensions de GNOME]] permettent d'accéder facilement et graphiquement à certaines fonctionnalités particulières de **PipeWire**voir le [[https://extensions.gnome.org/#search=pipewire|site des extensions]].
  
 ==== Routage ==== ==== Routage ====
Ligne 105: Ligne 119:
 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]]).
  
-**qpwgraph** est disponible depuis les dépots officiels : ''[[apt>qpwgraph]]'' ou en [[https://flathub.org/apps/details/org.rncbc.qpwgraph|Flatpak]].+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> 
 +On peut aussi visualiser les connexions actives au moyen de la commande : 
 +<code>wpctl status</code> 
 +Chaque connexion est un "//Stream//" représenté par ''source > destination''
 +</note> 
 + 
 +{{ :icons:qpwgraph.png?90|Icône de qpwgraph}} 
 +=== qpwgraph === 
 + 
 +**[[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 :
Ligne 114: Ligne 139:
   * ou vidéo (en bleu)   * ou vidéo (en bleu)
  
-{{:captures:qpwgraph_screenshot-1.png?400|}} +{{:captures:qpwgraph_screenshot-1.png?600|}}
- +
-Il n'est pas indispensable d'utiliser cette interface. 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** peut permettre de visualiser ce comportement.+
  
 Le routage vidéo permet de diriger le ou les flux vidéo de webcams, de cartes d'[[:capture_video|acquisition vidéo]], ou de lecteurs vidéos, vers un ou des logiciel(s) de //streaming// (tel que [[:OBS]]), ou de capture ([[:VJing]] ou enregistrement), ou autres logiciels multimédia en temps réel. Le routage vidéo permet de diriger le ou les flux vidéo de webcams, de cartes d'[[:capture_video|acquisition vidéo]], ou de lecteurs vidéos, vers un ou des logiciel(s) de //streaming// (tel que [[:OBS]]), ou de capture ([[:VJing]] ou enregistrement), ou autres logiciels multimédia en temps réel.
 +
 +
 +{{ :icons:cable.png?90|Icône de Cable}}
 +=== Cable ===
 +
 +**[[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// [[:ALSA]], une visualisation de ''[[man>pw-top]]'', et des tests de latence.
 +
 +Il est disponible en [[:deb]] isolé, en [[:Appimage]], ou en [[:Flatpak]] isolé sur son [[https://github.com/magillos/Cable/releases/latest|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]].)
 +
 +Pour installer la version [[:deb]] (voir //[[:installer_un_paquet_deb#Installer un paquet isolé]]//) :
 +  wget https://github.com/magillos/Cable/releases/download/0.10.5/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]].\\
 +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}}
 +
 +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> <note tip>
-On peut aussi visualiser ces connexions actives sans passer par **qpwgraph** au moyen de la commande +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 :\\ 
-<code>wpctl status</code> +cliquer sur le bouton //Settings// en bas de la fenêtre d'accueil -puis cocher //Integrate Cable and Cables//.
-Chaque connexion est un "//Stream//" représenté par ''source destination''.+
 </note> </note>
 +
 +{{:captures:cable_graph.png?700|Cable - graph}}
 +
 +L'onglet //Graph// permet d'afficher une interface similaire à [[#qpwgraph]] :\\
 +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 flux d'un logiciel ou d'un périphérique à l'autre. Des flux audio (en bleu) et [[:MIDI]] JACK (en rouge).
  
 ==== Optimisation ==== ==== Optimisation ====
  
-En [[:MAO]]on a souvent besoin de jouer le son //en temps réel//. Malheureusement le matériel électronique et les ordinateurs en particulier introduisent un problème qu'on appelle le //**temps de latence**// : il s'agit du délai qui apparaît entre le moment où on demande à la machine de reproduire un son (en appuyant sur une touche d'un clavier par exemple), et celui où le son sort effectivement des haut-parleurs.\\ +<note important>Pour des explications générales concernant l'optimisation audiole temps de latence, et les //xruns//, n'hésitez pas à consulter avant tout le chapitre //[[:mao#optimisation audio]]// sur la page //[[:MAO]]//.</note>
-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 maximumLa 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]].))+Diverses optimisations permettent de réduire le temps de latence sans surcharger le processeur, afin d'éviter les décrochages //xruns//Les plus importantes optimisations consistent à ajuster la **//buffer size//** (taille du tampon, appelée **//quantum//** chez PipeWire)et le **//sample rate//** (fréquence d'échantillonnage). À ce sujet, voir //[[:mao#optimisation audio]]//.
  
-<note tip>Il est aussi possible de modifier ces paramètres sans éditer de fichier ou entrer la moindre ligne de commande !+En résumé : 
 +On considère généralement qu'une **fréquence d'échantillonnage** (//sample rate//de 48000 Hz est suffisante. 
 +> Le jeu consiste donc généralement plutôt à baisser la **taille du tampon** (//buffer size// ou //quantum//) autant que nécessaire, sans surcharger le processeur (ce qui créé des craquements audibles). Cette valeur doit être une puissance de 2. 
  
-On peut pour cela utiliser l'[[#Interfaces graphiques|interface graphique]] la plus puissante pour PipeWire : **[[https://github.com/dimtpap/coppwr|coppwr]]**.+Pour PipeWire, ceci peut se faire [[#en ligne de commande]], ou [[#graphiquement]] :
  
-On trouvera ces paramètres dans le menu //Tools// -> //Context Manager//.\\ +=== Graphiquement === 
-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>+Il est possible de modifier ces paramètres sans éditer de fichier ou entrer la moindre ligne de commande : 
 +  * **[[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 !)) 
 + 
 +  * 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 ===
  
 <code> <code>
Ligne 145: Ligne 199:
 pw-metadata -n settings 0 clock.force-quantum <buffersize> pw-metadata -n settings 0 clock.force-quantum <buffersize>
 </code> </code>
-  * Remplacer ''<samplerate>'' par la fréquence d’échantillonnage désirée. Plus cette taille est élevée meilleure est la qualité, plus court est la latence, mais plus haute est la consommation CPU. Les interfaces audio utilisent généralement des fréquences de 41000Hz48000Hz, ou 96000Hz.((Sachant que l'oreille humaine n'entend pas de fréquence supérieure à 20000Hz.)) +  * Remplacer ''<samplerate>'' par la **[[wpfr>fréquence d’échantillonnage]]** désirée. Plus cette taille est élevée meilleure est la qualité (théorique), plus courte est la latence, mais plus haute est la consommation CPU. Les interfaces audio utilisent généralement des fréquences de 44100 Hz48000 Hz, ou 96000 Hz (voire 192 kHz). 48000 Hz est généralement une valeur correcte, sachant que l'oreille humaine n'entend pas de fréquence supérieure à 20000 Hz, et qu'on peut reproduire cette fréquence en échantillonnant au double (donc à 40 kHz). À moins de vouloir enregistrer les chauves-sourisl'échantillonnage à des valeurs supérieures est donc principalement un argument //marketing//.
-  * Remplacer ''<buffersize>'' par la taille de tampon (en nombre de //samples//). Cette valeur doit être une puissance de 2. +
-''quantum'' correspond ici à la taille de tampon (qu'on appelle généralement plutôt //buffer//). +
-<note>Pour les cartes sons USBcertaines combinaisons de framerate / buffer sont préférables à d'autres : voir sur [[https://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface|cette page]] //(en)// les combinaisons indiquées en gras.</note>+
  
-Par exemple, pour une fréquence d’échantillonnage de 48000Hz et un tampon de 256 samples :+  * Remplacer ''<buffersize>'' par la **[[wpfr>Son_numérique_(musique)#Asynchrone|taille de tampon]]** (en nombre de //samples//). Cette valeur doit être une puissance de 2. Plus cette taille est réduite, plus courte est la latence, mais plus haute est la consommation CPU (pas d'impact sur la qualité). Si on ne traite pas d'audio en temps réel (simple lecture [[:multimédia]]), une valeur de 2048 samples sera très confortable pour le processeur (au détriment d'une latence de 64 ms à 48 kHz).\\ ''quantum'' correspond ici à la taille de tampon (que les anglophones appellent généralement plutôt //buffer size//). 
 +<note>Pour les cartes sons USB, certaines combinaisons de //samplerate// / //buffersize// sont préférables à d'autres : voir sur [[https://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface|cette page]] //(en)// les combinaisons indiquées en gras.</note> 
 + 
 +Par exemple, pour une fréquence d’échantillonnage de 48000 Hz et un tampon de 256 samples :
 <code> <code>
 pw-metadata -n settings 0 clock.force-rate 48000 pw-metadata -n settings 0 clock.force-rate 48000
Ligne 166: Ligne 220:
 pw-metadata -n settings 0 clock.force-quantum 0 pw-metadata -n settings 0 clock.force-quantum 0
 </code> </code>
 +
 +<note>Voir aussi la [[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire#samplerate-settings|documentation officielle]] (en anglais).</note>
  
 ==== Gestionnaire de session ==== ==== Gestionnaire de session ====
Ligne 207: Ligne 263:
 ==== Réseau ==== ==== Réseau ====
  
-De la même manière il est possible de créer différents types de //[[#creation_d_appareils_virtuels|virtual sinks]]//, par ex. pour diffuser à distance (//streamer//) de l'audio en utilisant différents protocoles réseaux ([[https://github.com/roc-streaming/roc-toolkit|ROC]], [[wpfr>Real-time_Transport_Protocol|RTP]], [[wpfr>AirPlay_(Apple)|AirPlay]], [[:pulseaudio|Pulse]] Tunnel, [[:jackd|JACK]] Tunnel, etc.). Voir la liste des modules disponibles sur la [[https://docs.pipewire.org/page_pipewire_modules.html|documentation officielle]] et sur le [[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Network|wiki de freedesktop.org]].+De la même manière il est possible de créer différents types de //[[#creation_d_appareils_virtuels|virtual sinks]]//, par ex. pour diffuser à distance (//streamer//) de l'audio en utilisant différents protocoles réseaux ([[https://github.com/roc-streaming/roc-toolkit|ROC]], [[wpfr>Real-time_Transport_Protocol|RTP]], [[wpfr>AirPlay_(Apple)|AirPlay]], [[:pulseaudio|Pulse]] Tunnel, [[:jackd|JACK]] Tunnel, etc.). Voir la liste des modules disponibles sur la [[https://docs.pipewire.org/page_modules.html|documentation officielle]] et sur le [[https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Network|wiki de freedesktop.org]].
  
 Ceci permet de diffuser le son de votre ordinateur (qu'il s'agisse seulement du son de certaines applications ou de l'intégralité des sons du bureau) sur un appareil distant. Ceci permet de diffuser le son de votre ordinateur (qu'il s'agisse seulement du son de certaines applications ou de l'intégralité des sons du bureau) sur un appareil distant.
Ligne 284: Ligne 340:
   * La commande <code>fuser -v /dev/snd/*</code> indique également si on utilise PipeWire et WirePlumber, ou autre serveur de son et [[#gestionnaire de session]].   * La commande <code>fuser -v /dev/snd/*</code> indique également si on utilise PipeWire et WirePlumber, ou autre serveur de son et [[#gestionnaire de session]].
  
-  * Pour obtenir des informations sur votre installation audio, vous pouvez aussi [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>inxi]]'' et lancer la commande : <code>inxi -A</code>+  * Pour obtenir des informations sur votre installation audio, vous pouvez aussi [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>inxi]]'' et lancer la commande : <code>inxi -A</code>
  
   * La commande <code>systemctl --user status pipewire</code> donnera aussi de nombreuses informations sur l'état du serveur.   * La commande <code>systemctl --user status pipewire</code> donnera aussi de nombreuses informations sur l'état du serveur.
Ligne 315: Ligne 371:
   * de nombreuses informations souvent valables aussi pour Ubuntu (mais en anglais), sur la [[https://wiki.archlinux.org/title/PipeWire|documentation de Arch Linux]]   * de nombreuses informations souvent valables aussi pour Ubuntu (mais en anglais), sur la [[https://wiki.archlinux.org/title/PipeWire|documentation de Arch Linux]]
   * **(//en//)** [[https://github.com/mikeroyal/PipeWire-Guide|Guide sur l'écosystème de PipeWire]]   * **(//en//)** [[https://github.com/mikeroyal/PipeWire-Guide|Guide sur l'écosystème de PipeWire]]
-  * [[https://youtu.be/lTv2jJDcPns|Cette vidéo]] en français explique PipeWire, ALSA, [[:PulseAudio]] et [[:jackd|JACK]]. À noter toutefois que PipeWire est désormais aussi performant que [[:jackd|JACK]] (depuis la sortie de la version 1), et qu'il est lui-même un //[[:services|daemon]]//.+  * [[https://youtu.be/lTv2jJDcPns|Cette vidéo]] en français explique PipeWire, [[:ALSA]], [[:PulseAudio]] et [[:jackd|JACK]]. À noter toutefois que PipeWire est désormais aussi performant que [[:jackd|JACK]] (depuis la sortie de la version 1), et qu'il est lui-même un //[[:services|daemon]]//.
  
 ---- ----
-//Contributeurs : [[:utilisateurs:krodelabestiole]]//+//[[:Contributeurs]] : [[:utilisateurs:krodelabestiole]], ...//