summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/music/fluidsynth.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/music/fluidsynth.cpp b/src/music/fluidsynth.cpp
index d1088f4bc..6baeb899b 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");
}
}