Mididings est un routeur/processeur d'évènements MIDI basé sur l'écriture de scripts python.
Site web officiel : http://das.nasophon.de/mididings/ .
Version actuelle : 20120419 du 2012 04 19.
Support : AlsaM, JackM, OSC.
Développeur : Dominic Sacré.
Licence : GNU GPL.
Il permet de :
Mididings est :
L'introduction du haut de page vous donne un aperçu des fonctionnalités de mididings, mais si cela ne vous suffit pas, voici quelques exemples concrets qui montrent d'une manière non exhaustive à quoi peut bien servir cette diablerie :
L'utilisation de mididings étant basée sur l'écriture de scripts python, ses capacités sont presque infinies !
Il ne tient qu'à vous d'inventer de nouvelles manières de l'utiliser, soyez créatif !
Voir le tutoriel : Script mididings pour Seq64 dans Carla.
Une documentation en anglais existe ici : http://das.nasophon.de/mididings/doc/index.html .
L'exemple qui va suivre permet de contourner un problème. Imaginons que nous ayons une application comme Harmonyseq et qu'en sortie nous voulions utiliser plusieurs instances de fluidsynth-dssi pour pouvoir mettre à chacun d'eux des effets différents. On sait que Harmonyseq fonctionne avec les canaux midi, mais le problème c'est que l'on ne peut pas affecter un canal en entré dans un plugin. On est donc coincé. Cela dit on peut ouvrir plusieurs instances du plugin lv2 midifilter mais cela nous oblige à uitiliser au plus 16 fois la même instance, c'est gourmand et puis il faut lier à chaque fois tout le bazard (harmonyseq ne peut pas utiliser (ladish).
La seule solution est donc d'utiliser mididings qui va nous créer une seul instance avec les 16 canaux en sortie.
Voici un exemple avec Qjackctl :
et un autre avec Catia:
Dans notre fichier Exemple.py on commence à mettre la bibliothèque de mididings
Puis on va créer nos ports de sortie:
Ensuite nous allons créer nos variables à utiliser dans le cœur de notre programme:
ChannelFilter() est une fonction qui filtre le canal, on branche au moyen de '>>' celui ci dans une des sorties que nous avons créé par l'intermédiaire de la fonction Output() qui doit avoir au moins deux arguments :
Il ne vous reste plus qu'à sauvegarder votre fichier, puis à ouvrir un terminal dans votre dossier puis tapper la commande:
Vous avez le programme qui vous donne 1 entrée pour votre logiciel maître et 16 sorties pour vos plugins comme dans les images précédentes.
Pour quitter le programme, il faut utiliser Ctrl+C
applications proposant certaines fonctions similaires :
Tuto lié : Enregistrer son clavier maitre.
Table des matières
Informations
Site web officiel : http://das.nasophon.de/mididings/ .
Version actuelle : 20120419 du 2012 04 19.
Support : AlsaM, JackM, OSC.
Développeur : Dominic Sacré.
Licence : GNU GPL.
Description
Il permet de :
- Filtrer des évènements MIDI en fonction de leur type, canal, numéro de note, vélocité, etc., et de les router vers un nombre arbitraire de ports d'entrées/sorties MIDI
- Modifier et convertir des évènements MIDI, par exemple transposer des notes, appliquer des courbes de vélocité, changer les valeurs et champs d'application de contrôleurs MIDI, convertir un type d'évènement en un autre.
- passer d'un patch a un autre à tout moment et librement, chaque patch contenant ses propres règles de routage et de traitement des données, ceci n'affecte pas les notes déjà enfoncées.
- visualiser des évènements MIDI, imprimés dans la console, pour vérifier le bon fonctionnement des patchs ou configurer vos appareils MIDI.
- démarrer des commande externes, qu'elles soit des commandes shell, des messages OSC ou dbus.
Mididings est :
- Basé sur des scripts Python éditables dans n'importe quel éditeur de texte et sur des patchs pré-programmés qui sont eux même de simple objets Python, ce qui permet de programmer des commandes complexes avec juste quelques lignes de code
- conçu pour fonctionner en temps réel. Il utilise jack et est écrit en C++, ce qui permet d'éviter les problèmes de vitesse souvent associés aux langages de scripts comme Python.
Pourquoi utiliser Mididings ?
L'introduction du haut de page vous donne un aperçu des fonctionnalités de mididings, mais si cela ne vous suffit pas, voici quelques exemples concrets qui montrent d'une manière non exhaustive à quoi peut bien servir cette diablerie :
- Visualisation d'évènements MIDI dans la console ou dans l'interface livedings qui est donc un frontend à mididings. Attention, il dialogue en OSC avec mididings, donc il faut l'ajouter dans votre script : http://das.nasophon.de/mididings/doc/livedings.html.
- Transposition, modification de la vélocité d'une ou plusieurs notes ou de n'importe quel autre message MIDI.
- Conversion de messages MIDI (d'un "changement de programme" en "note" ou inversement par exemple).
- Filtrage par note/canal/PC/vélocité... et renvoi sur des canaux MIDI séparés.
un exemple de filtre pour utiliser plusieurs instances de yoshimi sur les même canaux est fourni plus bas - Lancement d'applications ou de scripts bash.
un exemple pour éteindre son pc avec un clavier MIDI est fourni plus bas - Interaction avec des applications capables de recevoir/envoyer des messages OSC ou dbus
un exemple pour changer le tempo du métronome klick est fourni plus bas - Modification de messages MIDI par des règles de calcul personnalisées
L'utilisation de mididings étant basée sur l'écriture de scripts python, ses capacités sont presque infinies !
Il ne tient qu'à vous d'inventer de nouvelles manières de l'utiliser, soyez créatif !
Installation
[+]Utilisation
Voir le tutoriel : Script mididings pour Seq64 dans Carla.
Écrire et utiliser un patch
Une documentation en anglais existe ici : http://das.nasophon.de/mididings/doc/index.html .
L'exemple qui va suivre permet de contourner un problème. Imaginons que nous ayons une application comme Harmonyseq et qu'en sortie nous voulions utiliser plusieurs instances de fluidsynth-dssi pour pouvoir mettre à chacun d'eux des effets différents. On sait que Harmonyseq fonctionne avec les canaux midi, mais le problème c'est que l'on ne peut pas affecter un canal en entré dans un plugin. On est donc coincé. Cela dit on peut ouvrir plusieurs instances du plugin lv2 midifilter mais cela nous oblige à uitiliser au plus 16 fois la même instance, c'est gourmand et puis il faut lier à chaque fois tout le bazard (harmonyseq ne peut pas utiliser (ladish).
La seule solution est donc d'utiliser mididings qui va nous créer une seul instance avec les 16 canaux en sortie.
Voici un exemple avec Qjackctl :
et un autre avec Catia:
Dans notre fichier Exemple.py on commence à mettre la bibliothèque de mididings
from mididings import *
Puis on va créer nos ports de sortie:
config( out_ports = ['ch01', 'ch02', 'ch03', 'ch04', 'ch05', 'ch06', 'ch07', 'ch08', 'ch09', 'ch10', 'ch11', 'ch12', 'ch13', 'ch14', 'ch15', 'ch16'] )
Ensuite nous allons créer nos variables à utiliser dans le cœur de notre programme:
canal01 = ChannelFilter(1) >> Output('ch01', 1) canal02 = ChannelFilter(2) >> Output('ch02', 2) canal03 = ChannelFilter(3) >> Output('ch03', 3) canal04 = ChannelFilter(4) >> Output('ch04', 4) canal05 = ChannelFilter(5) >> Output('ch05', 5) canal06 = ChannelFilter(6) >> Output('ch06', 6) canal07 = ChannelFilter(7) >> Output('ch07', 7) canal08 = ChannelFilter(8) >> Output('ch08', 8) canal09 = ChannelFilter(9) >> Output('ch09', 9) canal10 = ChannelFilter(10) >> Output('ch10', 10) canal11 = ChannelFilter(11) >> Output('ch11', 11) canal12 = ChannelFilter(12) >> Output('ch12', 12) canal13 = ChannelFilter(13) >> Output('ch13', 13) canal14 = ChannelFilter(14) >> Output('ch14', 14) canal15 = ChannelFilter(15) >> Output('ch15', 15) canal16 = ChannelFilter(16) >> Output('ch16', 16)
ChannelFilter() est une fonction qui filtre le canal, on branche au moyen de '>>' celui ci dans une des sorties que nous avons créé par l'intermédiaire de la fonction Output() qui doit avoir au moins deux arguments :
- Le nom du port de sortie
- Le canal affilié à ce port
run( [canal01 , canal02 , canal03 , canal04 , canal05 , canal06 , canal07 , canal08 , canal09 , canal10 , canal11 , canal12 , canal13 , canal14 , canal15 , canal16] )
Il ne vous reste plus qu'à sauvegarder votre fichier, puis à ouvrir un terminal dans votre dossier puis tapper la commande:
python Exemple.py
Vous avez le programme qui vous donne 1 entrée pour votre logiciel maître et 16 sorties pour vos plugins comme dans les images précédentes.
Pour quitter le programme, il faut utiliser Ctrl+C
Exemples de patchs
Visualiser des évènements MIDI
[+]modifier des évènements MIDI
[+]filtrer des évènements MIDI
[+]lancer des scripts avec un contrôleur MIDI
[+]utiliser OSC avec un contrôleur MIDI
[+]fonctions avancées
[+]Divers
applications proposant certaines fonctions similaires :
- puredata
- qmidiroute (routeur/modificateur d’événement)
- qMIDICurves (courbes de vélocités)
Changelog
[+]Liens
- Nouveauté 2022 : Flaskdings, une API et une alternative à livedings : https://github.com/stefets/flaskdings .
- Live Config : écosystème musical utilisant mididings comme noyau https://github.com/stefets/live-config .
- [Résolu]Démarrer Jack Transport
-
Site de AMMD : http://ammd.net/Mididings-patch-OSC.lien mort en décembre 2021
Tuto lié : Enregistrer son clavier maitre.