Mots-clé : midi

Compilation du serveur JACK

Ouf ! J’ai enfin réussi à compiler une version du serveur JACK 1.9.6.
A chaque fois il me disait qu’il manquait quelque chose, et je devais l’installer.
Voilà comment ça s’est passé : j’ai récupéré la dernière version de JACK, puis je l’ai décompressée et je suis allé dans le répertoire en shell :
cd ~/Bureau/jack-1.9.6
De là, j’ai commencé à essayer de compiler :
> sudo ./waf clean && sudo ./waf configure --alsa
A chaque fois, il y avait des lignes où il me disait « no » au lieu de « yes », par exemple :
Checking for alsa >= 1.0.18 : ok
Checking for libfreebob >= 1.0.0 : no
Checking for libffado >= 1.999.17 : no
Checking for header sndfile.h : no

Alors voici la solution pour la plupart des choses manquantes : il faut installer la version de développement.
Donc (1) demander de chercher parmi tous les packages existants : prenons l’exemple avec sndfile :
sudo apt-cache search sndfile
Et là malheureusement il trouve plein de fichiers. Alors on filtre en précisant qu’on ne veut que du « développement » = « dev » :
sudo apt-cache search sndfile | grep dev
Et là il ne reste plus que deux lignes :

libsndfile1-dev - Development files for libsndfile;
mffm-libsndfilew-dev - wrapper for the libsndfile

Avec ces deux lignes, il faut prendre la plus « logique », ici donc la première, et installer en copiant collant le premier mot, ici « libsndfile1-dev » :
sudo apt-get install libsndfile1-dev

Vous continuez comme ça jusqu’à ce que vous n’ayez plus que des « yes » partout.
Ensuite, il se peut que vous ayez l’erreur :
«Unknown driver "alsa"»

La solution est simple (mais encore une fois il fallait la trouver) : il vous faut lors de la configuration de la compilation, préciser qu’il faut ajouter le driver « alsa » :
sudo ./waf clean && sudo ./waf configure --alsa
Et enfin l’ordre qui devrait fonctionner jusqu’au bout :
sudo ./waf install
Ensuite, peut être que vous êtes dans le même cas que moi à savoir que sous Ubuntu, vous avez installé la version « officielle ». Cette dernière est installée dans /usr/bin :
/usr/bin/jackd
Mais la nouvelle que vous venez tout juste de compiler a peut être été installée ailleurs !
Mettez à jour la liste de tous les fichiers de votre ordinateur :
> sudo updatedb
Et cherchez tous les fichiers « jackd » :

> sudo locate /jackd | grep ckd$ | more
/etc/default/jackd
/home/olivier/Bureau/jack-1.9.6/build/default/linux/jackd
/home/olivier/Téléchargements/jackd
/usr/bin/jackd
/usr/local/bin/jackd
/usr/share/doc/jackd
>

Vous voyez qu’il y en a deux qui semblent identiques. Voyons en détail :

> l /usr/bin/jackd
-rwxr-xr-x 1 root root 23096 2010-02-23 17:48 /usr/bin/jackd
olivier@olivier-laptop:~/Bureau/jack-1.9.6$ l /usr/local/bin/jackd
-rwxr-xr-x 1 root root 18727 2011-01-08 00:26 /usr/local/bin/jackd
>

Eh oui, effectivement, celui que vous avez compilé se trouve dans « /usr/local/bin » et le vieux dans « /usr/bin »
Donc il vous suffira de changer la ligne de commande du JACK Audio Connexion Kit :
/usr/bin/pasuspender -- /usr/local/bin/jackd
Et enfin, halleluja, tout fonctionnera !

Un très grand merci à LinuxMAO où j’ai trouvé cette information.

Enfin tout ça n’est que pour réussir à faire tourner une dernière version du serveur JACK…
C’est marrant avec Linux. Parce qu’on a toujours l’impression que c’est compliqué, mais au final on maitrise tellement mieux la chose que c’est bien plus agréable en fait que sur Windows, où, lorsqu’il arrive quelque chose qui ne fonctionne pas, on ne sait jamais comment le corriger… et pourtant ça fait 17 ans que je suis exclusivement sous Windows !

Ubuntu : installation du serveur JACK : comment faire

Voilà le résumé :

  • Je suis sous Ubuntu 10.04 ;
  • J’ai un piano avec deux prises MIDI (in et out) ;
  • J’ai acheté un adaptateur LogiLink USB Cable pour pouvoir transférer les informations de mon piano à mon PC et vice versa ;

Mon objectif est simple : faire en sorte que, quand j’appuie sur les touches du piano, ça se voie sur l’ordinateur.
Lancez le gestionnaire de paquets Synaptic.
Tapez « jack » dans « Recherche rapide ».
Une fois la liste affichée, sélectionnez pour l’installation : jackd, jack-tools, et celui auquel on ne pense pas mais qui est aussi important que le reste, j’ai nommé : qjackctl.

Voilà, une fois que tout est installé, il y a une nouvelle application qui est apparue dans le menu Applications => Sons et Video : c’est JACK Control.

La plupart des ordinateurs récents sous Linux ont un programme pour gérer le son qui est « PulseAudio ». Malheureusement il n’est pas compatible avec le serveur JACK. Donc il faut ajouter « /usr/bin/pasuspender — » qui va suspendre le programme « PulseAudio », pendant que le serveur JACK est actif. Bien sûr, dès que vous arrêterez le serveur, automatiquement le programme « PulseAudio » reprendra sa place de manière transparente. Que la vie est belle !
Ce qui suit ne concerne donc que les gens qui ont « PulseAudio », mais c’est la grande majorité.
Lancez le programme JACK Control (Applications => Sons et Video => JACK Control), et cliquez immédiatement sur le bouton « Réglages ».
Là, allez dans « Chemin du serveur », effacez tout et mettez :
/usr/bin/pasuspender -- /usr/bin/jackd

Voilà pour la première étape de « base ». Ensuite, je vais décrire comment compiler à la main une version plus récente du serveur JACK, afin de profiter des toutes dernières améliorations.