How to reuse MuseSound soundfonts, or convert to .sf2?

• Dec 18, 2022 - 02:10

The new soundfonts in MuseScore 4.0 are lovely. I was hoping to be able to reuse them in other applications, but after looking at the downloaded files they appear to be in .spx and .sts format, rather than the usual .sf2.

Is there a way to download an .sf2 version, or convert the existing files to that format?



In reply to by underquark

The samples are opus encoded.

strings -9 Cimbasso.sts
StaffPad Sample Filej
libopus 1.1
ENCODER=opusenc from opus-tools 0.1.9(
ENCODER_OPTIONS=--bitrate 192 --hard-cbr

Even if you could, why would you? sf2 is 30 years old technology.

In reply to by graffesmusic

The "problems" with VST, kontakt and other programs are: the enormous size of the libraries, even 70 GB??; the sheer amount of options and changes that can be made. In reality you can't change the sound of a piano or a trumpet, that's the way it is and that's the way it stays.
The problem with SF2 however is that there are no good free samples of the various instruments except some piano, guitar and a few others.
And so you could have, in only 1-2 Gb max size of SF2, really good soundfont libraries with amazing instruments.

Muse Sounds is not a soundfont; it is something far more sophisticated, that uses its own special player called Muse Sampler (not open source) that does very sophisticated processing of the score information to guide the playbacl. So even if you figured out how to get the samples themselves into an sf2 file, it wouldn't sound anything like how Muse Sounds actually sounds in MuseScore.

If you are e.g. on Linux then you can install opus-tools which contains the exectuable to decode
the sts opus file back e.g. into WAV.

$ opusdec /tmp/Trumpet.sts /tmp/trumpet.wav
Decoding to 48000 Hz (2 channels)
Encoded with libopus 1.3.1, opus 1.3.1
[/] 00:00:02Decoding to 48000 Hz (2 channels)
Encoded with libopus 1.3.1, opus 1.3.1
[|] 00:00:05Decoding to 48000 Hz (2 channels)

The final WAV file is pretty big: 2.0G trumpet.wav

I trimmed the WAV to 10sec and attached it.
ffmpeg -i /tmp/trumpet.wav -ss 0 -to 10 -c copy /tmp/trumpet_trim.wav

Attachment Size 1.37 MB

Do you still have an unanswered question? Please log in first to post your question.