Default fluiddec volume (gain) is too low
To reproduce: gst-launch-1.0 souphttpsrc location=https://upload.wikimedia.org/wikipedia/commons/5/55/MIDI_sample.mid ! midiparse ! fluiddec ! autoaudiosink
The MIDI file is correctly played but at a very low volume. On my system at least this is significantly lower than every other sound/music, meaning I have to manually raise the volume of the corresponding Gstreamer process/stream at pulseaudio.
Forcing synth-gain property to be 1 fixes the issue:
gst-launch-1.0 souphttpsrc location=https://upload.wikimedia.org/wikipedia/commons/5/55/MIDI_sample.mid ! midiparse ! fluiddec synth-gain=1.0 ! autoaudiosink
Now the sound is played at a volume similar to my other streams.
However, to the best of my knowledge, it is impossible to forcefully override the default property of an element when using decodebin/playbin, which means that e.g. Totem and other gstreamer programs will always play MIDI files at a very low volume.
The default gain value for the fluidsynth decoder is currently set by the gstreamer element at 0.2 (which is indeed the default value for fluidsynth). However, I understand that this default value is set for "safety" reasons, but it is not useful as a permanent, not-user-modifiable value. For example, Qsynth (a fluidsynth GUI) sets the default gain to 1.0 .
Please consider raising the default synth-gain value to 1.0, or at least provide a way to override it without having to patch every downstream program.