diff --git a/recipes-misc/recipes-multimedia/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch b/recipes-misc/recipes-multimedia/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch index 3db78633..ba26dfdd 100644 --- a/recipes-misc/recipes-multimedia/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch +++ b/recipes-misc/recipes-multimedia/carla/carla/0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch @@ -1,4 +1,4 @@ -From 5e796fe27ef27bd6e5e87c6d4ab04549c99f0f48 Mon Sep 17 00:00:00 2001 +From d55575c62bd911e1edf126e1efed8219c97bb25a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 10 Oct 2018 23:48:22 +0200 Subject: [PATCH 1/3] Fluidsynths: Ensure fluidsynth's defaults are set once @@ -15,11 +15,11 @@ Upstream-Status: Submitted [1] Signed-off-by: Andreas Müller --- - source/backend/plugin/CarlaPluginFluidSynth.cpp | 69 ++++++++++++++++++------- - 1 file changed, 50 insertions(+), 19 deletions(-) + source/backend/plugin/CarlaPluginFluidSynth.cpp | 67 ++++++++++++++++++------- + 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/source/backend/plugin/CarlaPluginFluidSynth.cpp b/source/backend/plugin/CarlaPluginFluidSynth.cpp -index be9e720a..85e3aeb2 100644 +index be9e720a..7f6d919c 100644 --- a/source/backend/plugin/CarlaPluginFluidSynth.cpp +++ b/source/backend/plugin/CarlaPluginFluidSynth.cpp @@ -73,20 +73,22 @@ public: @@ -33,18 +33,18 @@ index be9e720a..85e3aeb2 100644 // set default values fluid_synth_set_reverb_on(fSynth, 1); - fluid_synth_set_reverb(fSynth, FLUID_REVERB_DEFAULT_ROOMSIZE, FLUID_REVERB_DEFAULT_DAMP, FLUID_REVERB_DEFAULT_WIDTH, FLUID_REVERB_DEFAULT_LEVEL); -+ fluid_synth_set_reverb(fSynth, sfFluidDefaults[FluidSynthReverbRoomSize], sfFluidDefaults[FluidSynthReverbDamp], sfFluidDefaults[FluidSynthReverbWidth], sfFluidDefaults[FluidSynthReverbLevel]); ++ fluid_synth_set_reverb(fSynth, sFluidDefaults[FluidSynthReverbRoomSize], sFluidDefaults[FluidSynthReverbDamp], sFluidDefaults[FluidSynthReverbWidth], sFluidDefaults[FluidSynthReverbLevel]); fluid_synth_set_chorus_on(fSynth, 1); - fluid_synth_set_chorus(fSynth, FLUID_CHORUS_DEFAULT_N, FLUID_CHORUS_DEFAULT_LEVEL, FLUID_CHORUS_DEFAULT_SPEED, FLUID_CHORUS_DEFAULT_DEPTH, FLUID_CHORUS_DEFAULT_TYPE); -+ fluid_synth_set_chorus(fSynth, sfFluidDefaults[FluidSynthChorusNr], sfFluidDefaults[FluidSynthChorusLevel], sfFluidDefaults[FluidSynthChorusSpeedHz], sfFluidDefaults[FluidSynthChorusDepthMs], sfFluidDefaults[FluidSynthChorusType]); ++ fluid_synth_set_chorus(fSynth, sFluidDefaults[FluidSynthChorusNr], sFluidDefaults[FluidSynthChorusLevel], sFluidDefaults[FluidSynthChorusSpeedHz], sFluidDefaults[FluidSynthChorusDepthMs], sFluidDefaults[FluidSynthChorusType]); fluid_synth_set_polyphony(fSynth, FLUID_DEFAULT_POLYPHONY); fluid_synth_set_gain(fSynth, 1.0f); for (int i=0; i < MAX_MIDI_CHANNELS; ++i) - fluid_synth_set_interp_method(fSynth, i, FLUID_INTERP_DEFAULT); -+ fluid_synth_set_interp_method(fSynth, i, sfFluidDefaults[FluidSynthInterpolation]); ++ fluid_synth_set_interp_method(fSynth, i, sFluidDefaults[FluidSynthInterpolation]); } ~CarlaPluginFluidSynth() override @@ -53,7 +53,7 @@ index be9e720a..85e3aeb2 100644 return FLUID_CHORUS_MOD_TRIANGLE; default: - return FLUID_CHORUS_DEFAULT_TYPE; -+ return sfFluidDefaults[FluidSynthChorusType]; ++ return sFluidDefaults[FluidSynthChorusType]; } case FluidSynthInterpolation: switch (scalePointId) @@ -62,7 +62,7 @@ index be9e720a..85e3aeb2 100644 return FLUID_INTERP_7THORDER; default: - return FLUID_INTERP_DEFAULT; -+ return sfFluidDefaults[FluidSynthInterpolation]; ++ return sFluidDefaults[FluidSynthInterpolation]; } default: return 0.0f; @@ -71,7 +71,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 1.0f; - pData->param.ranges[j].def = 1.0f; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 1.0f; @@ -80,7 +80,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 1.2f; - pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_ROOMSIZE; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -89,7 +89,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 1.0f; - pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_DAMP; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -98,7 +98,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 1.0f; - pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_LEVEL; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -107,7 +107,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 10.0f; // should be 100, but that sounds too much - pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_WIDTH; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -116,7 +116,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 1.0f; - pData->param.ranges[j].def = 1.0f; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 1.0f; @@ -125,7 +125,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 99.0f; - pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_N; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 10.0f; @@ -134,7 +134,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 10.0f; - pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_LEVEL; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -143,7 +143,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.29f; pData->param.ranges[j].max = 5.0f; - pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_SPEED; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -152,7 +152,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = float(2048.0 * 1000.0 / pData->engine->getSampleRate()); // FIXME? - pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_DEPTH; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 0.01f; pData->param.ranges[j].stepSmall = 0.0001f; pData->param.ranges[j].stepLarge = 0.1f; @@ -161,7 +161,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = FLUID_CHORUS_MOD_SINE; pData->param.ranges[j].max = FLUID_CHORUS_MOD_TRIANGLE; - pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_TYPE; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 1.0f; @@ -170,7 +170,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 1.0f; pData->param.ranges[j].max = 512.0f; // max theoric is 65535 - pData->param.ranges[j].def = (float)fluid_synth_get_polyphony(fSynth); -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 10.0f; @@ -179,7 +179,7 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = FLUID_INTERP_NONE; pData->param.ranges[j].max = FLUID_INTERP_HIGHEST; - pData->param.ranges[j].def = FLUID_INTERP_DEFAULT; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 1.0f; @@ -188,56 +188,54 @@ index be9e720a..85e3aeb2 100644 pData->param.ranges[j].min = 0.0f; pData->param.ranges[j].max = 65535.0f; - pData->param.ranges[j].def = 0.0f; -+ pData->param.ranges[j].def = sfFluidDefaults[j]; ++ pData->param.ranges[j].def = sFluidDefaults[j]; pData->param.ranges[j].step = 1.0f; pData->param.ranges[j].stepSmall = 1.0f; pData->param.ranges[j].stepLarge = 1.0f; -@@ -1656,6 +1658,29 @@ public: +@@ -1656,6 +1658,27 @@ public: } private: + void initializeFluidDefaultsIfNeeded() + { -+ if (!sbFluidDefaultsStored) -+ { -+ sfFluidDefaults[FluidSynthReverbOnOff] = 1.0f; -+ sfFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE; -+ sfFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP; -+ sfFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL; -+ sfFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH; -+ sfFluidDefaults[FluidSynthChorusOnOff] = 1.0f; -+ sfFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N; -+ sfFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL; -+ sfFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED; -+ sfFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH; -+ sfFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE; -+ sfFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth); -+ sfFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT; -+ sfFluidDefaults[FluidSynthVoiceCount] = 0.0f; -+ -+ sbFluidDefaultsStored = true; -+ } ++ if (sFluidDefaultsStored) ++ return; ++ sFluidDefaultsStored = true; ++ sFluidDefaults[FluidSynthReverbOnOff] = 1.0f; ++ sFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE; ++ sFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP; ++ sFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL; ++ sFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH; ++ sFluidDefaults[FluidSynthChorusOnOff] = 1.0f; ++ sFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N; ++ sFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL; ++ sFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED; ++ sFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH; ++ sFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE; ++ sFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth); ++ sFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT; ++ sFluidDefaults[FluidSynthVoiceCount] = 0.0f; + } + enum FluidSynthParameters { FluidSynthReverbOnOff = 0, FluidSynthReverbRoomSize = 1, -@@ -1683,6 +1708,9 @@ private: +@@ -1683,6 +1706,9 @@ private: float** fAudio16Buffers; float fParamBuffers[FluidSynthParametersMax]; -+ static bool sbFluidDefaultsStored; -+ static float sfFluidDefaults[FluidSynthParametersMax]; ++ static bool sFluidDefaultsStored; ++ static float sFluidDefaults[FluidSynthParametersMax]; + int32_t fCurMidiProgs[MAX_MIDI_CHANNELS]; const char* fLabel; -@@ -1690,6 +1718,9 @@ private: +@@ -1690,6 +1716,9 @@ private: CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginFluidSynth) }; -+bool CarlaPluginFluidSynth::sbFluidDefaultsStored = false; -+float CarlaPluginFluidSynth::sfFluidDefaults[FluidSynthParametersMax]; ++bool CarlaPluginFluidSynth::sFluidDefaultsStored = false; ++float CarlaPluginFluidSynth::sFluidDefaults[FluidSynthParametersMax]; + CARLA_BACKEND_END_NAMESPACE diff --git a/recipes-misc/recipes-multimedia/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch b/recipes-misc/recipes-multimedia/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch index 8bc1d014..a88c99d1 100644 --- a/recipes-misc/recipes-multimedia/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch +++ b/recipes-misc/recipes-multimedia/carla/carla/0004-Fixes-for-fluidsynth-2.0.0.patch @@ -1,6 +1,6 @@ -From 9800d8fea43f17f7c198ce2375a21715794f3352 Mon Sep 17 00:00:00 2001 +From 94c96ee0d04e324122ee1a73344a44f1b21837ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 11 Oct 2018 23:35:02 +0200 +Date: Sat, 13 Oct 2018 15:16:20 +0200 Subject: [PATCH 2/3] Fixes for fluidsynth >= 2.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -21,7 +21,7 @@ Signed-off-by: Andreas Müller 2 files changed, 67 insertions(+) diff --git a/source/backend/plugin/CarlaPluginFluidSynth.cpp b/source/backend/plugin/CarlaPluginFluidSynth.cpp -index 85e3aeb2..3873507c 100644 +index 7f6d919c..5645fe3c 100644 --- a/source/backend/plugin/CarlaPluginFluidSynth.cpp +++ b/source/backend/plugin/CarlaPluginFluidSynth.cpp @@ -943,6 +943,7 @@ public: @@ -69,55 +69,55 @@ index 85e3aeb2..3873507c 100644 if (pData->midiprog.data[i].bank == 128 && ! hasDrums) { -@@ -1662,17 +1693,48 @@ private: - { - if (!sbFluidDefaultsStored) - { -+ // reverb defaults - sfFluidDefaults[FluidSynthReverbOnOff] = 1.0f; +@@ -1663,17 +1694,48 @@ private: + if (sFluidDefaultsStored) + return; + sFluidDefaultsStored = true; ++ // reverb defaults + sFluidDefaults[FluidSynthReverbOnOff] = 1.0f; +#if FLUIDSYNTH_VERSION_MAJOR < 2 - sfFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE; - sfFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP; - sfFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL; - sfFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH; + sFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE; + sFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP; + sFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL; + sFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH; +#else -+ double reverbVal; -+ fluid_settings_getnum_default(fSettings, "synth.reverb.room-size", &reverbVal); -+ sfFluidDefaults[FluidSynthReverbRoomSize] = reverbVal; -+ fluid_settings_getnum_default(fSettings, "synth.reverb.damp", &reverbVal); -+ sfFluidDefaults[FluidSynthReverbDamp] = reverbVal; -+ fluid_settings_getnum_default(fSettings, "synth.reverb.level", &reverbVal); -+ sfFluidDefaults[FluidSynthReverbLevel] = reverbVal; -+ fluid_settings_getnum_default(fSettings, "synth.reverb.width", &reverbVal); -+ sfFluidDefaults[FluidSynthReverbWidth] = reverbVal; ++ double reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.room-size", &reverbVal); ++ sFluidDefaults[FluidSynthReverbRoomSize] = reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.damp", &reverbVal); ++ sFluidDefaults[FluidSynthReverbDamp] = reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.level", &reverbVal); ++ sFluidDefaults[FluidSynthReverbLevel] = reverbVal; ++ fluid_settings_getnum_default(fSettings, "synth.reverb.width", &reverbVal); ++ sFluidDefaults[FluidSynthReverbWidth] = reverbVal; +#endif + -+ // chorus defaults - sfFluidDefaults[FluidSynthChorusOnOff] = 1.0f; ++ // chorus defaults + sFluidDefaults[FluidSynthChorusOnOff] = 1.0f; +#if FLUIDSYNTH_VERSION_MAJOR < 2 - sfFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N; - sfFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL; - sfFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED; - sfFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH; - sfFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE; + sFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N; + sFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL; + sFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED; + sFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH; + sFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE; +#else -+ double chorusVal; -+ fluid_settings_getnum_default(fSettings, "synth.chorus.nr", &chorusVal); -+ sfFluidDefaults[FluidSynthChorusNr] = chorusVal; -+ fluid_settings_getnum_default(fSettings, "synth.chorus.level", &chorusVal); -+ sfFluidDefaults[FluidSynthChorusLevel] = chorusVal; -+ fluid_settings_getnum_default(fSettings, "synth.chorus.speed", &chorusVal); -+ sfFluidDefaults[FluidSynthChorusSpeedHz] = chorusVal; -+ fluid_settings_getnum_default(fSettings, "synth.chorus.depth", &chorusVal); -+ sfFluidDefaults[FluidSynthChorusDepthMs] = chorusVal; -+ // There is no settings for chorus default type -+ sfFluidDefaults[FluidSynthChorusType] = (float)fluid_synth_get_chorus_type(fSynth); ++ double chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.nr", &chorusVal); ++ sFluidDefaults[FluidSynthChorusNr] = chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.level", &chorusVal); ++ sFluidDefaults[FluidSynthChorusLevel] = chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.speed", &chorusVal); ++ sFluidDefaults[FluidSynthChorusSpeedHz] = chorusVal; ++ fluid_settings_getnum_default(fSettings, "synth.chorus.depth", &chorusVal); ++ sFluidDefaults[FluidSynthChorusDepthMs] = chorusVal; ++ // There is no settings for chorus default type ++ sFluidDefaults[FluidSynthChorusType] = (float)fluid_synth_get_chorus_type(fSynth); +#endif + -+ // misc. defaults - sfFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth); - sfFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT; - sfFluidDefaults[FluidSynthVoiceCount] = 0.0f; ++ // misc. defaults + sFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth); + sFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT; + sFluidDefaults[FluidSynthVoiceCount] = 0.0f; diff --git a/source/discovery/carla-discovery.cpp b/source/discovery/carla-discovery.cpp index a0745e23..d2cd2931 100644 --- a/source/discovery/carla-discovery.cpp