Manuel de LibraZiK-3 - LibraZiK-3 et JACK
Quand des logiciels libres de musique ont commencé à apparaître, chaque développeur codait à l'intérieur de son logiciel quelque chose que l'on pourrait appelé un noyau audio/MIDI qui fournissait - tant que faire se peut - la plus basse latence possible pour qu'il n'y ait pas de craquement dans la restitution sonore. Tous ces noyaux audio/MIDI basse-latence n'étaient pas forcément capables de discuter facilement entre eux et donc, ne permettaient pas aisément l'échange de données entre les différentes applications.
L'histoire est qu'il fallait trouver un moyen pour faire communiquer toutes les applications musicales entre elles. L'idée était donc de fournir un protocole d'échange basse-latence et… … JACK fut créé. Et chaque application qui intègre le protocole JACK en son sein devient compatible-JACK. Elle peut dorénavant échanger ses données avec les autres logiciels compatibles-JACK eux aussi.
JACK est donc un serveur-son basse-latence qui permet donc :
Pour les gens ayant des connaissances en M.A.O. sous Windows©™, vous pouvez vous dire que JACK est un équivalent de “ASIO + rewire”.
Pour que les applications compatibles-JACK puissent discuter entre elles, il faut un serveur-son. Ce serveur-son se nomme jackd. Certains logiciels compatibles-jack savent le démarrer tout seul s'il ne l'est pas déjà, d'autres non. Voir la page démarreur jackd à ce sujet.
Vous voudrez certainement le piloter par une interface graphique. LibraZiK conseille l'utilisation de Cadence.
Le serveur-audio jackd 1) n'enregistre et n'utilise jamais sa configuration-utilisateur lui-même.
Ceci dit, certains démarreurs jackd utilisent et enregistrent la “dernière configuration utilisée” de jackd dans le fichier ~/.jackdrc
.
jackdbus est la même chose que jackd avec un support D-bus, ce qui permet de faire fonctionner LADISH. Vous en avez donc besoin pour faire fonctionner Claudia. Le support de jackdbus est fourni soit par le paquet jackd2, soit par le paquet jackd1 lorsqu'il comprend la rustine dbus ce qui n'est pas le cas actuellement pour LibraZiK-3. Vous aurez donc besoin de jackd2 pour faire fonctionner Claudia.
jackdbus enregistre sa configuration dans le fichier ~/.config/jack/conf.xml
.
jack2 enregistre son journal dans le fichier ~/.log/jack/jackdbus.log
.
À noter que ce fichier peut grossir très vite car il ne s'auto-efface pas.
Si besoin, vous pouvez l'effacer à la main, jack2 en recréera un nouveau.
JACK fournit plusieurs protocoles qui sont décrit brièvement ci-dessous. Il s'agit de :
Attention, vous verrez souvent sur la toile que tel ou tel logiciel est compatible-JACK. Il vous faudra vous poser la question de savoir s'il est compatible avec un, plusieurs ou tous les protocoles fournis par JACK.
C'est le protocole qui permet aux matériels et aux applications d'échanger des données audio (du son) entre eux. Vous ferez vous-même les connexions entre les logiciels suivant votre désir sur le principe de : “je veux que le son qui vient de mon micro aille dans le logiciel A, passe par le logiciel B, avant de finir dans le logiciel C”. Pour faire ces connexions, vous utiliserez une baie de brassage. LibraZiK conseille d'utiliser Catia.
Si vous voulez voir une liste de logiciels compatibles avec le protocole JACK-audio, vous pouvez allez lire la page audio-jack.
C'est le protocole JACK permettant aux applications et aux matériels d'échanger des données MIDI entre eux. C'est un protocole de transport des données MIDI intégré à JACK. Il est l'équivalent du protocole JACK-audio mais pour les données MIDI. Et comme pour JACK-audio, vous ferez vous-même les connexions entre les logiciels suivant votre désir sur le principe de : “je veux que les informations MIDI qui viennent de mon clavier-piano aillent dans le logiciel A, passe par le logiciel B, avant de finir dans le logiciel C”. Pour faire ces connexions, vous pourrez utiliser une baie de brassage. LibraZiK conseille d'utiliser Catia.
JACK-MIDI fournit déjà la plupart des possibilités de routage que l'interface de séquenceur ALSA-MIDI fourni. Il possède également une possibilité de pontage aseq mais, afin de bénéficier de JACK-MIDI, les logiciels/matériels doivent utiliser JACK. L'API de JACK-MIDI est extrêmement limitée en comparaison de la très capable API ALSA-MIDI, mais ceci concerne les développeurs et pas les utilisateurs.
Si vous voulez voir une liste de logiciels compatible avec le protocole JACK-MIDI, vous pouvez allez lire la page MIDI-JACK.
C'est un protocole de transport/synchronisation ayant été développé et intégré dans JACK. Le transport jack peut permettre de synchroniser le tempo, les boutons de lecture, de pause, de rembobinage, et d'enregistrement,… et autres opérations de la tête de lecture, afin de piloter un (ou des) logiciels.
Sur LibraZiK-3, vous pourrez savoir si un logiciel est compatible avec le transport jack en lisant sa page dédiée où il y sera indiqué comment paramétrer le logiciel pour pouvoir utiliser cette fonctionnalité.
Si vous voulez voir une liste de logiciels compatibles avec le protocole JACK-transport, vous pouvez allez lire la page jack-transport.
Voir également : Jack-Transport.
Tutoriels “Jack-Transport” :
Page | Description | Étiquettes |
---|---|---|
Ardour et la synchronisation au transport JACK | comment synchroniser Ardour au transport JACK | tutoriel, tutoriel ardour, tutoriel jack-transport |
Créer un studio LADISH avancé avec Claudia | Studio Claudia avec : Hydrogen, ZynAddSubFX, Ardour, le transport JACK et un clavier MIDI | tutoriel, tutoriel claudia, tutoriel zynaddsubfx, tutoriel hydrogen, tutoriel ardour, tutoriel pluma, premier pas, tutoriel jack-transport, tutoriel ladish, a revoir |
Créer une session RaySession avancée | Studio RaySession avec : Hydrogen, ZynAddSubFX, Ardour, le transport JACK et un clavier MIDI | tutoriel, tutoriel raysession, tutoriel zynaddsubfx, tutoriel hydrogen, tutoriel ardour, tutoriel catia, tutoriel pluma, premier pas, tutoriel jack-transport, tutoriel nsm, video a faire |
JACK-session est un gestionnaire de session.
Si vous voulez voir une liste de logiciels compatible avec le protocole JACK-session, vous pouvez allez lire la page jack-session.
Ce paquet contient le démon jackd ainsi que quelques exemples de clients, et des utilitaires.
Une fois le paquet installé, la commande suivante dans un terminal : man jackd1
Ce paquet contient le démon jackd ainsi que quelques exemples de clients, et des utilitaires.
Une fois le paquet installé, la commande suivante dans un terminal : man jackd2
Ce paquet contient le logiciel dorsal “FFADO” IEEE1394/FireWire.
Ce paquet contient les logiciels dorsaux IEEE1394/FireWire “FFADO” et “FreeBoB”.
Ce paquet fournit les bibliothèques partagées de JACK 1.
Ce paquet fournit les bibliothèques partagées de JACK 2.
Ce paquet fournit les fichiers pour développer une application compatible JACK 1, ainsi qu'une référence de l'API JACK.
Ce paquet fournit les fichiers pour développer une application compatible JACK 2, ainsi qu'une référence de l'API JACK.
jack_iodelay provient des paquets jackd1 ou jackd2.
Voir la page dédiée : jack_iodelay.
jack_control provient du paquet jackd2.
Cette commande permet d'envoyer différentes commandes au serveur JACK. Par exemple jack_control status
pour savoir si le serveur JACK est démarré ou pas.
Pour pouvoir effectuer correctement les opérations audio, les logiciels passant par JACK doivent avoir un accès temps-réel au système. Pour cela, il faut que JACK ait accès lui-même au temps-réel. C'est normalement pré-configuré par une installation de LibraZiK.
Si jamais vous voyiez un message du type
Cannot lock down 47664026 byte memory area (Cannot allocate memory)
c'est probablement que ça n'est pas fait ou pas correctement fait.
Pour cela, vérifions que l'accès temps-réel soit correctement en place avec la commande suivante :
cat /etc/security/limits.d/audio.conf
qui devrait retourner ceci :
# Provided by the jackd package. # # Changes to this file will be preserved. # # If you want to enable/disable realtime permissions, run # # dpkg-reconfigure -p high jackd @audio - rtprio 95 @audio - memlock unlimited #@audio - nice -19
Si vous n'avez pas cela, vous pouvez utiliser la commande (en compte administrateur) indiquée ci-dessous pour le configurer correctement :
dpkg-reconfigure -p high jackd2