From: Anton Baskanov baskanov@gmail.com
--- dlls/dmsynth/synth.c | 2 ++ dlls/dmsynth/tests/dmsynth.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/dmsynth/synth.c b/dlls/dmsynth/synth.c index 86c6ffa4f53..69a12910647 100644 --- a/dlls/dmsynth/synth.c +++ b/dlls/dmsynth/synth.c @@ -1991,6 +1991,8 @@ static int synth_preset_noteon(fluid_preset_t *fluid_preset, fluid_synth_t *flui add_voice_connections(fluid_voice, &articulation->list, articulation->connections); LIST_FOR_EACH_ENTRY(articulation, ®ion->articulations, struct articulation, entry) add_voice_connections(fluid_voice, &articulation->list, articulation->connections); + fluid_voice_gen_incr(voice->fluid_voice, GEN_ATTENUATION, + region->wave_sample.lAttenuation / -65536.); /* Unlike FluidSynth, native applies the gain limit after the panning. At * least for the center pan we can replicate this by applying a panning * attenuation here. */ diff --git a/dlls/dmsynth/tests/dmsynth.c b/dlls/dmsynth/tests/dmsynth.c index 491c3701d52..9634b8f715a 100644 --- a/dlls/dmsynth/tests/dmsynth.c +++ b/dlls/dmsynth/tests/dmsynth.c @@ -2107,7 +2107,7 @@ static void test_dls(void) download.region.WSMP.lAttenuation = -120 * 65536; envelope = default_volume_envelope; envelope.gain -= 120.; - check_volume_envelope(synth, &download, &default_midi, &envelope, TRUE); + check_volume_envelope(synth, &download, &default_midi, &envelope, FALSE);
/* lfo frequency */