Historique: Lancer un script à partir d un événement MIDI
Aperçu de cette version: 4
info
Ce tutoriel répond à la question suivante:
Comment faire pour lancer un programme ou une commande lorsque j'appuie sur tel ou tel bouton de mon contrôleur MIDI (clavier, pédalier...) ?
Comment faire pour lancer un programme ou une commande lorsque j'appuie sur tel ou tel bouton de mon contrôleur MIDI (clavier, pédalier...) ?
C'est pour répondre à cette problématique que Mididings a été développé.
Il faut donc commencer par l'installer sur votre machine.
Mididings fonctionne avec des scripts python. Mais vous n'aurez pas besoin de savoir coder dans ce langage pour ce que nous voulons faire.
Créez un fichier, par exemple me2sc et mettez-y ceci :
Copy to clipboard
from mididings import * run( Filter(NOTEON) >> KeySplit({ 60: System('clementine'), 61: System('xdotool key ctrl+l'), }) )
Filter permet de filtrer les signaux reçus. NOTEON signifie que l'on ne prend en compte que les appuies sur les touches de notes. On peut le remplacer par NOTEOFF, NOTE ou CTRL (voir ici pour plus de détails.
60 et 61 correspondent aux numéros des événements MIDI. Pour savoir quel numéro est associé à quel touche de votre contrôleur MIDI, connectez-le à QMidiRoute via Jack. Vous verrez alors les événement que reçoit QMidiRoute dans la fenêtre du logiciel.
clementine et xdotool key ctrl+l sont les commandes à lancer à la réception de ces événements. La première commande lance le lecteur audio du même nom et la deuxième utilise le programme xdotool pour simuler la combinaison de touche Ctrl+l. Pour exécuter plusieurs commandes, mettez dans un fichier, un script, rendez-le exécutable et renseigner son chemin à la place des commandes précédentes.
Ensuite, il faut identifier le nom de votre contrôleur MIDI. Pour cela utiliser la commande :
Copy to clipboard
aconnect -i
ou
Copy to clipboard
aconnect -o
Par exemple, la mienne s'appelle Q49.
Il ne reste plus qu'à lancer Mididings en lui indiquant l'emplacer du script python et le nom du contrôleur :
Copy to clipboard
mididings -c Mididings -f me2sc && aconnect Q49 Mididings
Et voilà !