Bien sûr, sans compter les applications complexes, aRts doit être principalement capable de remplir les tâches que faisaient bien ESD/KAudioServer. Jetons un coup d'oeil à un lecteur mp3, et comment le très récemment écrit artscat essaie de fournir ici les premiers services de "serveur audio générique".
Dans un monde parfait, le serveur audio (aRts) saurait de toute façon ce que sont les mp3, et de plus, dans un monde parfait, une architecture de lecture multimédia pour des données comme les mp3 existerait à l'intérieur du serveur audio, et il n'y aurait tout simplement pas de lecteur mp3 puisque aRts lui-même pourrait afficher un écran sympathique avec des contrôles et jouer le mp3.
Hélas ce monde parfait n'est pas tout à fait celui dans lequel nous vivons. Donc nous avons besoin d'autres choses en attendant.
Heureusement, un lecteur mp3 n'a pas besoin de grand chose pour fonctionner. Il lit un fichier, affiche peut-être une fenêtre (ou pas), et finalement envoie le flux audio à la carte son. Ce que nous pouvons faire ici est de le laisser envoyer les données plutôt à aRts. Ainsi aRts peut récupérer ces données, et les rediriger vers des mixeurs, des effets, des bus, des boucles à contre-réaction etc., et finalement les envoyer vers la carte son.
Les nouvelles versions de aRts (>= 0.3.3) permettent cela. Il y a un petit utilitaire appelé artscat, qui récupère un flux d'octets depuis l'entrée standard (stdin) et l'envoie à aRts via TCP (pas CORBA pour le transport car ce serait trop lent). Artscat a la syntaxe suivante :
artscat -d <description> -t <type> |
tandis que type et description sont utilisés pour que l'utilisateur voie ce qu'il se passe et seront peut-être utilisé dans les versions futures de aRts pour assigner automatiquement des canaux à certains services...
De l'autre côté, les données seront récupérées. L'utilisateur peut choisir avec un élément graphique Gui_AUDIO_MANAGER à quel bus envoyer les données (jetez un coup d'oeil aux options -c et -d de artsshell si vous voulez savoir comment obtenir les mêmes fonctionnalités de tâches assignées depuis la ligne de commande plutôt que depuis artsbuilder). Pour fournir un test pratique, un script shell artsmp3 a été écrit. Si vous avez installé mpg123, vous pouvez maintenant simplement taper
artsmp3 <nom du fichier> |
Il utilisera artscat pour envoyer votre flux de données au serveur. Il ouvrira une fenêtre "konsole" pour afficher sa sortie. Ça fonctionne bien si vous avez un mixeur à l'écran (essayez l'exemple example_mixer_eq), donc vous pouvez mixer votre mp3 avec quelque chose d'autre, par exemple avec une improvisation en direct que vous jouez sur votre clavier.
Où avec un autre mp3. J'ai réussi à jouer 9 mp3 en même temps avec aRts sur un PII/350. Peut-être que ce n'est pas vraiment utile, mais ça montre que la technologie qu'il y a derrière est stable. Il n'y avait pas de clics ou de coupures. Mais je dois avouer que je n'ai pas utilisé de mixeur pour économiser le processeur... avec un mixeur, le nombre de canaux possibles est certainement inférieur.
L'enregistrement est maintenant supporté aussi, comme dans aRts-0.3.4.