Cette page présentera comment filtrer des données MIDI avec qmidiroute ou midifilter.
Lorsque j'ai découvert Librazik, j'ai ressorti mon vieux D10 Roland, utilisé il y a quelques décennies avec Cubase sur Atari Mega ST et un expandeur Roland MT32.
Là, tout dans la boite : séquenceur (Rosegarden, pas dépaysant par rapport aux premières versions de Cubase), expandeurs et simulateurs de synthés à la pelle... Noël avant l'heure !
Sauf que... s'il fonctionne encore, ce vieux D10 présente un petit dysfonctionnement : l'envoi aléatoire de nombreux codes de contrôle 123 ("All notes off").
Mon premier réflexe a été de filtrer les contrôles entrants dans rosegarden (Menu "Studio", entrée "Modifier Filtre MIDI").
Efficace, mais un peu "brutal", d'autant que parfois, la modulation (Code de Contrôle 1) ou le volume (Code de Contrôle 7) peuvent servir.
Il doit bien y avoir un moyen plus propre et plus subtil de gérer ça avec tous les outils dont dispose Librazik.
Un appel sur le forum de mon LinuxMAO préféré, et très vite, des réponses m'orientent vers plusieurs solutions. J'ai donc testé midifilter.lv2 et qmidiroute.
Comme son nom l'indique midifilter.lv2 est un greffon LV2, il faut donc un hôte de greffons comme Carla ou jalv_select. C'est ce dernier que j'utilise pour sa simplicité et son apparente légèreté.
Une fois ouvert, le champ de recherche, au bas de la fenêtre, permet de filtrer les greffons affichés. Avec "midifilter" comme terme de recherche, on peut sélectionner "MIDI Event Filter" et l'ouvrir avec le réglage "Défaut", le seul proposé pour l'instant.
Une fois ce greffon ouvert, plusieurs réglages sont possibles. La première ligne propose "Block Control Change". Apparemment, c'est ce qu'il me faut, sauf que... bloquer tous les "Control Change" ne fera pas mieux que rosegarden, et je tiens à ne bloquer que le CC 123 ! Voyons un peu plus bas... "Block custom message"...
Les paramètres à régler :
Il ne reste plus qu'à passer par le menu "File" pour sauvegarder ce réglage. J'ai choisi le nom "BlockCC123". Ainsi, à la prochaine ouverture du greffon dans jalv_select, celui-ci me proposera le réglage "BlockCC123".
note
Ce filtrage devra être effectif tant que je ne remplacerai pas (ou peut-être nettoierai pas ?) mon clavier. Aussi, flemmard comme je suis (je suis le seul ?), autant qu'il se lance sans lui demander, à l'ouverture de ma session.
Sur Librazik, le bureau est MATE, et via le Menu "Système/Préférences/Personnel/Applications au démarrage", je peux "Ajouter" la commande :
Enfin, dans Catia, je connecte "USB Midi Interface" (par où arrivent les données du clavier) sur "MIDI Event Filter" avant de le brancher en enregistrement sur rosegarden.
note
qmidiroute est autonome et n'a pas besoin d'un hôte de greffons pour être utilisé. Cependant, il ne bloque pas les évènements, mais permet de les modifier (ou pas).
Dès l'ouverture, on constate 2 choses importantes.
En bas à gauche, vérifier que la case "Activer" soit bien cochée (qui n'a jamais perdu 1/4 d'heure à chercher pourquoi ça veut pas à cause d'une telle bêtise ?).
La case "Ignorer les événements non traités" est également cochée, elle a son importance. Contrairement à midifilter.lv2 qui bloque ce qu'on lui demande, qmidiroute va laisser passer (éventuellement transformer, mais on ne lui demandera pas dans ce cas précis) ce qu'on lui demande, et bloquer tout le reste.
Il va donc falloir créer une règle pour tout ce qu'on veut laisser passer (contrôleurs autres que le 123, notes, PitchBend,...).
Les CC (Control Change) de 1 à 122 doivent passer, sans modification. Je crée une nouvelle règle (Menu "Rules", "Nouveau") que je vais nommer "CC1à122".
Un nouvel onglet apparaît, dans lequel je vais saisir les données :
En entrée :
En sortie :
Maintenant, les CC 1 à 122 passent sans altération, mais tout le reste est encore bloqué.
On va donc créer une règle supplémentaire pour les CC 124 à 127.
Et voilà : tous les codes de contrôle (les "CC") passent, sauf le 123 qui n'étant pas "traité" est donc bloqué. Ainsi que tout le reste d'ailleurs, notes, pitchbend,...
Il va donc falloir traiter les notes en créant une nouvelle règle.
Là, normalement, rien à changer, puisque des notes doivent être transformées en notes, sur tous les canaux (1 à 16) sans décalage (Offset=0), toutes les notes (1 à 127) sans décalage, pour toutes les vélocités (1 à 127).
Il est possible d'ajouter une règle pour les "Pitchbend" ou "Programm Change" si nécessaire, pour ma part, je gère les Program Change depuis le séquenceur, donc, pas besoin.
Une fois toutes les règles définies, ne pas oublier d'enregistrer via le menu Fichier. J'ai choisi le nom BloqueCC123.qmr (.qmr étant le suffixe pour les fichiers de QMidiRoute).
Qmidiroute peut être lancé dès l'ouverture de ma session (MATE dans Librazik) avec la commande "qmidiroute BloqueCC123.qmr" (dans MATE, Menu Système/Préférences/Personnel/Applications au démarrage/Ajouter).
Enfin, ne pas oublier de connecter qmidiroute à "USB Midi Interface" dans votre baie de brassage favorite, ceci pouvant d'ailleurs être géré par votre gestionnaire de session (Ray Session, Claudia,...).
Attention : si votre système comporte des connexions alsa-midi et jack-midi, qui font parfois doublon. Certaines baies de brassage ne les affichent pas toutes à priori. Il faut bien sûr filtrer tout ce qui sort de "USB Midi Interface", ou supprimer les connexions inutiles.
Sur l'image ci-dessous, de Catia en activant "Menu Réglages/AFFICHER ALSA-MIDI", apparaît une connexion parasite (une auto-connexion de rosegarden peut être ?) qu'il convient de supprimer (sinon CC123 non filtré, notes en double).
J'ai passé pas mal de temps à m'arracher les cheveux à cause de ça !
Table des matières
Introduction
Lorsque j'ai découvert Librazik, j'ai ressorti mon vieux D10 Roland, utilisé il y a quelques décennies avec Cubase sur Atari Mega ST et un expandeur Roland MT32.
Là, tout dans la boite : séquenceur (Rosegarden, pas dépaysant par rapport aux premières versions de Cubase), expandeurs et simulateurs de synthés à la pelle... Noël avant l'heure !
Sauf que... s'il fonctionne encore, ce vieux D10 présente un petit dysfonctionnement : l'envoi aléatoire de nombreux codes de contrôle 123 ("All notes off").
Mon premier réflexe a été de filtrer les contrôles entrants dans rosegarden (Menu "Studio", entrée "Modifier Filtre MIDI").
Efficace, mais un peu "brutal", d'autant que parfois, la modulation (Code de Contrôle 1) ou le volume (Code de Contrôle 7) peuvent servir.
Il doit bien y avoir un moyen plus propre et plus subtil de gérer ça avec tous les outils dont dispose Librazik.
Un appel sur le forum de mon LinuxMAO préféré, et très vite, des réponses m'orientent vers plusieurs solutions. J'ai donc testé midifilter.lv2 et qmidiroute.
midifilter.lv2
Comme son nom l'indique midifilter.lv2 est un greffon LV2, il faut donc un hôte de greffons comme Carla ou jalv_select. C'est ce dernier que j'utilise pour sa simplicité et son apparente légèreté.
Une fois ouvert, le champ de recherche, au bas de la fenêtre, permet de filtrer les greffons affichés. Avec "midifilter" comme terme de recherche, on peut sélectionner "MIDI Event Filter" et l'ouvrir avec le réglage "Défaut", le seul proposé pour l'instant.
Une fois ce greffon ouvert, plusieurs réglages sont possibles. La première ligne propose "Block Control Change". Apparemment, c'est ce qu'il me faut, sauf que... bloquer tous les "Control Change" ne fera pas mieux que rosegarden, et je tiens à ne bloquer que le CC 123 ! Voyons un peu plus bas... "Block custom message"...
Les paramètres à régler :
- Custom Message Type : cliquer et choisir "Control Change 8xBx"
- Custom message Chanel : laisser "any", ça filtrera tous les canaux
- Custom message Data1 : c'est le numéro de CC, ici, le 123 (double-clic dans le champ ou usage du curseur)
- Custom message Data2 : laisser -1 (any)
Il ne reste plus qu'à passer par le menu "File" pour sauvegarder ce réglage. J'ai choisi le nom "BlockCC123". Ainsi, à la prochaine ouverture du greffon dans jalv_select, celui-ci me proposera le réglage "BlockCC123".

NB : il est possible de marquer "MIDI Event Blocker" comme favori dans jalv_select en cochant sa case dans la colonne "Favoris". Ainsi, un clic sur le bouton "Fav.", en bas à droite de la fenêtre le fera apparaître plus rapidement.
Ce filtrage devra être effectif tant que je ne remplacerai pas (ou peut-être nettoierai pas ?) mon clavier. Aussi, flemmard comme je suis (je suis le seul ?), autant qu'il se lance sans lui demander, à l'ouverture de ma session.
Sur Librazik, le bureau est MATE, et via le Menu "Système/Préférences/Personnel/Applications au démarrage", je peux "Ajouter" la commande :
jalv.gtk -l ~/.lv2/MIDI_Event_Filter_BlockCC123.preset.lv2/BlockCC123.ttl midifilter#eventblocker
- l'option -l indique le chemin du preset (fichier *.ttl à rechercher sur votre système, il devrait être dans ~/.lv2/...)
- midifilter#eventblocker est la syntaxe pour ouvrir le greffon.
Enfin, dans Catia, je connecte "USB Midi Interface" (par où arrivent les données du clavier) sur "MIDI Event Filter" avant de le brancher en enregistrement sur rosegarden.

Votre gestionnaire de session, Ray Session, Claudia ou autre, pourra gérer la connexion.
qmidiroute
qmidiroute est autonome et n'a pas besoin d'un hôte de greffons pour être utilisé. Cependant, il ne bloque pas les évènements, mais permet de les modifier (ou pas).
Dès l'ouverture, on constate 2 choses importantes.
En bas à gauche, vérifier que la case "Activer" soit bien cochée (qui n'a jamais perdu 1/4 d'heure à chercher pourquoi ça veut pas à cause d'une telle bêtise ?).
La case "Ignorer les événements non traités" est également cochée, elle a son importance. Contrairement à midifilter.lv2 qui bloque ce qu'on lui demande, qmidiroute va laisser passer (éventuellement transformer, mais on ne lui demandera pas dans ce cas précis) ce qu'on lui demande, et bloquer tout le reste.
Il va donc falloir créer une règle pour tout ce qu'on veut laisser passer (contrôleurs autres que le 123, notes, PitchBend,...).
Les CC (Control Change) de 1 à 122 doivent passer, sans modification. Je crée une nouvelle règle (Menu "Rules", "Nouveau") que je vais nommer "CC1à122".
Un nouvel onglet apparaît, dans lequel je vais saisir les données :
En entrée :
- Type : Contrôleur
- Canal : 1 à 16
- Contrôleur : 0 à 122
En sortie :
- Type : Contrôleur
Maintenant, les CC 1 à 122 passent sans altération, mais tout le reste est encore bloqué.
On va donc créer une règle supplémentaire pour les CC 124 à 127.
Et voilà : tous les codes de contrôle (les "CC") passent, sauf le 123 qui n'étant pas "traité" est donc bloqué. Ainsi que tout le reste d'ailleurs, notes, pitchbend,...
Il va donc falloir traiter les notes en créant une nouvelle règle.
Là, normalement, rien à changer, puisque des notes doivent être transformées en notes, sur tous les canaux (1 à 16) sans décalage (Offset=0), toutes les notes (1 à 127) sans décalage, pour toutes les vélocités (1 à 127).
Il est possible d'ajouter une règle pour les "Pitchbend" ou "Programm Change" si nécessaire, pour ma part, je gère les Program Change depuis le séquenceur, donc, pas besoin.
Une fois toutes les règles définies, ne pas oublier d'enregistrer via le menu Fichier. J'ai choisi le nom BloqueCC123.qmr (.qmr étant le suffixe pour les fichiers de QMidiRoute).
Qmidiroute peut être lancé dès l'ouverture de ma session (MATE dans Librazik) avec la commande "qmidiroute BloqueCC123.qmr" (dans MATE, Menu Système/Préférences/Personnel/Applications au démarrage/Ajouter).
Enfin, ne pas oublier de connecter qmidiroute à "USB Midi Interface" dans votre baie de brassage favorite, ceci pouvant d'ailleurs être géré par votre gestionnaire de session (Ray Session, Claudia,...).
Remarque
Attention : si votre système comporte des connexions alsa-midi et jack-midi, qui font parfois doublon. Certaines baies de brassage ne les affichent pas toutes à priori. Il faut bien sûr filtrer tout ce qui sort de "USB Midi Interface", ou supprimer les connexions inutiles.
Sur l'image ci-dessous, de Catia en activant "Menu Réglages/AFFICHER ALSA-MIDI", apparaît une connexion parasite (une auto-connexion de rosegarden peut être ?) qu'il convient de supprimer (sinon CC123 non filtré, notes en double).
J'ai passé pas mal de temps à m'arracher les cheveux à cause de ça !