PipeWire 1.0 : l’audio sous Linux arrive (enfin) à maturité

PipeWire 1.0 : l'audio sous Linux arrive (enfin) à maturité

Il fut un temps (et il n’y a pas si longtemps) où si vous vouliez faire du vrai travail audio à faible latence sous Linux, vous deviez faire face à de sérieux problèmes. Ce n’est plus le cas aujourd’hui. PipeWire 1.0, un bus de streaming logiciel audio/vidéo, est enfin disponible après 15 ans de développement.

Le problème que PipeWire résout est que, pendant des années, Linux a eu trois façons différentes – et parfois contradictoires – de traiter l’audio : Advanced Linux Sound Architecture (ALSA), PulseAudio, et JACK Audio Connection Kit (JACK).

  • ALSA fournit des pilotes de carte son pilotés par le noyau et des bibliothèques utilisateur pour les développeurs d’applications.
  • PulseAudio fournit un niveau d’acheminement et de contrôle audio au-dessus d’ALSA. Mais ces deux programmes – ALSA et PulseAudio – ont connu des problèmes, en particulier au cours de leurs premières années d’existence.
  • JACK, quant à lui, est une API de serveur sonore et un daemon pour la prise en charge des connexions audio à faible latence en temps réel entre les applications.

PipeWire ne concernait au départ que le partage de flux vidéo entre processus

ALSA est un outil essentiel pour tout travail audio sous Linux. PulseAudio s’adresse davantage au grand public. Lorsque vous écoutez YouTube Music, Spotify ou Pandora sur votre bureau Linux, vous utilisez certainement PulseAudio. En revanche, si vous êtes un musicien professionnel ou un ingénieur du son, vous avez besoin de JACK. PipeWire, quant à lui, convient aussi bien aux utilisateurs ordinaires qui veulent écouter leur musique qu’aux personnes qui mixent des sessions audio de 24 pistes.

Ce double rôle n’est cependant pas à l’origine de PipeWire. PipeWire ne concernait au départ que le partage de flux vidéo entre processus. Avec l’essor des applications conteneurisées Flatpak et de Wayland, le remplaçant du système de fenêtres X11, les développeurs de PipeWire se sont rendu compte qu’il pouvait faire bien plus.

En particulier, les développeurs pensaient que PipeWire pouvait résoudre les conflits et les limites de PulseAudio et de JACK. Mais PipeWire ne cherche pas seulement à remplacer ces outils. Comme l’a expliqué Wim Taymans, ingénieur logiciel principal chez Red Hat et créateur de PipeWire, dans une interview à Fedora Magazine : “Il faut toujours utiliser les API PulseAudio et JACK. Elles ont fait leurs preuves, elles fonctionnent et elles sont entièrement prises en charge”.

publicité

Aujourd’hui, PipeWire sert de pont entre les applications et les appareils

En effet, M. Taymans poursuit : “Nous n’avons pas encore vu d’applications utiliser la bibliothèque WirePlumber. Je pense que c’est en partie parce que la compatibilité de PulseAudio est si bonne qu’il n’y a pas encore besoin d’applications natives.”

Aujourd’hui, PipeWire sert donc de pont entre les applications et les appareils. Il fournit une méthode universelle permettant aux applications d’établir des flux de médias. Ces flux peuvent être acheminés vers n’importe quel appareil ou application pour être lus ou enregistrés. En outre, pour faciliter l’échange de flux, PipeWire intègre un système permettant de déterminer les connexions entre les applications et les appareils, en spécifiant le lien, la manière et le moment de ces connexions.

PipeWire est déjà le serveur audio par défaut des nouvelles distributions Linux de bureau, Fedora Linux, Pop ! OS, Ubuntu et openSUSE. Je ne doute pas que PipeWire sera bientôt présent dans toutes les distributions Linux.

Pour vous aider à utiliser PipeWire, Collabora, la société de conseil et d’assistance pour Linux et les logiciels libres, fournit WirePlumber en tant que gestionnaire de session pour les pipelines de médias de PipeWire. Pour plus d’informations sur la manière de tirer le meilleur parti de PipeWire, consultez le site LinuxMusicians et le forum Reddit LinuxAudio.

Source : “ZDNet.com”

Leave a Reply

Your email address will not be published. Required fields are marked *