Subject: bug#49753: MuseScore's default SoundFont is broken (Was: Re: musescore does not play sounds (Not a valid SNDFILE* pointer))

From: Leo Prikler <[email-masked]>
Date: Wed, 28 Jul 2021 15:44:12 +0200

Hi,

Don't forget to keep the ML in the address line.

Am Mittwoch, den 28.07.2021, 15:15 +0200 schrieb Giovanni Biscuolo:
> > Am Mittwoch, den 28.07.2021, 10:33 +0200 schrieb Giovanni Biscuolo:
> > > So it seems that musescore is loading SoundFonts without an error
> > > but
> > > later it fails opening them with "Sample::decompressOggVorbis:
> > > open
> > > failed: Not a valid SNDFILE* pointer."
> > 
> > For the record, which SoundFont are you using here?
> 
> AFAIU the one shipped with our musescore package, starting musescore
> in debug mode I get:
> 
> --8<---------------cut here---------------start------------->8---
> 
> global share: </gnu/store/jc95nlf4y7yz8vhb6xgm8nafd6llb2vd-musescore-
> 3.6.2/share/mscore-3.6/>
> [...]
> Loading SoundFonts…
> 
> --8<---------------cut here---------------end--------------->8---
> 
> I guess the font that is loaded is the one provided in the package:
> /gnu/store/jc95nlf4y7yz8vhb6xgm8nafd6llb2vd-musescore-
> 3.6.2/share/mscore-3.6/sound/MuseScore_General.sf3
> 
> In fact if I check the synth configuration (View->Synthesiser) I see
> "MuseScore_General.sf3" is loaded.
> 
> I've tried to convert a sample midi of mine using fluidsynth, this
> way:
> 
> --8<---------------cut here---------------start------------->8---
> 
> giovanni@roquette: fluidsynth -nli -r 48000 -o synth.cpu-cores=2 -T
> wav -F bohemian.wav /gnu/store/jc95nlf4y7yz8vhb6xgm8nafd6llb2vd-
> musescore-3.6.2/share/mscore-3.6/sound/MuseScore_General.sf3
> bohemian.mid
> FluidSynth runtime version 2.1.8
> Copyright (C) 2000-2021 Peter Hanappe and others.
> Distributed under the LGPL license.
> SoundFont(R) is a registered trademark of E-mu Systems, Inc.
> 
> fluidsynth: warning: Failed to set thread to high priority
> fluidsynth: error: File contains data in an unimplemented format.
> fluidsynth: error: Failed to load sample 'Sine-Triangle-12000'
> fluidsynth: error: Unable to load all sample data
> fluidsynth: error: Failed to load SoundFont
> "/gnu/store/jc95nlf4y7yz8vhb6xgm8nafd6llb2vd-musescore-
> 3.6.2/share/mscore-3.6/sound/MuseScore_General.sf3"
> Failed to load the SoundFont
> /gnu/store/jc95nlf4y7yz8vhb6xgm8nafd6llb2vd-musescore-
> 3.6.2/share/mscore-3.6/sound/MuseScore_General.sf3
> fluidsynth: error: fluid_sfloader_load(): Failed to open
> '/gnu/store/9d4srpavq94ha5ial9047yrrz99wf7iq-fluidsynth-
> 2.1.8/share/soundfonts/default.sf2': File does not exist.
> fluidsynth: error: Unable to open file
> '/gnu/store/9d4srpavq94ha5ial9047yrrz99wf7iq-fluidsynth-
> 2.1.8/share/soundfonts/default.sf2'
> fluidsynth: error: Failed to load SoundFont
> "/gnu/store/9d4srpavq94ha5ial9047yrrz99wf7iq-fluidsynth-
> 2.1.8/share/soundfonts/default.sf2"
> Rendering audio to file 'bohemian.wav'..
> 
> --8<---------------cut here---------------end--------------->8---
> 
> So it seems that also fluidsynth is not able to load that SoundFont
> [1]
Ah, yes, I recall not being able to load that font with FluidSynth as
well.  Back then I thought it was an error in FluidSynth, but it does
appear to be an issue with the SoundFont then if not even MuseScore
loads it.

> > Last time I checked, the one that was bundled with MuseScore itself
> > ought to work, but perhaps you need a little configuration magic to
> > make it find that.
> 
> I installed a different SoundFont in my ~/MuseScore3/SoundFonts and
> loaded it in my synth config ("View | Synthesizer") and I'm now able
> to play the sounds.
> 
> Could it be a bug in some library?
If so, then it's two different libraries, as MuseScore doesn't use
FluidSynth for MIDI synthesis – it's more likely that the font is
simply broken.  

It would be nice to investigate when that font first broke or if it
ever worked.  My personal hypothesis is that a font was a requirement
for building it, but that users used different fonts in practice and
thus never noticed.

Regards