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