2.7. Jouez de l'audio

2.7.1. C'est quoi Jack ?

JACK est un diminutif pour Jack Audio Connection Kit. JACK est un serveur audio flexible qui permet à ses applications clientes de partager le matériel audio de façon transparente, et d'y partager un transport commun. Il fournit des mécanismes flexibles pour la gestion des entrées et des sorties de et vers les applications clientes en utilisant la métaphore jack-and-cable. Il est conçu pour les professionnels du son qui veulent la plus faible latence possible et tirer le maximum de leur matériel, mais professionnel ou pas, c'est quelque chose dont vous aurez besoin pour utiliser pleinement Rosegarden.

Il est théoriquement possible d'utiliser JACK et Rosegarden avec un noyau ordinaire, mais les résultats ne sont pas formidables, même sur des machines très spécialisés. La puissance du processeur et l'abondance de RAM sont insuffisant pour garantir la performance, et vous aurez besoin, malheureusement, de tourner sous un noyau spécialisé. AGNULA rend la chose plus facile que d'ordinaire.

Il est désormais possible d'obtenir une bonne qualité sonore sous Linux sans devoir être un hacker expert du noyau. Je dois reconnaître que j'ai été moi même impressionné quand j'ai finalement décidé de l'utiliser. Si vous lisez une des pré-versions de ce livre, vous devez vous souvenir des critiques que je faisais à propos de Linux Audio tout au long du livre. Je peux désormais vous informer avec plaisir qu'un JACK fonctionnel est désormais aussi simple que de télécharger un noyau de AGNULA (ou CCRMA je présume), de l'installer et de redémarrer. Les méthodes particulières pour installer un noyau ne sont pas du ressort de ce livre, mais je tourne avec ces paquetages sur ma machine Debian (les utilisateurs d'ordinateurs portables doivent activer les modules PCMCIA bien entendu).

2.7.2. Démarrer et régler JACK

Le moyen le plus facile de contrôler votre serveur JACK est d'utiliser JACK Control (ou qjackctl). C'est un bon utilitaire qui fournit un moyen simple pour démarrer et arrêter votre serveur JACK, d'affiner au mieux les réglages selon votre configuration matérielle, et de gérer les différentes connections JACK entre les applications qui l'utilisent.

Pour configurer votre serveur JACK, utiliser le bouton Setup. Le noyau patché que vous avez installé permet à JACK d'avoir une meilleure priorité et requiert les privilèges root. Vous devez configurer JACK pour qu'il puisse être démarré par la commande "jackstart" et que Rosegarden et JACK puissent fonctionner lorsqu'ils sont lancés par un simple utilisateur.

Trouver la meilleure combinaison consiste à jouer avec les réglages « Frames/Period », « Sample Rate » et « Periods/Buffer ». Votre objectif est de trouver la plus faible latence, indiqué dans la partie inférieure droite de la fenêtre. Pendant que vous changez les réglages, ce nombre vous montrera les résultats de vos combinaison. Vous voulez un taux d'échantillonnage élevé, et les frames/periods et periods/buffer faibles.

Je vous suggère de trouver la plus faible latence, de cliquer sur OK et d'essayer de démarrer le serveur JACK avec le bouton Start de la fenêtre de dialogue. Si le serveur refuse de démarrer, et revenez en arrière en affinant à nouveau les réglages un par un jusqu'à que cela fonctionne. Beaucoup de combinaisons inappropriées empêcheront JACK de démarrer correctement. Cela doit vous donner une idée sur le nombre de valeurs possibles qui fonctionneront. (Par exemple, je ne peux pas démarrer JACK sur mon matériel avec un periods/buffer différent de 2, donc je ne peux le modifier et me concentrer sur les autres réglages.)

2.7.3. Les XRuns

Il est très important d'éviter xruns. Si vous trouvez une combinaison où le serveur JACK démarre mais qui produit beaucoup de xruns, cela ne va pas. Les Xruns sont reportés dans la fenêtre principale de QjackCtl. Les Xruns cause des pertes audio, bruits,sauts,distorsions,effets désagréables. Si vous en avez plus de deux ou trois au cours d'une journée, vous devez probablement configurer à nouveau votre serveur JACK pour avoir de bonnes performances.

2.7.4. Gestions des connexions

Rosegarden va établir quelques connections automatiquement. Par exemple QSynth et Hydrogen, si vous les avez configurés pour cela. ZynAddSubFX et peut être d'autres applications clientes de JACK ne le font pas. Pour voir et gérer les connections, cliquer sur le bouton Connections. Créer ou couper des connections se fait en rendant les items plus visibles (colorés) et utilisant les boutons connect ou disconnect selon ce que vous désirez.

Vous pouvez également utiliser QjackCtl pour gérer les connections ALSA MIDI. Je ne vous recommande pas de l'utiliser pendant que vous utiliser Rosegarden. Rosegarden a son propre routeur MIDI interne et il ne fonctionnera par convenablement si vous modifiez les connections de l'extérieur. Cependant, par exemple, si vous souhaiter jouer avec votre Sound Blaster Live! ou QSynth les sons de votre clavier MIDI sans utiliser Rosegarden, vous pouvez gérer les connections MIDI par QjackCtl.