l'audio

Le guide de Noob sur Linux Audio ALSA, OSS et Pulse Audio expliqué

Le guide de Noob sur Linux Audio ALSA, OSS et Pulse Audio expliqué
Il y a une chose sur laquelle les utilisateurs Linux débutants et expérimentés peuvent s'entendre : l'audio Linux est déroutant. Non seulement plusieurs technologies effectuent des tâches similaires, mais la plupart d'entre elles peuvent être complètement omises par les distributions Linux et leurs utilisateurs.

La situation est relativement bonne en ce qui concerne les distributions grand public comme Ubuntu, Debian ou Fedora parce que leurs développeurs se sont donné beaucoup de mal pour faire fonctionner l'audio dès la sortie de la boîte, mais on ne peut pas en dire autant d'Arch Linux, Gentoo, et d'autres distributions minimalistes qui s'attendent à ce que les utilisateurs configurent tout à partir de zéro.

Cet article ne fera pas de vous un expert de l'audio Linux, mais il expliquera, espérons-le, les technologies de base responsables de la sortie du son de vos haut-parleurs lorsque vous ouvrez une vidéo sur YouTube ou jouez à un jeu sur Steam.

Architecture sonore Linux avancée (ALSA)

Commençons par la couche la plus importante de l'audio Linux, ALSA. Créé en 1998 par le développeur de logiciels tchèque Jaroslav Kysela, ALSA est chargé de donner une voix à toutes les distributions Linux modernes. Il fait en fait partie du noyau Linux lui-même, fournissant des fonctionnalités audio au reste du système via une interface de programmation d'application (API) pour les pilotes de périphériques de carte son.

La conception originale d'ALSA a été largement inspirée par le pilote de périphérique Linux pour la carte son Gravis Ultrasound, qui a été fabriqué par Advanced Gravis Computer Technology basé au Canada et est devenu très populaire sur la scène des démos au cours des années 1990.

Prise en charge d'ALSA pour tous les types d'interfaces audio grâce à des pilotes de son entièrement modulaires, peut gérer jusqu'à huit périphériques audio en même temps, accéder à la fonctionnalité MIDI matérielle, effectuer un mixage matériel de plusieurs canaux, etc.

Les utilisateurs interagissent généralement avec ALSA à l'aide d'alsamixer, un programme de mixage graphique qui peut être utilisé pour configurer les paramètres sonores et régler le volume des canaux individuels. Alsamixer s'exécute dans le terminal et vous pouvez l'invoquer simplement en tapant son nom. Une commande clavier particulièrement utile est activée en appuyant sur la touche M. Cette commande permet de désactiver le son du canal, et c'est une solution assez courante à de nombreuses questions publiées sur les forums de discussion Linux.

Système de son ouvert (OSS)

Le site officiel d'ALSA mentionne le support d'Open Sound System, ou OSS en abrégé. Jusqu'à Linux 2.5, OSS était en fait le principal et unique système de son pour Linux. ALSA a été conçu pour surmonter ses divers défauts, comme le fait qu'il n'autorisait pas plus d'une application à accéder au matériel à la fois. Sous Linux 2.6 ALSA a remplacé OSS comme système audio par défaut.

Lorsque les développeurs d'OSS ont annoncé que la version d'OSS aurait une licence propriétaire, les développeurs de Linux ont rapidement pris la décision de la remplacer par ALSA. Il est à noter que l'OSS est redevenu un logiciel libre avec la sortie de la version 4 en 2007. Aujourd'hui, OSS est distribué sous quatre licences différentes (BSD, CDDL, GPL, Proprietary).

La plupart des distributions Linux de nos jours ne prennent même pas la peine d'activer la couche d'émulation OSS présente dans ALSA car presque plus personne n'en a besoin, faisant d'OSS une relique du passé.

PulseAudio

Si vous ne vous souvenez pas de la dernière fois que vous avez interagi avec ALSA lors de la modification de vos paramètres audio, c'est probablement parce que la couche orientée utilisateur du système audio Linux dans la plupart des distributions modernes s'appelle PulseAudio.

PulseAudio a été initialement publié en 2004, et il est maintenant inclus et activé par défaut dans Ubuntu, Linux Mint, openSUSE et d'autres distributions majeures. Le travail de PulseAudio est de transmettre des données sonores entre vos applications et votre matériel, en dirigeant les sons provenant d'ALSA vers diverses destinations de sortie, telles que les haut-parleurs ou les écouteurs de votre ordinateur. C'est pourquoi il est communément appelé serveur de son.

À première vue, il peut sembler que PulseAudio n'ajoute rien de critique à l'audio Linux, et nombre de ses critiques partagent le même avis. En réalité, il y a en fait beaucoup de choses qui seraient impossibles ou difficiles à accomplir sans cela, y compris le mixage de plusieurs sons en un seul, le transfert de l'audio vers une autre machine ou la modification du format d'échantillon ou du nombre de canaux.

PulseAudio apporte également une compatibilité multiplateforme (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS et, de manière limitée, Microsoft Windows). Si vous souhaitez contrôler PulseAudio directement, au lieu d'interagir avec lui via un widget de contrôle de volume ou un panneau quelconque, vous pouvez installer PulseAudio Volume Control (appelé pavucontrol dans la plupart des référentiels de packages).

Si vous pensez que vous n'avez aucune utilité pour les fonctionnalités fournies par PulseAudio, vous pouvez soit utiliser ALSA pur, soit le remplacer par un autre serveur de son.

PulseAudio vs. JACK

PulseAudio n'est pas le seul serveur de son pour Linux. Il y a aussi JACK, qui est un acronyme récursif pour JACK Audio Connection Kit. Alors que PulseAudio a été développé en pensant aux besoins des utilisateurs généraux de Linux, JACK est destiné aux DJ et aux professionnels de l'audio, offrant des connexions en temps réel à faible latence pour les données audio et MIDI.

Parce que JACK vous permet de connecter les entrées et sorties audio de chacune de vos applications ensemble, vous pouvez faire des choses assez sympas avec, comme surveiller votre propre voix, y ajouter des effets en temps réel, et plus. En fait, le nom de ce système audio a été inspiré par les câbles utilisés dans les vrais studios d'enregistrement pour établir des connexions complexes entre les instruments, les synthétiseurs, les contrôleurs MIDI et les multipistes.

On peut dire que le plus gros inconvénient de JACK est qu'il fonctionne généralement parfaitement ou horriblement, étant donné que son objectif principal est de fournir un son à faible latence. Il nécessite également beaucoup plus de puissance CPU par rapport à PulseAudio, c'est pourquoi vous le trouverez principalement sur les stations de travail professionnelles dédiées à l'édition audio.

Vérification de Pulse Audio et ALSA

Vous vous demandez peut-être comment savoir quel logiciel audio mon ordinateur utilise? Pour vérifier si Pulse Audio et ALSA sont présents sur votre système, utilisez les deux commandes suivantes :
Vérification de PulseAudio :

Liste de $ pactl


Recherche d'ALSA :

$ aplay -l

Conclusion

L'audio sur Linux semble compliqué car c'est vraiment. Démêler le réseau des technologies héritées et des couches d'abstraction peut être un véritable défi, même pour les utilisateurs Linux chevronnés qui connaissent par cœur les tenants et aboutissants du système d'exploitation. Espérons que notre article vous a aidé à mieux comprendre les composants les plus importants du système audio Linux, notamment ALSA, OSS et PulseAudio.

Comment utiliser Xdotool pour stimuler les clics de souris et les frappes sous Linux
Xdotool est un outil de ligne de commande gratuit et open source pour simuler les clics de souris et les frappes. Cet article couvrira un bref guide s...
Top 5 des produits de souris d'ordinateur ergonomiques pour Linux
L'utilisation prolongée de l'ordinateur provoque-t-elle des douleurs au poignet ou aux doigts? Vous souffrez de raideurs articulaires et devez constam...
Comment modifier les paramètres de la souris et du pavé tactile à l'aide de Xinput sous Linux
La plupart des distributions Linux sont livrées avec la bibliothèque "libinput" par défaut pour gérer les événements d'entrée sur un système. Il peut ...