diff options
Diffstat (limited to 'audio')
| -rw-r--r-- | audio/softsynth/fluidsynth.cpp | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp index 71187200dc..518e260175 100644 --- a/audio/softsynth/fluidsynth.cpp +++ b/audio/softsynth/fluidsynth.cpp @@ -127,29 +127,39 @@ int MidiDriver_FluidSynth::open() { _synth = new_fluid_synth(_settings); - int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr"); - double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0; - double chorusSpeed = (double)ConfMan.getInt("fluidsynth_chorus_speed") / 100.0; - double chorusDepthMs = (double)ConfMan.getInt("fluidsynth_chorus_depth") / 100.0; - - Common::String chorusWaveForm = ConfMan.get("fluidsynth_chorus_waveform"); - int chorusType = FLUID_CHORUS_MOD_SINE; - if (chorusWaveForm == "sine") { - chorusType = FLUID_CHORUS_MOD_SINE; + if (ConfMan.getBool("fluidsynth_chorus_activate")) { + fluid_synth_set_chorus_on(_synth, 1); + + int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr"); + double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0; + double chorusSpeed = (double)ConfMan.getInt("fluidsynth_chorus_speed") / 100.0; + double chorusDepthMs = (double)ConfMan.getInt("fluidsynth_chorus_depth") / 10.0; + + Common::String chorusWaveForm = ConfMan.get("fluidsynth_chorus_waveform"); + int chorusType = FLUID_CHORUS_MOD_SINE; + if (chorusWaveForm == "sine") { + chorusType = FLUID_CHORUS_MOD_SINE; + } else { + chorusType = FLUID_CHORUS_MOD_TRIANGLE; + } + + fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType); } else { - chorusType = FLUID_CHORUS_MOD_TRIANGLE; + fluid_synth_set_chorus_on(_synth, 0); } - fluid_synth_set_chorus_on(_synth, 1); - fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType); + if (ConfMan.getBool("fluidsynth_reverb_activate")) { + fluid_synth_set_reverb_on(_synth, 1); - double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0; - double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0; - double reverbWidth = (double)ConfMan.getInt("fluidsynth_reverb_width") / 10.0; - double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0; + double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0; + double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0; + int reverbWidth = ConfMan.getInt("fluidsynth_reverb_width"); + double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0; - fluid_synth_set_reverb_on(_synth, 1); - fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel); + fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel); + } else { + fluid_synth_set_reverb_on(_synth, 0); + } Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation"); int interpMethod = FLUID_INTERP_4THORDER; |
