Cette page présente une méthode parmi d'autres pour transformer un joystick en contrôleur MIDI, uniquement en utilisant des logiciels libres.
Le but de ce tutoriel est de transformer un joystick en contrôleur MIDI via deux logiciels :
Nous utiliserons aussi XY Controller, qui est présent de base dans LibraZiK 2 ou dans KXStudio. Vous pouvez utiliser n'importe quel autre logiciel à la place de ce dernier du moment qu'il a une entrée et une sortie MIDI compatible JACK. La méthode restera la même.
Note : il existe aussi Midijoystick, mais je n'ai pas réussi à l'installer.
Pré-requis : savoir déjà un peu utiliser une interface graphique de JACK, savoir installer des paquets sur la distribution que vous allez utiliser.
À noter que ce tutoriel est inspiré de cet autre tutoriel : Yoshimi - modifications vectorielles temps réel. Merci donc aux personnes qui l'ont rédigé, sinon je n'aurais pas saisi le fonctionnement de certains réglages de qmidiroute.
Nous partirons du principe que le joystick que vous voulez utiliser est en USB, class compliant, c'est-à-dire sans avoir de pilote à installer.
Pour être sûr que le joystick que vous voulez utiliser fonctionne, vous pouvez utiliser jstest-gtk . Peut-être qu'il vous dira à vous aussi qu'il y a un accéléromètre dans votre ordi... en plus du joystick...
aseqjoy sert à transformer les signaux émis par votre joystick, et dont j'ignore la nature, en commandes MIDI.
De base, il est présent dans les dépôts de LibraZiK-2. À vous de l'installer suivant la méthode qui vous convient le mieux : soit via synaptic, soit via une console.
Normalement vous devriez trouver Qmidiroute assez facilement dans les dépôts de votre distribution GNU/Linux.
1. Commencez par lancer jack. À vous de voir la méthode qui vous convient le mieux ( Cadence, Qjackctl, etc.).
2. Lancez aseqjoy, en ligne de commande dans un terminal.
Vous obtenez quelque chose comme ceci :
C'est que tout se passe bien pour le moment. Pour être honnête, je n'ai pas tout compris dans le fonctionnement de aseqjoy, mais ce que je peux vous dire, c'est que par exemple l'axe 0 agit sur le contrôleur MIDI 10 du logiciel que vous contrôlez. L'axe 1 sur le contrôleur 11, etc...
À noter, que vous pourrez uniquement vous servir des axes et du contrôleur de direction (D-pad) pour les commandes MIDI. Les boutons eux, de base sont asservis au changement de canal MIDI. Pour modifier cette fonctionnalité directement dans aseqjoy faites un tour par ici, qui est un fil de discussion pour modifier aseqjoy.
3. Lancez Qmidiroute.
4. Lancez Contrôleur XY.
Il est nativement dans LibraZiK-2.Vous pouvez aussi lancer tout autre utilitaire MIDI qui a une entrée et une sortie MIDI.
5. Via l'interface graphique de JACK de votre choix, ici c'est Catia, patchez aseqjoy, qui apparaît sous le nom joystick0, à Qmidiroute.
6. Dans Qmidiroute, récupérez les informations qui sont envoyées par votre joystick.
Dans cet exemple, j'ai bougé l'axe X de mon joystick. Cela veut dire que aseqjoy transforme bien ce signal en commande MIDI.
Cette commande MIDI est la suivante : sur le canal 2, le contrôleur 10 est à telle valeur; valeur qui varie en fonction de la position mon joystick sur cet axe.
Notez bien le canal et le numéro de contrôleur.
7. Retournez à l'interface graphique de Jack, pour moi Catia, et débranchez aseqjoy de qmidiroute.
8. Branchez la sortie MIDI de XY-Controller à l'entrée MIDI de qmidiroute :
9. Nous allons répéter l'étape n°6 : bouger le potentiomètre X dans Contrôleur XY, puis dans qmidiroute, nous récupérons son canal MIDI et le numéro de son contrôleur. Idem, on se garde ces informations sous le coude.
10. Idem étape n°7. On débranche tout.
11. Patchez le tout comme suit :
aseqjoy -> qMidiroute -> Contrôleur XY, ce qui vous donne quelque chose comme ceci, comme cela :
Normalement, quand vous bougez votre joystick, rien ne se passe dans Contrôleur XY. Sauf coup de bol...
C'est là que nous aurons besoin des valeurs des canaux et de contrôleur des axes X et Y du joystick et de XY-Controller.
1. Enregistrez votre nouveau fichier Qmidiroute là où vous voulez avec le nom que vous voulez...
2. Créez une nouvelle règle. C'est l'icône avec un plus vert.
3. Dans la partie gauche, en "entrée", vous passez les valeurs suivantes :
4. Dans la partie de droite, accrochez-vous à vos slips... :
La formule pourrait être :
Valeur de sortie = valeur d'entrée + valeur de l'offset
D'où :
Valeur de l'offset = valeur de sortie - valeur d'entrée
Ce qui donne ici :
Valeur de l'offset = 1-10 = -9
Je vous avais prévenu... je ne trouve pas l'interface de Qmidiroute particulièrement claire pour ça...
5. On sauvegarde son fichier...hein...
Et bien normalement quand vous bougez votre joystick, le rond du pad et les potentiomètres de XY Contrôleur devraient bouger.
Et c'est gagné pour vous !
Table des matières
But de ce tutoriel
Le but de ce tutoriel est de transformer un joystick en contrôleur MIDI via deux logiciels :
Nous utiliserons aussi XY Controller, qui est présent de base dans LibraZiK 2 ou dans KXStudio. Vous pouvez utiliser n'importe quel autre logiciel à la place de ce dernier du moment qu'il a une entrée et une sortie MIDI compatible JACK. La méthode restera la même.
Note : il existe aussi Midijoystick, mais je n'ai pas réussi à l'installer.
Pré-requis : savoir déjà un peu utiliser une interface graphique de JACK, savoir installer des paquets sur la distribution que vous allez utiliser.
À noter que ce tutoriel est inspiré de cet autre tutoriel : Yoshimi - modifications vectorielles temps réel. Merci donc aux personnes qui l'ont rédigé, sinon je n'aurais pas saisi le fonctionnement de certains réglages de qmidiroute.
Connecter son joystick
Nous partirons du principe que le joystick que vous voulez utiliser est en USB, class compliant, c'est-à-dire sans avoir de pilote à installer.
Pour être sûr que le joystick que vous voulez utiliser fonctionne, vous pouvez utiliser jstest-gtk . Peut-être qu'il vous dira à vous aussi qu'il y a un accéléromètre dans votre ordi... en plus du joystick...
Installer aseqjoy
aseqjoy sert à transformer les signaux émis par votre joystick, et dont j'ignore la nature, en commandes MIDI.
De base, il est présent dans les dépôts de LibraZiK-2. À vous de l'installer suivant la méthode qui vous convient le mieux : soit via synaptic, soit via une console.
Installer qMidiroute
Normalement vous devriez trouver Qmidiroute assez facilement dans les dépôts de votre distribution GNU/Linux.
Branchez-moi tout ça !
1. Commencez par lancer jack. À vous de voir la méthode qui vous convient le mieux ( Cadence, Qjackctl, etc.).
2. Lancez aseqjoy, en ligne de commande dans un terminal.
Vous obtenez quelque chose comme ceci :
aseqjoy aseqjoy version 0.0.2 - Copyright (C) 2003-2016 by Alexander Koenig aseqjoy comes with ABSOLUTELY NO WARRANTY - for details read the license. aseqjoy: /dev/js0: No such file or directory Using joystick (Logitech Logitech RumblePad 2 USB) through device /dev/input/js0 with 6 axes and 12 buttons. Axis -> MIDI controller mapping: 0 -> 10 1 -> 11 2 -> 12 3 -> 13 4 -> 14 5 -> 15 Ready, entering loop - use Ctrl-C to exit.
C'est que tout se passe bien pour le moment. Pour être honnête, je n'ai pas tout compris dans le fonctionnement de aseqjoy, mais ce que je peux vous dire, c'est que par exemple l'axe 0 agit sur le contrôleur MIDI 10 du logiciel que vous contrôlez. L'axe 1 sur le contrôleur 11, etc...
À noter, que vous pourrez uniquement vous servir des axes et du contrôleur de direction (D-pad) pour les commandes MIDI. Les boutons eux, de base sont asservis au changement de canal MIDI. Pour modifier cette fonctionnalité directement dans aseqjoy faites un tour par ici, qui est un fil de discussion pour modifier aseqjoy.
3. Lancez Qmidiroute.
4. Lancez Contrôleur XY.
Il est nativement dans LibraZiK-2.Vous pouvez aussi lancer tout autre utilitaire MIDI qui a une entrée et une sortie MIDI.
5. Via l'interface graphique de JACK de votre choix, ici c'est Catia, patchez aseqjoy, qui apparaît sous le nom joystick0, à Qmidiroute.
6. Dans Qmidiroute, récupérez les informations qui sont envoyées par votre joystick.
Dans cet exemple, j'ai bougé l'axe X de mon joystick. Cela veut dire que aseqjoy transforme bien ce signal en commande MIDI.
Cette commande MIDI est la suivante : sur le canal 2, le contrôleur 10 est à telle valeur; valeur qui varie en fonction de la position mon joystick sur cet axe.
Notez bien le canal et le numéro de contrôleur.
7. Retournez à l'interface graphique de Jack, pour moi Catia, et débranchez aseqjoy de qmidiroute.
8. Branchez la sortie MIDI de XY-Controller à l'entrée MIDI de qmidiroute :
9. Nous allons répéter l'étape n°6 : bouger le potentiomètre X dans Contrôleur XY, puis dans qmidiroute, nous récupérons son canal MIDI et le numéro de son contrôleur. Idem, on se garde ces informations sous le coude.
10. Idem étape n°7. On débranche tout.
11. Patchez le tout comme suit :
aseqjoy -> qMidiroute -> Contrôleur XY, ce qui vous donne quelque chose comme ceci, comme cela :
Normalement, quand vous bougez votre joystick, rien ne se passe dans Contrôleur XY. Sauf coup de bol...
Configuration de Qmidiroute
C'est là que nous aurons besoin des valeurs des canaux et de contrôleur des axes X et Y du joystick et de XY-Controller.
1. Enregistrez votre nouveau fichier Qmidiroute là où vous voulez avec le nom que vous voulez...
2. Créez une nouvelle règle. C'est l'icône avec un plus vert.
3. Dans la partie gauche, en "entrée", vous passez les valeurs suivantes :
- Type : Contrôleur
- Canal : le canal que vous avez relevé en sortie de votre joystick, ici : 2 et ce dans les deux cases. Nous ne voulons écouter que ce canal.
- Contrôleur : ce sont les numéros des contrôleurs que nous voulons écouter, ici les 10 et 11. Respectivement l'axe X et l'axe Y.
- Valeur : de 0 à 127.
4. Dans la partie de droite, accrochez-vous à vos slips... :
- Type : Contrôleur (bon, jusque là, ça va...)
- Canal : Fixe // 2. (ok...)
- Contrôleur : Offset (parce que nous aurons un décalage entre la valeur en entrée et la valeur que nous voulons en sortie...hé oui...) // -9
La formule pourrait être :
Valeur de sortie = valeur d'entrée + valeur de l'offset
D'où :
Valeur de l'offset = valeur de sortie - valeur d'entrée
Ce qui donne ici :
Valeur de l'offset = 1-10 = -9
Je vous avais prévenu... je ne trouve pas l'interface de Qmidiroute particulièrement claire pour ça...
- Valeur 0 et 127
- Port ALSA : 1
5. On sauvegarde son fichier...hein...
Test
Et bien normalement quand vous bougez votre joystick, le rond du pad et les potentiomètres de XY Contrôleur devraient bouger.
Et c'est gagné pour vous !
Divers
- Un tutoriel pour aseqjoy sur le site de Librazik : Tutoriel aseqjoy .
- Patcher aseqjoy pour utiliser les boutons en commandes midi : patchage de aseqjoy.
- La page de qmidiroute.