sf2 volume discrepancies caused by attenuation handling

Project:MuseScore
Component:Code
Category:bug report
Priority:normal
Assigned:Unassigned
Status:closed
Description

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

Status:active» fixed

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

Status:fixed» closed

Automatically closed -- issue fixed for 2 weeks with no activity.

Syndicate content