Audio
Un article de Wiki de la communauté Mandriva.
Sommaire |
[modifier] Les systèmes Audio dans le kernel et les drivers
Historiquement, le noyau Linux disposait d'une couche appelée OSS. Aujourd'hui, un grand nombre de cartes son utilisent la couche ALSA. OSS et ALSA ne sont pas des drivers, ce sont des "ensembles de drivers". Par exemple Alsa vise à être unique du point de vue kernel, tout en gérant un grand nombre de pilotes différents.
[modifier] Open Sound System
C'est donc le système historique de la gestion du son sous les UNIX et Linux. Nommé VoxWare à l'origine, ce nom n'a pu être retenu. Il a été renommé TASD pour Temporarily Anomnymous Sound Driver, puis USS pour Unix Sound System. Le nom correct sous GNU/Linux est OSS/Free. Ce système existe toujours dans le noyaux Linux et bien que Alsa dispose aujourd'hui d'un plus grand ensemble de drivers pour cartes sons, OSS peut encore aujourd'hui faire fonctionner mieux, avec un meilleur son, certaines cartes, même récentes.
On peut noter que OSS est utiliser dans certaines "tables à potards" qui cachent bien leurs jeux, dans des studios professionnels, de manière transparente pour les utilisateurs. A noter enfin que des implémentations commerciales de OSS ont été faites dans ce but, entre autre, par la société "4front-tech". Cette dernière a libéré (passé sous licence GPL) assez récemment l'ensemble d'OSS.
[modifier] ALSA Advanced Linux Sound Architecture
ALSA avait été initialement écrit comme remplacement du gestionnaire sonore pour les cartes Gravis UltraSound (GUS). Il a ensuite évolué vers un gestionnaire pour plusieurs cartes sons, avec une conception entièrement modulaire. Alsa est compatible avec le gestionnaires OSS/Free mais dispose de sa propre interface qui est encore meilleure que celle de l'OSS.
Ces principales fonctions sont :
- Support efficace de tout les types d'interfaces audio, des cartes sons du consommateur aux interfaces audio multicanales professionnelles.
- Modularisation complète.
- Bibliothèque de l'espace utilisateur pour simplifier la programmation dessus et fournir des fonctionnalités de niveau plus élevé.
- Soutien de l'OSS, fournissant la compatibilité binaires pour la plupart des programmes écrit pour OSS, par la couche d'abstraction aoss.
Alsa n'est donc pas un driver, encore moins un mixeur. Alsa est un système fonctionnel pour gérer les drivers et permettre d'écrire des applications de manière unifiée.
Alsa permet de gérer un grand nombre de cartes sons en connectiques :
- ISA
- PCI
- PCI-Express
- USB
Un projet nommé FreeBob (Beboob) s'occupe quant à lui des cartes sons en connectique FireWire. Il est petit à petit intégré directement dans Alsa.
La problématique du mixeur est intéressante : de nombreuses cartes sons grand public, parfois même estampillées "pro-machin-super-truc-pro" n'intègrent en fait pas de mixeur matériel... Alsa n'étant pas un mixeur, il n'est pas possible d'attaquer ces cartes sons là de manières simultanées depuis plusieurs applications. Seules les bonnes grosses cartes sons professionnelles le permettent. Linux se démocratisant sur les machines grand public, le projet DMIX est né pour fournir à Alsa un mixeur logiciel palliant les déficiences de ces cartes. Sur Mandriva, ALSA et Dmix viennent totalement pré-configurés pour votre matériel. Ceci n'a pas toujours été le cas, et configurer DMIX pouvait donner quelques cheveux blancs...
Lorsque la carte son possède bien un mixeur, alsamixeur permet un contrôle dessus directement. C'est le mixeur de la carte qui stockera directement vos réglages.
Alsa supporte un grand nombre de cartes sons, un très grand nombre mais pas toutes. La question "quelle sont les meilleures cartes sons pour mes besoins" est essentielle. Il y a encore peu de temps, il était assez difficile de trouver une carte pleinement compatible. Les choses changent vite, très vite. Une fois celles ne convenant pas écartées, on se retrouve avec cette question : "laquelle choisir ?". Ce qui est nettement plus confortable.
Le projet ALSA tient à jour une documentation sur chaque constructeur et chaque carte. Cette documentation est accessible à tous. Certains cartes sont absentes et sont pourtant supportées. D'autres sont marquées comme n'ayant pas un support total, mais le driver a évolué depuis. Il conviendra donc de ne pas se baser uniquement sur cette matrice documentaire. Elle reste néanmoins la référence en tant que premier outil de validation (et merci d'y proposer vos modifications éventuelles sur tel ou tel modèle)
[modifier] Les diversités possibilités
Une installation d'une Mandriva Linux vous ouvre le bureau de votre choix (KDE, GNOME, EDE, Xfce, Fluxbox, IceWM, Ion, Ion3, E16, E17...). Depuis le noyau jusqu'au bureau, le son suit des procédures précises. Bien que tout fonctionne : musique, vidéos, sons du bureau et plus, la plupart d'entre nous ont déjà rencontrés des situations qui posent question, du type "pourquoi je n'entends pas le son de X quant Y est lancé ?". Les exemples couramment rencontrés sont :
- pas de musique si je Skype en même temps
- pas de musique si Flash en même temps
- Audacity me dit "périphérique occupé"
Notez que 2 de ces 3 problèmes sont causés par des applications privatrices (non libres). Reprenons l'historique rapidement : OSS est le bon vieux système et ALSA est plus récent. Dans la tradition GNU on n'élimine pas une liberté, on en ajoute une autre. Un programmeur peut tout à fait décider que son application attaquera OSS. C'était le cas jusqu'à peu de temps pour Skype et Flash. Ils sont tout deux passés sur Alsa depuis, mais il faudra encore user d'astuces pour les rendre fonctionnels avec PulseAudio. En l'état actuel, ce type de programme cherche à accaparer littéralement l'accès à OSS ou à Alsa. Et si votre carte son est grand public, elle n'embarque de vrai mixeur matériel : il n'est donc pas possible d'entendre plusieurs sources de son simultanées.
[modifier] A propos des diverses solutions de haut niveau
OSS et Alsa sont dans le noyau. Dmix et freebob sont des compléments de Alsa, ok. Mais le son, et surtout son mixage, ne s'arrête pas là. Il existe diverses solutions de haut niveau, souvent attachées historiquement avec un bureau.
[modifier] ESD
ESD pour Enlightenment Sound Daemon est un des premiers mixeurs de haut niveau pour linux. Il est utilisé sur le bureau Enlightenment, et a été utilisé sur le bureau Gnome. Beaucoup de distributions utilisent encore ESD. La plupart des applications conçues pour les bureaux Enligntenment et Gnome utilisent ESD.
[modifier] Arts
ARTS pour Advanced RealTime Sound est le mixeur de haut niveau développé pour KDE. C'est celui que tout utilisateur a par défaut sur un bureau KDE de la série 3.x. La plupart des applications conçues pour le bureau KDE utilise ARTS.
[modifier] SDL
SDL pour Sound Direct Library est autonome de tout bureaux. Il s'agit d'une bibliothèque et d'un ensemble d'outils pour permettre le mixage sonore. SDL est essentiellement utilisé par les jeux.
[modifier] Phonon
Phonon est un framework multimédia conçu pour KDE4. Développé pour faciliter le développement d'applications ayant besoin d'accès au son. Il remplace purement et simplement le vieux ARTS dans KDE4.
[modifier] PulseAudio
PulseAudio a été choisi par de nombreuses distributions, dont Mandriva, pour tenter une ré-unification des solutions de gestion du son en haut niveau, sur tout les bureaux. PulseAudio est donc intégré par défaut sur Mandriva 2008.1 Spring, sur tous les bureaux. De nombreux hacks et workarounds ont été faits afin de faciliter la prise en charge de programmes non natifs, par exemple Flash. Avec PulseAudio, on peut observer le premier effort d'unification de la gestion du son sur les bureaux graphiques de linux. Et ce travail est multi-distributions. Gageons simplement que cela ne sera pas le dernier, car encore une fois, Pulseaudio comporte des facilités intéressantes, mais nous coupe toujours d'une part des utilisateurs potentiels de Linux. Si vous êtes musicien vous serez obligé de reconfigurer votre système pour enlever PulseAudio : celui ne répondant pas à vos exigeances.
[modifier] Jack
Jack est une solution de gestion de flux d'entrées et sorties. Jack est taillé pour la faible latence. Il a d'ailleurs des exigeances assez strictes en matière de capacités et de configuration du système. Jack est utilisé par toutes les applications de gamme professionnelle.
Avec Jack il devient possible de rediriger n'importe quelle application ayant une sortie son vers n'importe quelle autre application présentant une entrée son...
A noter que Phonon, dans KDE4, intègre des facilités pour Jack. Arts sur kde3 permettait déjà de rediriger facilement arts vers jack (et donc toute application utilisant jack). Avec KDE4 cela devient automatique et de bien meilleure qualité. Lancez Jack sur votre bureau KDE4, et automatiquement une fenêtre popup apparaît sur le bureau informant que Jack a été détecté et que phonon redirige tout vers lui ! 0 intervention. Fantastique.
Veuillez consulter la page ProAudio_Jack pour tout savoir sur Jack et la configuration de votre système Mandriva Linux avec ce dernier. Nous noterons juste ici que Jack était il y a peu de temps vraiment réservé aux connaisseurs dans la mesure où il nécessitait de nombreuses adaptations. Il est, par défaut aujourd'hui, heureux comme un poisson dans l'eau sur une Mandriva Linux 2008.1 (Spring) de par le travail fait sur le noyau.
[modifier] Schémas de fonctionnement des divers éléments
Ou comment visualiser simplement le fonctionnement des divers éléments constituant la gestion du son sous Linux, le cheminement du son à travers ces éléments.
[modifier] Pour KDE3
[modifier] Pour Gnome et Enlightenment
[modifier] KDE et Gnome avec PulseAudio
[modifier] Multiples applications et possibilités d'hier
[modifier] Multiples applications et possibilités d'aujourd'hui
[modifier] Conclusion
Mandriva 2008.1 Spring fournit par défaut un ensemble parfaitement efficace. De la simple écoute de son et alarmes de bureaux, jusqu' à l'intégration de wrapper (couche de lancement permettant la redirection d'applications non natives PulseAudio) afin de nous faire bénéficier de la manière la plus transparent possible d'un fonctionnement complet de mixage de haut niveau. Mandriva a également travaillé à une meilleure couche de bas niveau, par l'ajout de nombreux patches pour Alsa et l'ajout de nombreux drivers pour diverses cartes sons.
Comme à l'accoutumée, on pourra trouver un outil graphique particulièrement appréciable pour choisir et configurer à la fois le driver pour sa carte son et PulseAudio : il s'agit de draksound. Nous pouvons ainsi en 1 seul click de souris activer PulseAudio, activer la redirection de Alsa vers PulseAudio afin de permettre aux applications voulant utiliser Alsa directement d'être redirigées vers PulseAudio. Nous pouvons aussi activer le support du 5.1 et le support multi-utilisateur.
Amusez-vous bien avec Mandriva 2008 Spring !