Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

Filtrage des données MIDI avec qmidiroute ou midifilter
Cette page présentera comment filtrer des données MIDI avec qmidiroute ou midifilter.





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").
Image
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.

Image

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"...

Image

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".
Image

notenote
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.

notenote
Votre gestionnaire de session, Ray Session, Claudia ou autre, pourra gérer la connexion.


Image




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).

Image

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".

Image

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
On ne change rien au reste, on vérifie juste que la case "Activer" (en bas à gauche) soit bien cochée.

Image

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.

Image

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.

Image

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,...).

Image


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).

Image

J'ai passé pas mal de temps à m'arracher les cheveux à cause de ça !


Collaborateur(s) de cette page : olinuxx et Geis007 .
Page dernièrement modifiée le Vendredi 22 mai 2020 17:21:01 par olinuxx.
Le contenu de cette page est licencié sous les termes licence.

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]

stixlaw
claude99

Mégaphone [Afficher / Cacher]

olinuxx, 14:27, dim. 20 Sep 2020: Bonjour et bienvenue à ladyash84 cool
olinuxx, 13:45, sam. 19 Sep 2020: Bonjour et bienvenue à tpeyron cool
olinuxx, 12:02, mar. 15 Sep 2020: Bonjour et bienvenue à Exencii cool
jphaenlin, 16:01, lun. 14 Sep 2020: Nouvelle version de TX Modular : [Lien]
olinuxx, 13:43, mer. 09 Sep 2020: Bonjour et bienvenue à borbor cool
sub26nico, 11:26, mar. 08 Sep 2020: Salut et bienvenue à Exeter et amar :-)
sub26nico, 19:59, lun. 07 Sep 2020: Ardour 6.3 est disponible : [Lien]
olinuxx, 14:42, sam. 05 Sep 2020: C'est l'édita... l'édite... l'éditi... l'édito ! [Lien]
olinuxx, 14:26, sam. 05 Sep 2020: Bonjour et bienvenue à java05 cool
sub26nico, 15:41, ven. 04 Sep 2020: Salut et bienvenue à Thomas Sechet :-)
olinuxx, 14:44, mar. 01 Sep 2020: LibraZiK-1 est morte. Longue vie à LibraZiK ! [Lien]
olinuxx, 14:43, mar. 01 Sep 2020: Bonjour et bienvenue à kiwienerver, LeFunambule, et pbor cool