Hors sujet LilyPond - FluideSynth

FluidSynth
je viens de migrer d’Ubuntu 24.04 à 26.04 et
même si la conversion midi -> wave fonctionne
j'ai un retour d'erreur : GLib-GObject-CRITICA
commande fluidsynth -F sortie.wav soundfont.sf2 music.midi
ou sans soundfont.sf2
fluidsynth -F sortie.wav music.midi

FluidSynth runtime version 2.4.8
Copyright (C) 2000-2025 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of Creative Technology Ltd.


(process:107592): GLib-GObject-CRITICAL **: 15:03:07.365: g_param_spec_enum: assertion 'g_enum_get_value (enum_class, default_value) != NULL' failed

(process:107592): GLib-GObject-CRITICAL **: 15:03:07.365: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed

(process:107592): GLib-GObject-CRITICAL **: 15:03:07.365: g_param_spec_ref_sink: assertion 'G_IS_PARAM_SPEC (pspec)' failed

(process:107592): GLib-GObject-CRITICAL **: 15:03:07.365: g_param_spec_unref: assertion 'G_IS_PARAM_SPEC (pspec)' failed
Rendering audio to file 'sortie.wav'..

Si vous vous en servez et avez des idées je veux bien des retours.

Merci

Ces messages GLib-GObject-CRITICAL ne bloquent pas le rendu : votre commande produit bien le fichier sortie.wav (comme indiqué par « Rendering audio to file 'sortie.wav'.. »). Ce sont des assertions critiques émises pendant l’initialisation de types/propriétés GObject, mais le processus continue et l’audio est généré.

Origine probable

Après la migration Ubuntu 24.04 → 26.04, GLib/GObject est plus récent et plus strict. FluidSynth 2.4.8 (version de Resolute) utilise encore GLib et, via libinstpatch (support DLS/GIG optionnel), enregistre des enums/param specs. Le message exact :

g_param_spec_enum: assertion 'g_enum_get_value (enum_class, default_value) != NULL' failed

indique qu’une valeur par défaut d’enum n’est pas valide pour la classe d’enum au moment de l’enregistrement de la propriété (suivi des échecs en cascade sur validate_pspec_to_install, g_param_spec_ref_sink, etc.). Ce type de problème apparaît historiquement avec libinstpatch + FluidSynth lors de changements de version GLib ou de double-enregistrement de types.

Ce n’est pas spécifique à l’option -F (file renderer) ni à la présence/absence du SoundFont dans la commande.

Que faire concrètement

  1. Vérifier / mettre à jour les paquets (recommandé en premier) :

    sudo apt update
    sudo apt install --reinstall fluidsynth libfluidsynth3 libinstpatch-1.0-2
    

    Contrôlez aussi qu’il n’y a pas de résidus d’une installation manuelle ou d’un PPA.

  2. Confirmer que le rendu est sain :

    • Écoutez le WAV.
    • Comparez avec un rendu connu (même MIDI + SoundFont sur 24.04 si possible).
    • Si le fichier est correct, les CRITICAL sont du bruit d’init.
  3. Supprimer le bruit (contournement rapide) :

    fluidsynth -F sortie.wav soundfont.sf2 music.midi 2>/dev/null
    

    Ou plus ciblé si vous voulez garder les vrais erreurs :

    G_DEBUG="" fluidsynth -F sortie.wav ...
    

    (Les CRITICAL GObject ne sont pas facilement filtrables individuellement sans recompiler.)

  4. Solution propre à moyen terme (si vous voulez un FluidSynth « propre ») :

    • FluidSynth ≥ 2.5 déprécie GLib + libinstpatch et permet une compilation sans eux (-Dosal=cpp11 -Denable-libinstpatch=0). Les versions 2.5.x / 2.6.x sont plus récentes et ont des correctifs de sécurité.
    • Vous pouvez compiler depuis les sources GitHub (tag récent) ou chercher un paquet plus récent. Ubuntu 26.04 reste sur 2.4.8+dfsg-1 (avec correctifs de sécurité via Ubuntu Pro).
  5. Diagnostic supplémentaire (si le problème persiste ou si le son est mauvais) :

    fluidsynth -v
    ldd $(which fluidsynth) | grep -E 'glib|gobject|instpatch'
    fluidsynth -F /tmp/test.wav /usr/share/sounds/sf2/FluidR3_GM.sf2 /chemin/vers/un.midi 2>&1 | head -50
    

    (Adaptez le chemin du SoundFont système.)

Merci,
je vais peut-être re-installer Fluidsynth .
enfin il n'y a pas encore de nouvelle version pour ubuntu ...
ha et 2>/dev/null est efficace pour invibiliser les erreurs !