sf2 volume discrepancies caused by attenuation handling
Win7 x64, Musescore 2.0.2, MIDI import.
FluidSynth and BASSMIDI only attenuate 40% of the numeric value, while MuseScore/Fluid attenuates 100% of instrument-level.
So the more heavily attenuated samples are quieter than normal, while the less attenuated samples are louder than normal. This results in balance problems.
This is noticeable in SGM soundfont strings.
I made a quick test sf2. Here's an archive containing a test sf2 and two MIDIs.
https://www.dropbox.com/s/4m056gkg0m5oyyb/share.7z?dl=0
"Attenuation Test.sf2":
Patch 0 contains a loud attenuated sample from 0 through middle C through F, and a quiet sample from F# to 127. The sample is attenuated in the instrument setup.
Patch 1 contains only a loud attenuated sample. Patch 2 contains only a quiet sample. The sample is attenuated in the patch setup.
The loud sample is 1/2 scale amplitude. The quiet sample is 1/20 scale amplitude (20 dB attenuation of the loud sample). It is 1/10 the amplitude of the loud sample, but given a 50 dB head start in sf2.
All 3 presets/patches sound identical in Polyphone SF2 editor, BASSMIDI/foo_midi, BASSMIDIdrv, and Qsynth/Fluidsynth. They do not in Musescore.
You need to import all MIDIs via Musescore.
scale60.mid uses patch 0 and plays back a scale from middle C through B. The volume is constant in BASSMIDI and FluidSynth, but not in MuseScore "Fluid sf2".
scale60.2.mid alternates between patches 1 and 2, playing the same scale. The volume is constant in BASSMIDI and FluidSynth, but not in MuseScore "Fluid sf2".
Comments
Fixed in branch master, commit 25fcf3f27b
fix #72091: sf2 volume discrepancies caused by attenuation handling, thanks @jimbo1qaz for the investigation in PR #2152
Fixed in branch 2.0.3, commit e1e6c7da7f
fix #72091: sf2 volume discrepancies caused by attenuation handling, thanks @jimbo1qaz for the investigation in PR #2152
Automatically closed -- issue fixed for 2 weeks with no activity.