From 8a6e03c4d27f04538b98d2ccb6acb4b86f09c9ed Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Fri, 8 Feb 2019 19:43:08 -0500 Subject: [PATCH] Fix #7189: Fluidsynth volume gain too high --- src/music/fluidsynth.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/music/fluidsynth.cpp b/src/music/fluidsynth.cpp index d1088f4bc4..6baeb899bc 100644 --- a/src/music/fluidsynth.cpp +++ b/src/music/fluidsynth.cpp @@ -149,7 +149,11 @@ bool MusicDriver_FluidSynth::IsSongPlaying() void MusicDriver_FluidSynth::SetVolume(byte vol) { /* Allowed range of synth.gain is 0.0 to 10.0 */ - if (fluid_settings_setnum(_midi.settings, "synth.gain", 1.0 * vol / 128.0) != 1) { + /* fluidsynth's default gain is 0.2, so use this as "full + * volume". Set gain using OpenTTD's volume, as a number between 0 + * and 0.2. */ + double gain = (1.0 * vol) / (128.0 * 5.0); + if (fluid_settings_setnum(_midi.settings, "synth.gain", gain) != 1) { DEBUG(driver, 0, "Could not set volume"); } }