Cette page vise à documenter les possibilités de réglages de JACK avec QjackCtl.
Ceux-ci se trouvent dans la fenêtre ouverte avec le bouton Réglages... (ou Setup avec l'interface en anglais).
Avant de lancer JACK (en appuyant sur le bouton Démarrer ou Start de QjackCtl), il est préférable de vérifier la configuration générale.
Pour les pressés, il existe un tuto facile : Jack, premier lancement.
Pour les moins pressés, nous allons détailler le contenu des 4 onglets.
Table des matières
Onglet Settings
Sans doute le plus important. C'est là que vous règlerez les paramètres pour Jack.Section "Preset Name"
Il vous est possible d'enregistrer plusieurs valeurs de réglage que vous pourrez retrouver rapidement par le menu preset nameLes cas où vous pouvez avoir plusieurs valeurs pré-enregistrées sont plus nombreux qu'il n'y parait :
- ceux où vous utilisez Jack pour écouter de la musique en travaillant avec votre traitement de texte, dans ce cas vous n'aurez pas besoin par exemple d'immobiliser toutes les ressources de votre système pour privilégier la faible latence de votre noyau
- ceux où vous souhaitez travailler en 44100 Hz et ceux où vous souhaitez travailler en 96000 Hz chacune de ces configurations pouvant amener des réglages particuliers.
- ceux où vous souhaitez travailler avec une carte son et ceux où vous souhaitez travailler avec l'autre.
Section "Server"
- Server Path : Doit être réglé sur Jackd (les valeurs jackstard et jackrealtime concernaient des patchs nécessaires dans le noyau 2.4, et en principe vous êtes en noyau 2.6)
- Driver : Le pilote ALSA qu'il est recommandé de sélectionner ici sauf dans le cas où vous utiliseriez une carte son firewire, auquel cas, vous sélectionnerez le pilote firewire.
Pour information : sous GNU/Linux, il y a deux pilotes audio principaux : ALSA et OSS. Avec le choix d'ALSA, Jack va tester la meilleure résolution possible et travailler avec (sauf si on active le forçage 16 bits dans la colonne de gauche). Si on, choisi OSS, Jack ne fait pas de test et c'est la qu'intervient le 16 bits de la colonne du milieu (pour régler en 16, 32 ou 64 bits).
Section "Paramètres"
Colonne de gauche :- Realtime: À activer absolument. Il n'est pas nécessaire d'avoir un noyau 'temps réel" pour cocher cette option. Elle affichera le symbole "RT" sur l'écran de la fenêtre principale. Pour permettre à jack de fonctionner en mode realtime / temps réel consulter la page PAM.
- No Memory lock: À désactiver pour profiter pleinement des capacités de jack. ( plus d'infos sur le memlock )
- Unlock Memory: À activer si vous souhaitez débloquer l'accès en mémoire des bibliothèques de fonctions de GTK+, QT, FLTK (fonctions graphiques) et Wine. ( plus d'infos sur le memlock )
- Softmode : À activer lors d'une utilisation non Realtime/temps-réel : rend jack moins enclin à déconnecter les ports qui ne répondent pas au quart de tour.
- Monitor: Créer un port de sortie stéréo supplémentaire pour le Monitoring.
- Force 16bits: À activer si votre carte n'est pas capable de fonctionner avec une valeur plus importante, pour éviter que jack teste à chaque fois les modes 32 et 24 bits ... et peut-être envisager l'achat d'une carte plus adaptée à la MAO .
- Verbose messages: À activer en cas de problème pour ajouter des détails au log de la fenêtre messages.
- MIDI driver: Choix Conseillé : none. //si quelqu'un à plus d'infos à ce sujet...
Colonne du milieu :
- Priority : Utilisée lorsque le mode temp-réel est activé, cette option permet de régler le niveau de priorité de Jack par rapport aux autres applications audio temps-réel.
Elle ne doit pas être trop élevée car certaines applications audio ont besoin d'une priorité supérieure à celle de Jack, dont l'utilitaire de surveillance jack_watchdog qui se lance automatiquement avec une priorité supérieure de 10 points.
Typiquement on utilisera une valeur comprise entre 50 et 80, sur une échelle définie lors de la configurations du temps-réel pour les applications sur votre système. - Frames/Period : ce facteur influence directement la latence (c'est d'ailleurs un des facteurs essentiels). La valeur permettant d'obtenir la latence la plus basse possible sans Xruns dépendra de votre configuration et en particulier des capacités de votre carte son.
Une frame en anglais est une trame en français. Une trame audio représente 1 échantillon par canal. Par exemple, si l'on traite une trame d'un signal composé de 6 canaux audio, ou un échantillon du même signal audio sur 6 canaux, jackd aura traité 6 échantillons au total.
Frames/period (ou trame par période) représente les trames audio par cycle de traitement. Par exemple, si vous avez 64 frames/period, la taille du buffer (tampon) par canal est de 64 échantillons. - Sample Rate : est un champ très important c'est ici que vous déterminer la fréquence d'échantillonnage. Ce facteur influence également la latence. Là encore, votre matériel déterminera les choix possibles, une fréquence plus élevée permettant de travailler avec une meilleure qualité sonore. En tous cas c'est ici qu'est fait ce réglage et nullement dans Ardour 3. Pour en savoir plus à propos de la fréquence d'échantillonnage, consulter aussi cette page.
- Period/Buffer : Ce facteur influence également la latence. La valeur de "2" est habituelle (pour les interfaces USB, voir aussi le paragraphe "réglage de la latence" plus bas).
Period/buffer représente combien de périodes sont là (dans windows, une période est appelée plus souvent un "buffer" (tampon)). Mais dans un régime de double tampon typique vous avez par exemple 2 tampons combinés dans un seul bloc de mémoire. Et dans ALSA, ce tampon combiné est le "buffer" et les blocs individuels de mémoire sont appelés periods (périodes). (Cette terminologie est un peu confuse... la page de man de jackd contient aussi des infos là-dessus, mais il faut s'accrocher.)
Ainsi, avec une valeur de period/buffer de deux, une période est la première moitié du tampon et l'autre période est la deuxième moitié du tampon. - Word Length, Si vous utiliser le pilote OSS, Jack ne fera pas le test de meilleure performance qu'il sait faire avec ALSA et vous pourrez y régler 16, 32 ou 64 bits.
- Wait (usec),
- Channel : Pour PortAudio
- Port Maximum : par défaut à 128 cette valeur peut être portée à 256 si vous avez un grand nombre de connexions jack... sans quoi vous aurez la surprise de constater qu'Ardour 3 vous lâchera. Un grand nombre de connexions Jack ne veut pas dire un grand nombre de pistes mais bien de raccordements dans Jack.
- Timeout (msec) : cette valeur est de 500 par défaut. Elle sera à augmenter si Jackd exclu des logiciels câblés dans la section "Audio" de la fenêtre des connexions lorsque ceux-ci sont trop longs à répondre. Ça peut être le cas par exemple lors de l'utilisation de vst gourmands via VstHost sur un pc peu performant.
Colonne de droite :
- Interface est dans le cas présent à hw:0 mais il peut être à hw:1 si vous avez deux cartes ou même hw:0,0 ou hw:0,1 si votre carte dispose par exemple d'entrées analogiques et digitales et que les deux assignations se font avec cette convention. Le menu déroulant ne propose que trois choix possibles (default, hw:0 et hw:1), mais vous pouvez parfaitement entrer autre chose à la main (utile si vous avez plus de 2 cartes son).
- Audio : permet de choisir entre les modes "Capture Only" (enregistrement uniquement), "Playback Only" (lecture uniquement) et "Duplex" (lecture + enregistrement).
- Input Channels : c'est ici que vous donnez le nombre de voies en entrée de votre interface audio-numérique.
- Output Channels : c'est ici que vous donnez le nombre de voies en sortie de votre interface audio-numérique.
- Input Latency et Output Latency servent juste à rajouter une latence supplémentaire interne (pour synchroniser avec un autre dispositif dont on connaît la latence propre par exemple).
- Latency : latence calculée en fonction de vos différents réglages.
. [periods/buffer]*[frames/periods] Latence = --------------------------------- [sample rate]
Réglage de la latence
La latence est un paramètre important en MAO qui doit être maintenu à un niveau le plus faible possible.La latence annoncée dans l'onglet "Réglages" de QJackCtl est seulement théorique (vous remarquerez d'ailleurs qu'elle ne varie pas si vous "branchez" votre carte son interne ou votre module externe). Pour connaître la latence réelle mesurée par Jack, rendez-vous dans l'onglet "Statut" de QJackCtl au bout de la ligne intitulée "Délai d'ordonnancement maximal". Pour les utilisateurs d'Ardour 3, elle est aussi indiquée sur la barre tout en haut du séquenceur.
Quelques rappels généraux:
- Lancez Jack en mode "Real-time" et avec une forte priorité (voir paragraphe plus haut).
- Jouez sur les valeurs de "Frames/Period", "Sample Rate" et "Periods/Buffer" pour ajuster une latence la plus basse possible. Si des craquements ou des Xruns trop nombreux apparaissent, réajustez les paramètres pour augmenter un peu la latence. Des bonnes valeurs pour démarrer sont:
Frames/Period 256 Sample Rate selon votre carte audio 44100 ou 48000 Hz Periods/Buffer 2 ou 3
- Notez que la latence résultant de vos différents réglages est indiquée en bas à droite de l'onglet "Settings".
- C'est avec un noyau patché "temps réel" que vous obtiendrez les meilleurs résultats : d'abord si votre distribution inclut un paquet noyau-rt, sinon voir la page Tuto Compiler un noyau Temps-Réel.
- Pour en savoir plus sur les Xruns, consultez la Foire Aux Questions sur les Xruns.
- Consultez la page dédiée Portail Système pour en savoir plus sur les différentes optimisations possibles.
- Jack en lui même ne rajoute strictement aucune latence au système. Les sceptiques consulteront la page http://jackaudio.org/faq .
- Il existe une latence propre au hardware. Jack peut en tenir compte, voir Test de latence avec JACK
Les Cartes son des membres USB (1 et 2) ont une "période d'interruption" (temps entre deux interrogations - transferts de données) d'environ une milliseconde et la plupart de ces cartes l'utilisent pour déterminer la fréquence d’échantillonnage audio. Dans ce cas, il vaut mieux faire en sorte de régler la latence de JACK sur un multiple entier de cette période pour une meilleur synchronisation et donc moins de x-runs.
En pratique, je (pianoliv) n'ai pas réussi à obtenir de résultats probants avec cette technique, mais voilà comment il faudrait donc régler jack pour des résultats optimums :
- réglez votre fréquence d'échantillonnage audio, par exemple 48 KHz
- réglez le nombre de périodes par tampon sur 2 ou 3 (3 est généralement conseillé mais il faut voir en fonction de ce qui fonctionne le mieux, à tester)
- vous voulez maintenant que le tampon (latence affichée par QJackCtl) soit un chiffre rond (un multiple de 1 ms), pour cela jouez sur le nombre d'échantillons par période :
- avec 2 périodes par tampon, multipliez la fréquence d'échantillonnage (en Kilo-Hertz) par un nombre entier et utilisez ce résultat comme nombre d'échantillons par période
exemples : 48 (48x1), 96 (48x2), 144 (48x3)... - avec 3 périodes par tampon, le calcul est un peu plus difficile, je vous laisse le méditer une minute. Échantillons par période = fréquence d'échantillonnage (en KHz) x ( un nombre entier / 3 )
exemples : 48 (48x1), 64 (48x1.3), 80 (48x1.6)...
vous devriez maintenant voir un nombre entier apparaître dans la latence affichée par QJackCtl, si ce n'est pas le cas il y a un problème ! - avec 2 périodes par tampon, multipliez la fréquence d'échantillonnage (en Kilo-Hertz) par un nombre entier et utilisez ce résultat comme nombre d'échantillons par période
- voilà, il n'y a plus qu'a faire les essais habituels (augmentation/réduction de la latence pour une utilisation confortable en fonction du contexte). Si ce paragraphe vous a aidé, merci de le faire savoir, car pour moi, ça reste encore de la théorie.
Liens :
- Les conseils de Dominique sur forums.gentoo.org
- Plus d'explications du même Dominique sur notre forum
- Discussion sur le sujet sur la liste de diffusion LAU
Onglet Options
Cet onglet vous permet en particulier de lancer des commandes supplémentaires, au lancement (ou à la fermeture) de jack.
- Execute script on startup : Commande qui sera exécutée juste avant le lancement de Jack. Très utile pour désactiver un système son ( aRts, ESD, ou encore PulseAudio ). Par exemple :
artsshell -q terminate
pour stopper aRts.NOTE : aRts et ESD sont Obsolètes - Execute script after startup : Commande qui sera exécutée juste après le lancement de Jack. Utile pour lancer par exemple le démon lash. Cela peut aussi être intéressant pour démarrer automatiquement a2jmidid : il faut mettre
a2jmidid -e &
dans la ligne. - Execute script on shutdown : Commande qui sera exécutée juste avant l'arrêt de Jack.
- Execute script after shutdown : Commande qui sera exécutée juste après l'arrêt de Jack. Utile pour relancer le système son de votre environnement graphique ( aRts, ESD ).
Onglet Display
Vous permet de paramétrer l'affichage de Qjackctl (polices, etc.).Onglet Misc
Cet onglet offre divers réglages complémentaires. C'est en particulier ici que vous pourrez activer le lancement automatique de Jack au chargement de Qjackctl.Autres fenêtres disponibles
Status et Messages
La fenêtre Status permet de suivre la latence et les Xruns de façon précise, la fenêtre Messages vous donnera les logs de Jack (utile pour détecter un problème). |
|
Connect
Fenêtre essentielle (voir indispensable) qui vous permettra d'inter-connecter les logiciels compatibles et votre matériel. Cette fenêtre a trois onglets: AUDIO, MIDI et ALSA :
|
|
|
|
|
|
- Jack Transport : il permet de synchroniser les différentes applications compatibles, pour permettre aux boutons lecture, enregistrement, retour au début, etc. d'inter-agir de façon simultanée d'un logiciel à l'autre, mais également de placer "la tête de lecture" au même endroit dans tous ces logiciels. Cela permet de piloter un enregistrement depuis n'importe quel programme, et de supprimer les problèmes de "calage". Les réglages nécessaires pour activer ce mode sont précisés sur la page Jack-Transport.
Patchbay
Cette option vous permet d'enregistrer des configurations. À la différence de LASH-glashctl ou LADISH, le patchbay ne va pas vous enregistrer les configurations de vos logiciels, ni les démarrer. Il va seulement se charger de les connecter à une ou plusieurs sorties dans jack chaque fois que vous démarrez une application. Il faut pour ceci ajouter une "socket" (ou douille en français ). |
|
Par exemple, j'utilise Rhythmbox via jacklaunch et je souhaite que le son de sortie de Rhythmbox sorte sur la carte son sur les lignes 3 et 4 (c'est-à-dire mon deuxième sound-system) alors que par défaut, jacklaunch ne se connecte qu'aux lignes 1 et 2. Il faut donc créer un "socket" en cliquant sur "add". |
|
Il faut ajouter une "socket" et sélectionner les entrées souhaitées, puis créer une "socket" input concernant la sortie sur la carte son souhaitée. Il ne reste plus qu'à connecter les deux sockets et à activer la configuration en cliquant sur "active" ;-) NB: Dans mon cas, le jacklaunch crée chaque fois un nom d'entrée dans différent JACK. Qu'à cela ne tienne, il suffit de bidouiller un peu le "client" dans le "socket" relatif à Rhythmbox dans cet exemple comme ci-dessous. Il est donc possible d'automatiser des connections, même si ces dernières portent des noms différents. |
|
D'autres informations
- Une page de sur le site de Mysth-R (lien mort au 19 juillet 2015) expliquant pas mal d'options.
- Le site d'aide communautaire d'Ubuntu dédie une page à la configuration de qJackCtl.
- Si vous avez besoin de triturer le fichier de configuration de qJackCtl, sachez qu'il se trouve ici :
/home/mon_utilisateur/.config/rncbc.org/
.
Pour continuer
Maintenant que QJackCtl est correctement configuré, vous pouvez aller voir les autres pages qui lui sont consacrées :- page mère de qJackCtl,
- installation de qJackCtl,
- configuration de qJackCtl,
- exemples d'utilisation de qJackCtl.
[+]