From: Anton Baskanov baskanov@gmail.com
--- dlls/dmsynth/synth.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/dmsynth/synth.c b/dlls/dmsynth/synth.c index 57a057b68b0..7fe42c86754 100644 --- a/dlls/dmsynth/synth.c +++ b/dlls/dmsynth/synth.c @@ -511,6 +511,7 @@ static HRESULT WINAPI synth_Open(IDirectMusicSynth8 *iface, DMUS_PORTPARAMS *par }; UINT size = sizeof(DMUS_PORTPARAMS); BOOL modified = FALSE; + double gain; UINT id;
TRACE("(%p, %p)\n", This, params); @@ -586,6 +587,11 @@ static HRESULT WINAPI synth_Open(IDirectMusicSynth8 *iface, DMUS_PORTPARAMS *par !!(actual.dwEffectFlags & DMUS_EFFECT_REVERB)); fluid_settings_setint(This->fluid_settings, "synth.chorus.active", !!(actual.dwEffectFlags & DMUS_EFFECT_CHORUS)); + + /* native limits the total voice gain to 6 dB */ + gain = 60.; + fluid_settings_setnum(This->fluid_settings, "synth.gain", pow(10., gain / 200.)); + if (!(This->fluid_synth = new_fluid_synth(This->fluid_settings))) { LeaveCriticalSection(&This->cs);