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...) ?
C'est pour répondre à cette problématique que Mididings a été développé.
Table des matières
Préparation
Commencez donc par installer mididings sur votre machine.
Mididings fonctionne avec des scripts python, mais vous n'aurez pas besoin de savoir programmer pour ce que nous voulons faire.
Script
Script simple
Créez un fichier, appelez-le par exemple me2sc et collez-y les lignes suivantes :
Copy to clipboard
from mididings import * run( Filter(NOTEON) >> KeySplit({ 60: System('clementine'), 61: System('xdotool key ctrl+l'), }) )
Nous allons décortiquer ce bout de code afin de comprendre comment cela fonctionne :
- 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énements 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 (si vous souhaitez utiliser cette commande, n'oubliez pas d'installer le paquet xdotool sur votre machine).
Script avancé
Lancer plusieurs commandes en même temps
Si vous voulez qu'un événement MIDI exécute plusieurs commandes à la suite, écrivez-les dans un fichier séparé (ce qu'on appelle un script), rendez-le exécutable et renseigner son chemin à la place des commandes précédentes.
Par exemple, vous pouvez créer un fichier appelé script_touche_61.sh dans votre dossier personnel dans lequel vous mettrez :
Copy to clipboard
xdotool key ctrl+x xdotool key ctrl+c
Pour plus d'informations sur les scripts, vous pouvez consulter cette page du wiki d'Ubuntu
.N'oubliez pas de rendre le fichier exécutable
.Et remplissez le fichier me2sc comme ceci, en remplaçant NOMDUTILISATEUR par le chemin qui convient :
Copy to clipboard
from mididings import * run( Filter(NOTEON) >> KeySplit({ 60: System('clementine'), 61: System('/home/NOMDUTILISATEUR/script_touche_61.sh'), }) )
Ligne de commande
Ensuite, il faut identifier le nom de votre contrôleur MIDI. Pour cela utiliser la commande :
Copy to clipboard
aconnect -i
Copy to clipboard
aconnect -o
Par exemple, la mienne s'appelle Q49.
Il ne reste plus qu'à lancer Mididings en lui indiquant l'emplacement du script python et le nom du contrôleur :
Copy to clipboard
mididings -c Mididings -f me2sc && aconnect Q49 Mididings
Et voilà !
[+]Licence
La licence de cet article est la Creative Commons suivante :
http://creativecommons.org/licenses/by-sa/2.5/deed.fr
Extrait :
Paternité - Partage des Conditions Initiales à l'Identique 2.5
Vous êtes libres :
Selon les conditions suivantes :
À notez que :
Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...)
Vous êtes libres :
- de reproduire, distribuer et communiquer cette création au public
- de modifier cette création
- d'utiliser cette création à des fins commerciales
Selon les conditions suivantes :
- by: Paternité. Vous devez citer le nom de l'auteur original.
- sa: Partage des Conditions Initiales à l'identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci.
À notez que :
- À chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création.
- Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits.
Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...)
voir la version intégrale de la licence