La situation est relativement bien en ce qui concerne les distros traditionnels comme Ubuntu, Debian ou Fedora parce que leurs développeurs ont fait de grands efforts pour faire fonctionner audio 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 en audio Linux, mais il expliquera, espérons-le, les technologies de base chargées de faire sortir le son de vos haut-parleurs lorsque vous ouvrez une vidéo sur YouTube ou jouez à un jeu sur Steam.
Advanced Linux Sound Architecture (ALSA)
Commençons par la couche la plus importante de l'audio Linux, Alsa. Créé en 1998 par le développeur de logiciels tchèques Jaroslav Kyssela, Alsa est chargé de donner une voix à toutes les distributions Linux modernes. Il fait en fait partie du noyau Linux lui-même, offrant 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 sonore.
La conception originale de l'ALSA a été largement inspirée par le pilote de l'appareil Linux pour la carte son Ultrasound Gravis, qui a été fabriquée par la technologie Advanced Gravis informatique basée au Canada et est devenue très populaire dans la scène de démonstration dans les années 1990.
La prise en charge de l'ALSA pour tous les types d'interfaces audio grâce à des pilotes sonores entièrement modularisés, peut gérer jusqu'à huit appareils audio en même temps, accéder à la fonctionnalité MIDI matérielle, effectuer un mélange matériel de plusieurs canaux, et plus encore.
Les utilisateurs interagissent généralement avec ALSA à l'aide d'Alsamixer, un programme de mélangeur graphique qui peut être utilisé pour configurer les paramètres sonores et ajuster le volume des canaux individuels. Alsamixer court dans le terminal, et vous pouvez l'invoquer simplement en tapant son nom. Une commande de clavier particulièrement utile est activée en frappant la touche m. Cette commande bascule le canal de canal, et c'est une solution assez courante pour 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 pour le système de son ouvert, ou OSS pour faire court. Jusqu'à Linux 2.5, OSS était en fait le système sonore principal et unique pour Linux. ALSA a été conçu pour surmonter ses diverses lacunes, comme le fait qu'il ne permettait pas à plus d'une application d'accéder au matériel à la fois. Dans 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 OSS aurait une licence propriétaire, une décision a été rapidement prise par les développeurs de Linux pour le remplacer par Alsa. Il convient de noter que 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, propriétaire).
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 parce que presque personne n'en a plus besoin, faisant de l'OSS une relique du passé.
Pullaudio
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 est appelée 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 des sons venant d'Alsa vers diverses destinations de sortie, telles que vos haut-parleurs ou casques. C'est pourquoi il est communément appelé serveur sonore.
À première vue, il peut sembler que Pulseaudio n'ajoute vraiment rien de plus important à Linux Audio, et beaucoup de ses détracteurs partagent la même opinion. En réalité, il y a en fait beaucoup de choses qui seraient impossibles ou difficiles à réaliser sans elle, notamment en mélangeant plusieurs sons en un, transférer l'audio vers une autre machine, ou modifier le format d'échantillon ou le 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 directement PulseAudio, au lieu d'interagir avec lui via un widget de contrôle de volume ou un panneau de certaines sortes, vous pouvez installer le contrôle de volume de PulseAudio (appelé Pavucontrol dans la plupart des référentiels de packages).
Si vous sentez que vous n'avez aucune utilité pour les fonctionnalités fournies par PulseAudio, vous pouvez soit utiliser Pure Alsa ou le remplacer par un autre serveur de son.
Pulseaudio vs. JACK
PulseAudio n'est pas le seul serveur sonore 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, fournissant des connexions en temps réel et à faible latence pour les données audio et MIDI.
Parce que Jack vous permet de connecter les entrées audio et les sorties de chacun et de chacun de vos applications ensemble, vous pouvez faire des choses assez cool, telles que surveiller votre propre voix, en y ajoutant 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 studios d'enregistrement réels pour établir des connexions complexes entre les instruments, les synthétiseurs, les contrôleurs MIDI et les multitrackers.
Le plus gros inconvénient de Jack est sans doute qu'il fonctionne généralement parfaitement ou horrible. Cela nécessite également beaucoup plus de puissance CPU par rapport à Pulseaudio, c'est pourquoi vous le trouverez principalement sur des postes de travail professionnels dédiés à l'édition audio.
Vérification de l'audio Pulse et Alsa
Vous vous demandez peut-être comment dire 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:
$ PACTL LISTE
Vérification de l'ALSA:
$ aPlay -l
Conclusion
L'audio sur Linux semble compliqué car il l'est vraiment. Démasser le réseau des technologies hérités et des couches d'abstraction peut être un véritable défi même pour les utilisateurs de Linux chevronnés qui connaissent les tenants et aboutissants du système d'exploitation par cœur. J'espère que notre article vous a aidé à mieux comprendre les composants les plus importants du système audio Linux, y compris ALSA, OSS et Pulseaudio.