Chargement...
 
Skip to main content

Historique: Transport MIDI

Aperçu de cette version: 3

(En cours de rédaction)

Synopsis
Étant propriétaire d’un Axiom25 j’ai été confronté à un souci : comment configurer les touches de commande avec mon logiciel séquenceur MIDI. C’est après quelques recherches et en additionnant 2 outils (mididings et xdotool) qu’il m’a été possible de configurer le tout.
Je vous propose sur cette page ma méthode utilisée pour configurer les contrôleurs MIDI avec vos logiciels préférés.
Pré-requis
Comme expliquer plus haut, nous avons besoin de 2 outils pour que cette configuration fonctionne :
mididings
C’est un routeur/processeur d'évènements MIDI.
(Je ne reviens pas ici sur l’installation, la page wiki est très bien faite)
xdotool
Cet outil permet de simuler des évènements claviers et souris, il permet également d'envoyer des ordres divers aux objets X (logiciels ouverts par exemple).
Installation par gestionnaire de paquet
apt-get install xdotool
Nous supposons également que votre poste est fonctionnel (jack, qtractor ou rosegarden par exemple correctement installés et ouverts).
Repérage / configuration des raccourcis clavier de votre logiciel
Il s’agit ici de repérer quelle commande nous allons envoyer avec le contrôleur.
Exemple dans Qtractor => touche « espace » correspond à la commande « lecture ».
Identification du contrôleur
Nous allons récupérer le code MIDI envoyé par le contrôleur. Sur l’Axiom25 la valeur est indiquée sur l’écran LCD lors de la pression sur le contrôleur, pour tout autre matériel utiliser la commande :
mididings "Print()"
(ne pas oublier de relier votre contrôleur à mididings dans jack)
Création du script xdotool
Lancer votre éditeur de texte préféré et rentrer :
  1. !/bin/bash

WID=`xdotool search --title "Qtractor" | head -1`
xdotool windowfocus $WID
xdotool key space

Explications :
WID=`xdotool search --title "Qtractor" | head -1`

Cette commande va récupérer l’ID du logiciel, ici Qtractor (cette action est équivalente à la commande xwininfo).
xdotool windowfocus $WID

Cette commande rend votre logiciel « actif » comme lorsque l’on clique dessus.
xdotool key space

Ici nous y injectons la touche espace.
On enregistre le fichier de manière à pouvoir le retrouver facilement (par exemple nom de fichier : qtractor_espace), puis on rend exécutable le fichier :
chmod +x « votre dossier »/qtractor_espace
Création du script mididings
from mididings import *

run (
(CtrlFilter(117) & CtrlValueFilter (127)) % System("/home/christophe/./qtractor_espace")
)

Explications :
(CtrlFilter(117) & CtrlValueFilter (127)) % System("/home/christophe/./qtractor_espace")
Ligne aux allures un peu barbare mais en en réalité pas vraiment méchante…
CtrlFilter(117) => 117 correspond au numéro de votre contrôleur (rappelez-vous => mididings "Print()" ).
CtrlValueFilter (127) => 127 est la valeur envoyée par votre contrôleur lors de la pression de la touche (on appuie => 127, on relâche =>0)
System("/home/christophe/./qtractor_espace") => là, on va chercher notre script xdotool
Enfin, la syntaxe « (A & B) % C » signifie que lorsque les conditions A et B sont réunies, on exécute l’ordre C (concrètement c’est lorsqu’on appuie sur le contrôleur que le script est lancé).
On sauvegarde le fichier (par exemple midi.py) et enfin, on le lance :
python midi.py
(ne pas oublier de relier votre contrôleur à mididings dans jack)
Compl éments d’information
Récupérer la valeur d’une touche pour xdotool
Xdotool est très permissif, il accepte les commandes de type

xdotool key F6

ou encore

xdotool key ctrl+o

Pour les touches spéciales, vous pouvez utiliser les keycodes. Pour récupérer le keycode de votre touche, utiliser l’utilitaire xev.

Additionner plusieurs commandes dans mididings

Exemple :

from mididings import *

run (
(CtrlFilter(117) & CtrlValueFilter (127)) % System(%22/home/christophe/./qtractor_espace%22),
(CtrlFilter(114) & CtrlValueFilter (127)) % System(%22/home/christophe/./qtractor_retour%22),

)
Aller plus loin avec ces outils
Nous avons vu ici des exemples pour configurer des commandes de transport, mais sachez que ces outils sont universels et les commandes n’ont pour seule limite votre imagination. Vous pouvez par exemple vous servir du contrôleur pour enregistrer votre travail (raccourci ctrl+s).


Historique

Avancé
Information Version
Vendredi 19 septembre 2014 22:14 olinuxx lien mort. Se referer au lien dans la page ((axiom 25)) 18
Afficher
Mercredi 06 mars 2013 19:19 pianolivier +boite de navigation 17
Afficher
Mercredi 18 juillet 2012 20:20 olinuxx lien interne 16
Afficher
Jeudi 12 janvier 2012 14:23 olinuxx typo 15
Afficher
Jeudi 12 janvier 2012 14:18 olinuxx typo 14
Afficher
Vendredi 28 octobre 2011 19:18 pianolivier 13
Afficher
Vendredi 28 octobre 2011 18:51 pianolivier pas de liens dans les titres de paragraphe ;) 12
Afficher
Vendredi 28 octobre 2011 18:40 pianolivier 11
Afficher
Vendredi 28 octobre 2011 18:38 pianolivier 10
Afficher
Vendredi 28 octobre 2011 18:36 pianolivier 9
Afficher
Vendredi 28 octobre 2011 18:35 pianolivier intro/desc 8
Afficher
Vendredi 28 octobre 2011 12:09 cm35 7
Afficher
Vendredi 28 octobre 2011 12:07 cm35 6
Afficher
Vendredi 28 octobre 2011 12:04 cm35 5
Afficher
Vendredi 28 octobre 2011 11:52 cm35 4
Afficher
Vendredi 28 octobre 2011 11:08 cm35 3
Afficher
Mercredi 26 octobre 2011 11:56 cm35 2
Afficher
Mercredi 26 octobre 2011 11:51 cm35 1
Afficher