Intercepter les entrées MIDI de libfluidsynth ?
Salut tout le monde !
J’ai un petit projet qui me trotte en tête depuis pas mal de temps: avoir un logiciel d’« ear training » qui serait capable de sortir les exercices d’entraînement d’oreille sur un port MIDI donné, que je pourrait router sur mes synthés hardware pour m’amuser et m’entraîner à reconnaître les accords avec différents sons (plutôt que toujours le même son d’un piano classique).
J’ai récemment découvert Minuet
, le projet n’a pas l’air de bouger depuis 2016 (ça commence à dater), mais ce soft semble « presque » faire ce que je cherche.
Je dis presque, car le logiciel utilise Fluidsynth comme backend pour génerer les sons.
Malheureusement, je ne trouve pas de moyen simple d’intercepter la communication entre ce logiciel et Fluidsynth.
Si je lance un Fluidsynth depuis mon terminal, puis un coup de
De ce que je comprends en lisant le code source de Minuet (plus précisément ce fichier
, Minuet ne lance pas vraiment une instance (en tant que processus) de Fluidsynth, mais va plutôt passer par l’API de fluidsynth pour créer les sons (d’où la nécessité du paquet libfluidsynth-dev sous Debian pour compiler Minuet).
Vient donc ma question: est-ce qu’il existe une option magique de Fluidsynth (quitte à la rajouter dans la source de Minuet, ce n’est qu’une ligne de code), un fichier de configuration ou quelque chose à modifier pour que l’instance lancée par le logiciel ouvre un port MIDI sur lequel on pourrait écouter ? Un peu comme un « MIDI Thru » pour Fluidsynth.
L’option numéro 2 (que je préférerais éviter), serait d’aller bricoler le fichier source mis en lien plus haut pour forcer Minuet à ouvrir un port MIDI (en important la librairie d’ALSA) et à doubler tout ce qu’il envoie à Fluidsynth sur ce port MIDI, et compiler sa version de Minuet avec cette fonctionnalité. Faisable, mais un peu embêtant (et très bricolage). L’option numéro 3 (tout aussi embêtante même si faisable, et tout autant bricolage) serait de compiler sa version de libfluidsynth avec des « fausses fonctions » qui renvoient toutes les inputs sur un port MIDI donné, plutôt que de générer du son, et compiler Minuet avec cette « fausse librairie ».
Les experts de Fluidsynth du forum connaîtraient-ils une solution qui m’éviterait cela ?
J’ai un petit projet qui me trotte en tête depuis pas mal de temps: avoir un logiciel d’« ear training » qui serait capable de sortir les exercices d’entraînement d’oreille sur un port MIDI donné, que je pourrait router sur mes synthés hardware pour m’amuser et m’entraîner à reconnaître les accords avec différents sons (plutôt que toujours le même son d’un piano classique).
J’ai récemment découvert Minuet

Je dis presque, car le logiciel utilise Fluidsynth comme backend pour génerer les sons.
Malheureusement, je ne trouve pas de moyen simple d’intercepter la communication entre ce logiciel et Fluidsynth.
Si je lance un Fluidsynth depuis mon terminal, puis un coup de
aconnect -lme montre effectivement un port d’entrée apparaître, mais pas si je lance Minuet. Dommage.
De ce que je comprends en lisant le code source de Minuet (plus précisément ce fichier

Vient donc ma question: est-ce qu’il existe une option magique de Fluidsynth (quitte à la rajouter dans la source de Minuet, ce n’est qu’une ligne de code), un fichier de configuration ou quelque chose à modifier pour que l’instance lancée par le logiciel ouvre un port MIDI sur lequel on pourrait écouter ? Un peu comme un « MIDI Thru » pour Fluidsynth.
L’option numéro 2 (que je préférerais éviter), serait d’aller bricoler le fichier source mis en lien plus haut pour forcer Minuet à ouvrir un port MIDI (en important la librairie d’ALSA) et à doubler tout ce qu’il envoie à Fluidsynth sur ce port MIDI, et compiler sa version de Minuet avec cette fonctionnalité. Faisable, mais un peu embêtant (et très bricolage). L’option numéro 3 (tout aussi embêtante même si faisable, et tout autant bricolage) serait de compiler sa version de libfluidsynth avec des « fausses fonctions » qui renvoient toutes les inputs sur un port MIDI donné, plutôt que de générer du son, et compiler Minuet avec cette « fausse librairie ».
Les experts de Fluidsynth du forum connaîtraient-ils une solution qui m’éviterait cela ?