PulseAudio — Wikipédia

PulseAudio
Description de l'image PulseAudio-logo.png.
Description de cette image, également commentée ci-après
Interface de configuration de PulseAudio
(PulseAudio Device Chooser sur Ubuntu 7.10)
Informations
Développé par Lennart Poettering
Pierre Ossman
Colin Guthrie
Arun Raghavan
Tanu Kaskinen
David Henningsson
Première version 0.1 (le 17 juillet 2004,
il y a 19 ans
)
Dernière version 17.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt gitlab.freedesktop.org/pulseaudio/pulseaudioVoir et modifier les données sur Wikidata
Écrit en C
Système d'exploitation FreeBSD, Linux, Solaris, Microsoft Windows et macOSVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type Serveur de sons
Licences LGPL (code source, client)
GPL (daemon, serveur)
Site web (en) pulseaudio.org

Chronologie des versions

PulseAudio (anciennement Polypaudio[2]) est un logiciel libre serveur de sons multiplate-forme, développé principalement par Lennart Poettering pour le compte de Red Hat, Pierre Ossman pour Cendio et David Henningsson pour Canonical. Il est en 2020, progressivement remplacé par PipeWire (remplacé en novembre 2020 sous ArchLinux), un service qui a pour but d'unifier JACK (temps réel) et PulseAudio (bureautique et jeu) pour l'audio, ainsi que GStreamer pour la vidéo.

Il permet des échanges audio par le réseau entre des systèmes Linux et Microsoft Windows par exemple.

Il vient se substituer à Enlightened Sound Daemon (en) (ESD).

PulseAudio fonctionne sur les systèmes compatibles POSIX tels que Linux et sous Microsoft Windows. Son code source est publié selon les termes de la licence publique générale limitée GNU (GNU LGPL)[3]. Si la compilation intègre certaines dépendances optionnelles, le daemon et la bibliothèque serveur (libpulsecore) sont publiés selon les termes de la licence publique générale GNU (GNU GPL)[4].

Caractéristiques[modifier | modifier le code]

Les caractéristiques principales de PulseAudio incluent[3] :

  • des contrôles du volume par application[5] ;
  • une architecture de plugin extensible avec support de modules pouvant être chargés ;
  • la compatibilité avec de nombreuses applications audio populaires ;
  • le support de multiples sources et collecteurs audio[N 1] ;
  • une architecture mémoire zero-copy (en) pour une gestion efficace des ressources processeur ;
  • une interface en ligne de commande avec possibilité d'utiliser un langage de script ;
  • un daemon audio avec possibilité de reconfiguration en ligne de commande ;
  • la conversion intégrée de samples et des possibilités de ré-échantillonnage ;
  • la faculté de combiner de multiples cartes son en une seule ;
  • la faculté de synchroniser de multiples flux de lecture.

Fonctionnement[modifier | modifier le code]

Représentation graphique du flux opérationnel de PulseAudio.

PulseAudio est un serveur son, un processus d'arrière-plan qui accepte les entrées son d'une ou plusieurs sources (processus ou périphériques de capture) et les redirige vers un ou plusieurs collecteurs (cartes son, serveurs PulseAudio distants ou autres processus).

PulseAudio utilise un modèle dans lequel ce sont les applications qui envoient le flux audio au serveur, contrairement au serveur son JACK qui détermine quand et dans quel ordre les applications doivent le lui envoyer[6].

Un des objectifs de PulseAudio est de rerouter tous les flux audio — y compris ceux de processus qui tentent d'accéder directement au matériel (telles les anciennes applications OSS). PulseAudio fait cela en fournissant des adaptateurs aux applications qui utilisent d'autres systèmes audio, comme aRts ou ESD.

Selon un scénario d'installation typique sous Linux, l'utilisateur configure ALSA pour utiliser un dispositif virtuel fourni par PulseAudio. Ainsi, les applications utilisant ALSA enverront leur sortie son vers PulseAudio, qui utilisera alors ALSA lui-même pour accéder à la vraie carte son. PulseAudio fournit également sa propre interface native pour les applications qui veulent supporter PulseAudio directement, de même que l'ancienne interface pour les applications ESD, le rendant adapté pour remplacer ESD.

Pour les applications OSS, PulseAudio propose l'utilitaire padsp, qui se substitue aux fichiers de périphériques tels que /dev/dsp, trompant les applications en leur faisant croire qu'elles ont le contrôle exclusif de la carte son. En réalité, leur sortie est reroutée à travers PulseAudio.

Interfaces utilisateur sous Linux[modifier | modifier le code]

Interface en ligne de commande[modifier | modifier le code]

Le paquet pulseaudio-utils fournit les outils en ligne de commande pour diverses fonctionnalités du serveur de sons.

Interface graphique[modifier | modifier le code]

Destiné à l'ordinateur de bureau, PulseAudio est accompagné d'outils auxiliaires dotés d'une interface graphique[3] :

  • padevchooser (PulseAudio Device Chooser) : installe une icône dans la barre des tâches, permet de choisir le serveur, collecteur et source utilisés par défaut et d'accéder aux autres outils ;
  • paman (PulseAudio Manager) : qui permet de configurer le daemon PulseAudio ;
  • paprefs (PulseAudio Preferences) : qui permet de configurer le serveur PulseAudio ;
  • pavucontrol (PulseAudio Volume Control) : qui est un mixeur audio évolué ;
  • pavumeter (PulseAudio Volume Meter) : qui est un VU-mètre simplifié.

En , seul pavucontrol reste activement maintenu par l'équipe de développement de PulseAudio ; padevchooser a été « forké » en 2006 et est concurrencé depuis 2011 par l'outil pasystray (PulseAudio System Tray)[7],[8].

Notes et références[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. Dans l'interface graphique pavucontrol (PulseAudio Volume Control) officiellement traduite en français, sources et collecteurs (sinks, en anglais) sont respectivement appelés périphériques d'entrée et périphériques de sortie.

Références[modifier | modifier le code]

  1. « [ANNOUNCE] PulseAudio 17.0 », (consulté le )
  2. (en) Lennart Poettering, « TPFKAPA: The Project Formerly Known as Polypaudio », sur Pid Eins, 16 juin 2006 (consulté le 10 mars 2016)
  3. a b et c (en) « About PulseAudio », sur freedesktop.org, 29 décembre 2014 (consulté le 10 mars 2016)
  4. (en) « LICENSE », sur freedesktop.org, 30 mars 2015 (consulté le 10 mars 2016)
  5. (en) « Screenshot: PulseAudio volume control showing multiple applications with different volumes », sur fedoraproject.org, 9 juin 2008 (consulté le 8 octobre 2015)
  6. (en) Paul Davis (23-04-2011), « [LAD] jack routing vs pulse routing », linux-audio-dev (consulté le 8 octobre 2015)
  7. (en) Matthew Stoltenberg, « padevchooser », sur GitHub, 28 mai 2006 (consulté le 10 mars 2016)
  8. (en) Christoph Gysin, « pasystray », sur GitHub, 2 octobre 2011 (consulté le 10 mars 2016)

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

  • Liste de logiciels audio pour Linux
  • Pile audio Linux
  • JACK
  • PipeWire

Liens externes[modifier | modifier le code]

Sur les autres projets Wikimedia :