LibraZiK - Accueil
Don
Cliquez ici pour donner sur le compte liberapay du projet
LibraZiK - summary in english

Outils pour utilisateurs

Outils du site


manuel:jackd

Manuel de LibraZiK-3 - LibraZiK-3 et JACK

logo JACK - cliquer pour agrandir



L'histoire

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 :

  • le travail musical en temps-réel (grâce à sa basse-latence)
  • l’interconnexion de toutes les applications compatibles-JACK et d'un périphérique audio matériel
  • de partager l'audio entre toutes les applications et matériels

Pour les gens ayant des connaissances en M.A.O. sous Windows©™, vous pouvez vous dire que JACK est un équivalent de “ASIO + rewire”.

jackd

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.

Fichier de configuration

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

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.

Fichier de configuration

jackdbus enregistre sa configuration dans le fichier ~/.config/jack/conf.xml.

Journal

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.

Les protocoles

JACK fournit plusieurs protocoles qui sont décrit brièvement ci-dessous. Il s'agit de :

  • JACK-audio : transmission des données audio entre vos applications et matériels
  • JACK-MIDI : transmission des données MIDI entre vos applications et matériels
  • JACK-transport : synchronisation de lecture, enregistrement, … entre vos applications
  • JACK-session : sauvegarde de toute votre session pour tout relancer en un seul clic

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.

JACK-audio

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.

JACK-MIDI

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.

JACK-transport

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” :

JACK-session

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.

Paquets

jackd1

Ce paquet contient le démon jackd ainsi que quelques exemples de clients, et des utilitaires.

Ressource interne en français

Une fois le paquet installé, la commande suivante dans un terminal : man jackd1 (EN)

jackd2

Ce paquet contient le démon jackd ainsi que quelques exemples de clients, et des utilitaires.

Ressource interne en français

Une fois le paquet installé, la commande suivante dans un terminal : man jackd2 (EN)

jackd1-firewire

Ce paquet contient le logiciel dorsal “FFADO” IEEE1394/FireWire.

jackd2-firewire

Ce paquet contient les logiciels dorsaux IEEE1394/FireWire “FFADO” et “FreeBoB”.

libjack0

Ce paquet fournit les bibliothèques partagées de JACK 1.

libjack-jackd2-0

Ce paquet fournit les bibliothèques partagées de JACK 2.

libjack-dev

Ce paquet fournit les fichiers pour développer une application compatible JACK 1, ainsi qu'une référence de l'API JACK.

libjack-jackd2-dev

Ce paquet fournit les fichiers pour développer une application compatible JACK 2, ainsi qu'une référence de l'API JACK.

Utilitaires

jack_iodelay

jack_iodelay provient des paquets jackd1 ou jackd2.
Voir la page dédiée : jack_iodelay.

jack_control

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.

jack et l'accès temps-réel

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

1)
que ce soit la version 1 ou la version 2
manuel/jackd.txt · Dernière modification: 03/11/2020 00:29 de trebmuh