Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
jackd [Le 04/03/2018, 16:25]
krodelabestiole [JACK - Jack Audio Connection Kit] inventaire HS
jackd [Le 21/03/2024, 10:58] (Version actuelle)
krodelabestiole [JACK] fix lien session
Ligne 1: Ligne 1:
 {{tag>​audio jack multimedia}} {{tag>​audio jack multimedia}}
----- 
  
 ====== JACK - Jack Audio Connection Kit ====== ====== JACK - Jack Audio Connection Kit ======
Ligne 8: Ligne 7:
 Il existe sur Ubuntu de nombreuses applications dédiées à la [[:​MAO|création musicale]] et au traitement audio en temps réel. C'est le serveur de son JACK qui permet d'​utiliser tous ces logiciels ensemble et de manière optimale. Il existe sur Ubuntu de nombreuses applications dédiées à la [[:​MAO|création musicale]] et au traitement audio en temps réel. C'est le serveur de son JACK qui permet d'​utiliser tous ces logiciels ensemble et de manière optimale.
  
-<note tip>JACK peut être un peu compliqué à installer et à paramétrer. D'​autre distributions GNU/Linux viennent avec un serveur JACK prêt à l'​emploi comme l'​excellent **[[http://​kxstudio.linuxaudio.org/​|KXStudio]]**,​ ou le projet francophone **[[http://​librazik.tuxfamily.org/​|LibraZik]]**.</​note>​+<note tip>JACK peut être un peu compliqué à installer et à paramétrer. D'​autre distributions GNU/Linux viennent avec un serveur JACK prêt à l'​emploi comme l'​excellent **[[:​KXStudio]]**,​ ou le projet francophone **[[http://​librazik.tuxfamily.org/​|LibraZik]]**.</​note>​
  
 <​note>​On suppose dans cette page que votre carte son est correctement reconnue par le driver ALSA (voir la page [[:​audio]]).</​note>​ <​note>​On suppose dans cette page que votre carte son est correctement reconnue par le driver ALSA (voir la page [[:​audio]]).</​note>​
Ligne 14: Ligne 13:
 ===== Présentation ===== ===== Présentation =====
  
 +<note important>​
 +JACK est rendu obsolète par [[:​PipeWire]],​ un nouveau serveur de son, qui se paie le luxe de remplacer également [[:​PulseAudio]] et se trouve donc installé par défaut sur Ubuntu à partir de la version [[:​kinetic|Kinetic 22.10]].
 +
 +Il n'est donc plus nécessaire d'​installer JACK depuis cette version et pour les versions précédentes il est possible d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​pipewire ]]** depuis les dépôts officiels à partir de [[:​focal|Focal 20.04]] ([[:​depots#​sections_universe_et_multiverse_maintenues_par_les_motu|dépôt universe]] pour cette version précise).
 +Dans ce cas référez-vous plutôt à la [[:​pipewire|documentation de PipeWire]].
 +</​note>​
 ==== JACK ==== ==== JACK ====
  
Ligne 19: Ligne 24:
  
 JACK permet de lier virtuellement les différents programmes manipulant le son entre eux, exactement comme on pourrait se servir de câbles audio avec des machines dédiées (séquenceurs,​ instruments,​ effets). \\ Cela permet d'​envisager des interactions poussées entre les différents programmes, et incite les développeurs à concevoir des applications simples, dédiées à une tâche en particulier. C'est donc un univers assez différent de ce qu'on trouve sur Mac OS ou Windows : de gros studios (DAWs) à tout faire qui ne supportent pas la cohabitation. \\ JACK permet de lier virtuellement les différents programmes manipulant le son entre eux, exactement comme on pourrait se servir de câbles audio avec des machines dédiées (séquenceurs,​ instruments,​ effets). \\ Cela permet d'​envisager des interactions poussées entre les différents programmes, et incite les développeurs à concevoir des applications simples, dédiées à une tâche en particulier. C'est donc un univers assez différent de ce qu'on trouve sur Mac OS ou Windows : de gros studios (DAWs) à tout faire qui ne supportent pas la cohabitation. \\
-Pour plus d'​informations à ce sujet, voir le chapitre sur [[:mao#jack_et_les_gestionnaires_de_session|JACK et les gestionnaires de session]].+Pour plus d'​informations à ce sujet, voir le chapitre sur [[:mao#gestionnaires_de_session|les gestionnaires de session]].
  
 ==== Temps de latence ==== ==== Temps de latence ====
Ligne 31: Ligne 36:
 ==== jackd ==== ==== jackd ====
  
-Pour installer JACK il suffit d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer le paquet]] **[[apt://jackd|jackd]]**.+<note important>​ 
 +Depuis [[:​kinetic|Kinetic 22.10]], il n'est plus nécessaire d'​installer ni de configurer JACK. 
 + 
 +[[:​PipeWire]] fournit une couche de rétro-compatibilité. Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​pipewire-jack ]]**. 
 +</​note>​ 
 + 
 +Pour installer JACK il suffit d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer le paquet]] **[[apt>jackd]]**.
  
 <​note>​Le paquet porte le **d** de //daemon// à la fin, il existe aussi un paquet //jack// sans rapport avec notre serveur de son.</​note>​ <​note>​Le paquet porte le **d** de //daemon// à la fin, il existe aussi un paquet //jack// sans rapport avec notre serveur de son.</​note>​
Ligne 38: Ligne 49:
  
 Sur Ubuntu cependant le serveur de son installé par défaut est [[:​PulseAudio]],​ et par défaut il accapare les ressources ALSA (la carte son), ce qui empêche le démarrage de JACK. Par ailleurs il est compliqué à arrêter (il redémarre automatiquement),​ et mieux vaut ne pas le supprimer parce que les applications audio du bureau sont généralement incapables d'​utiliser JACK.\\ Sur Ubuntu cependant le serveur de son installé par défaut est [[:​PulseAudio]],​ et par défaut il accapare les ressources ALSA (la carte son), ce qui empêche le démarrage de JACK. Par ailleurs il est compliqué à arrêter (il redémarre automatiquement),​ et mieux vaut ne pas le supprimer parce que les applications audio du bureau sont généralement incapables d'​utiliser JACK.\\
-À moins d'​utiliser 2 cartes sons différentes (une pour le bureau et une pour JACK), la solution est d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer le paquet]] ​ **[[apt://pulseaudio-module-jack|pulseaudio-module-jack]]**. Ce logiciel permet d'​utiliser PulseAudio et JACK en même temps, en créant une sortie virtuelle de PulseAudio vers JACK (au lieu d'​ALSA) lorsque JACK est lancé, ce qui permet de conserver le son du bureau en toute circonstance.\\+À moins d'​utiliser 2 cartes sons différentes (une pour le bureau et une pour JACK), la solution est d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer le paquet]] ​ **[[apt>pulseaudio-module-jack|pulseaudio-module-jack]]**. Ce logiciel permet d'​utiliser PulseAudio et JACK en même temps, en créant une sortie virtuelle de PulseAudio vers JACK (au lieu d'​ALSA) lorsque JACK est lancé, ce qui permet de conserver le son du bureau en toute circonstance.\\
 Il faut pour cela choisir la sortie //JACK sink// dans les paramètres de [[:​Pavucontrol]]. Il faut pour cela choisir la sortie //JACK sink// dans les paramètres de [[:​Pavucontrol]].
 +
 +Il semblerait que pour charger automatiquement les modules jack2 (dans mon cas, non testé pour jack1) et rediriger les logiciels en cours vers jack, il faille en plus passer par qjackctl. Pour cela [[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>​jack2,​pavucontrol,​qjackctl,​pulseaudio-module-jack|jack2 pavucontrol qjackctl pulseaudio-module-jack]]**.
 +
 +Cliquez sur "​Règlages"​ > Onglet "​Paramètres"​. Vérifiez que la bonne carte son de sortie est cochée dans "​Interface"​ (J'ai également mis dans l'​onglet "​Avancé"​ la valeur "​pasuspender -- jackd" dans le préfixe, mais pas sur que ça soit nécessaire). Ensuite allez dans l'​onglet "​Options",​ cochez la case "​Exécuter un script après le démarrage",​ que vous mettez à la valeur
 +
 +    pactl load-module module-jack-sink && pactl load-module module-jack-source && pactl set-default-sink jack_out && pacmd set-default-source jack_in && pacmd list-sink-inputs | grep index | sed 's/ *index: *//g' | xargs -I{} pacmd move-sink-input "​{}"​ jack_out
 +
 +(cette ligne charge les modules, change la carte par défaut, et ça redirige tous les logiciels actuellements ouverts vers la "​fausse"​ carte graphique.
 +
 +Ajoutez aussi "un script après l'​extinction"​ en mettant dans la zone de texte :
 +
 +    pacmd suspend false
 +
 +(ceci permet de relancer pulseaudio quand on quitte jack)
 +
 +Et voila ! Il ne reste plus qu'à valider les changements avec "​OK",​ et à cliquer sur "​Démarrer"​ pour que toutes les applications pulseaudio soient redirigées vers Jack. Quand vous voulez quitter jack, il vous suffit de cliquer sur "​Arrêter",​ et pulseaudio reprend la main. Magique non ! ;)
 +
 +NB: dans pavucontrol les logiciels devraient maintenant être passés sur le périphérique Jack sink !
  
 ==== Priorité temps réel ==== ==== Priorité temps réel ====
  
-Le noyau linux implémente des fonctionnalités ​permettant d'​optimiser le calcul en temps réel, ce qui permet de traiter l'​audio en outrepassant certaines règles auxquelles sont soumis les autres processus. Cela permet de réduire la consommation du processeur pour un même temps de latence. Ces fonctionnalités sont incluses de base dans le noyau depuis Ubuntu 10.04, donc plus la peine d'​installer le //noyau realtime// ou //​lowlatency//​ dont on entend encore parler dans les anciennes documentations.+Depuis Ubuntu 10.04, le noyau Linux générique ​implémente des fonctionnalité ​permettant d'​optimiser le calcul en temps réel (//​realtime//​), ce qui permet de traiter l'​audio en outrepassant certaines règles ​(généralement liées à la sécurité) ​auxquelles sont soumis les autres processus. Cela permet de réduire la consommation du processeur pour un même temps de latence.
  
-Pour profiter de ces optimisations il faut tout de même activer cette option ​dans la configuration ​de JACK, et ajouter l'​utilisateur courant au groupe //audio// :+On peut activer cette option ​en choisissant de donner ​la priorité //​realtime//​ et le privilège //memlock// au groupe //audio// lors de l'​installation ​de JACK. La contrepartie est qu'on risque un gel complet du système si 100% de la mémoire RAM est occupé. 
 + 
 +Pour en profiter il faut ajouter l'​utilisateur courant au groupe //audio// :
 <​code>​sudo gpasswd -a $USER audio</​code>​ <​code>​sudo gpasswd -a $USER audio</​code>​
 Redémarrez ensuite votre session pour prendre en compte les changements. Redémarrez ensuite votre session pour prendre en compte les changements.
 +On pourra alors activer l'​option temps réel dans la configuration de JACK.
 +
 +Certaines versions du noyau linux se proposent d'​optimiser encore les calculs en temps réel. Il faut pour cela installer et démarrer sur un [[linux-lowlatency|noyau low-latency]]. Cela se fait encore au détriment de la sécurité et de la fiabilité générale du système, mais reste une bonne idée pour une machine dédiée spécifiquement à la [[:MAO]]. ((//(en)// [[https://​www.phoronix.com/​scan.php?​page=article&​item=linux414-lowlatency-liquorix|voir ici]] pour les différences entre le noyau generic et le noyau low-latency))
  
 ===== Démarrage et configuration ===== ===== Démarrage et configuration =====
Ligne 72: Ligne 106:
 ==== Interface graphique ==== ==== Interface graphique ====
  
-Il existe plusieurs interfaces graphiques qui peuvent être d'une grande utilité que ce soit pour la configuration ou l'​utilisation de JACK : **[[:​QjackCtl]]** est la plus courantes, on trouve aussi **Cadence**,​ **Catia** ou **Claudia** (qui sont des logiciels de la distribution **KXStudio**).+Il existe plusieurs interfaces graphiques qui peuvent être d'une grande utilité que ce soit pour la configuration ou l'​utilisation de JACK : **[[:​QjackCtl]]** est la plus courante, on trouve aussi **Cadence**,​ **Catia** ou **Claudia** (qui sont des logiciels de la distribution **[[:KXStudio]]**).
  
 Pour [[:​QjackCtl]],​ une fois lancé, il faut cliquer sur le bouton //​Réglages//​ pour accéder à l'​interface qui règle les paramètres de démarrage du serveur jack (onglets //​Paramètres//​ et //​Avancé//​). Dans l'​onglet //Divers//, on a la possibilité de demander à QjackCtl de lancer le serveur automatiquement quand il démarre. On peut ensuite cliquer le bouton //​Démarrer//​ et apprécier d'​éventuels messages d'​erreur dans la fenêtre **Messages** (bouton du même nom). Pour [[:​QjackCtl]],​ une fois lancé, il faut cliquer sur le bouton //​Réglages//​ pour accéder à l'​interface qui règle les paramètres de démarrage du serveur jack (onglets //​Paramètres//​ et //​Avancé//​). Dans l'​onglet //Divers//, on a la possibilité de demander à QjackCtl de lancer le serveur automatiquement quand il démarre. On peut ensuite cliquer le bouton //​Démarrer//​ et apprécier d'​éventuels messages d'​erreur dans la fenêtre **Messages** (bouton du même nom).
  
 En plus de configurer JACK, ces interfaces permettent en général de tirer des câbles audio virtuels entre les différentes applications (et avec le matériel), et parfois aussi de gérer des [[:​mao#​jack_et_les_gestionnaires_de_session|sessions]],​ ce qui est une autre fonctionnalité importante de JACK. En plus de configurer JACK, ces interfaces permettent en général de tirer des câbles audio virtuels entre les différentes applications (et avec le matériel), et parfois aussi de gérer des [[:​mao#​jack_et_les_gestionnaires_de_session|sessions]],​ ce qui est une autre fonctionnalité importante de JACK.
- 
  
 ==== Optimisation ==== ==== Optimisation ====
Ligne 121: Ligne 154:
  
 Le processeur sature probablement. Augmentez les valeurs échantillons et périodes, voir [[#​optimisation]]. Le processeur sature probablement. Augmentez les valeurs échantillons et périodes, voir [[#​optimisation]].
- 
- 
  
 ===== Liens utiles ===== ===== Liens utiles =====
  
   * http://​linuxmao.org/​Jack   * http://​linuxmao.org/​Jack
-  * //​en// ​http://​jackaudio.org/​ +  * //​en// ​https://​jackaudio.org/​ 
-  * //​en// ​http://kxstudio.linuxaudio.org/​Documentation:​Manual:​jack_configuration+  * //​en// ​https://kx.studio/​Documentation:​Manual:​jack_configuration
   * //en// http://​qjackctl.sourceforge.net/​   * //en// http://​qjackctl.sourceforge.net/​
 +
 ---- ----
-//​Contributeurs : [[utilisateurs:​krodelabestiole]] ​ [[utilisateurs:​jmp]] [[utilisateurs:​omega02]] [[utilisateurs:​sonal]] [[:​utilisateurs:​aurelien88|aurelien88]].// --- //+ 
 +//​Contributeurs : [[:utilisateurs:​krodelabestiole]][[:utilisateurs:​jmp]][[:utilisateurs:​omega02]][[:utilisateurs:​sonal]][[:​utilisateurs:​aurelien88]].//​
  • jackd.1520177123.txt.gz
  • Dernière modification: Le 04/03/2018, 16:25
  • par krodelabestiole