From 48714be32be0b26cd86847d0dda07d81e0d5cc38 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 24 Oct 2012 21:42:27 +0100 Subject: [PATCH] Continue last commit, implement needed UI changes --- c++/carla-backend/carla_engine.cpp | 2 +- c++/carla-bridge/carla_bridge_osc.cpp | 2 +- src/carla.py | 6 ++++-- src/shared_settings.py | 11 +++++++---- src/ui/settings_app.ui | 16 +++++++++++++--- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/c++/carla-backend/carla_engine.cpp b/c++/carla-backend/carla_engine.cpp index 71c7338..ae2f1ef 100644 --- a/c++/carla-backend/carla_engine.cpp +++ b/c++/carla-backend/carla_engine.cpp @@ -263,7 +263,7 @@ short CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, con CarlaPlugin* plugin = nullptr; #ifndef BUILD_BRIDGE - if (btype != BINARY_NATIVE || carlaOptions.preferPluginBridges) + if (btype != BINARY_NATIVE || (carlaOptions.preferPluginBridges && getBinaryBidgePath(btype) && type == CarlaEngineTypeJack)) { # ifdef CARLA_ENGINE_JACK if (carlaOptions.processMode != CarlaBackend::PROCESS_MODE_MULTIPLE_CLIENTS) diff --git a/c++/carla-bridge/carla_bridge_osc.cpp b/c++/carla-bridge/carla_bridge_osc.cpp index 54b472a..2352fc9 100644 --- a/c++/carla-bridge/carla_bridge_osc.cpp +++ b/c++/carla-bridge/carla_bridge_osc.cpp @@ -256,7 +256,7 @@ int CarlaBridgeOsc::handleMsgMidiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS) #ifdef BUILD_BRIDGE_PLUGIN const int32_t index = argv[0]->i; - client->setProgram(index); + client->setMidiProgram(index); #else const int32_t bank = argv[0]->i; const int32_t program = argv[1]->i; diff --git a/src/carla.py b/src/carla.py index 6bab527..6d600d0 100755 --- a/src/carla.py +++ b/src/carla.py @@ -1246,8 +1246,9 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW): preferredBufferSize = self.settings.value("Engine/PreferredBufferSize", 512, type=int) preferredSampleRate = self.settings.value("Engine/PreferredSampleRate", 44100, type=int) - forceStereo = self.settings.value("Engine/ForceStereo", False, type=bool) - useDssiVstChunks = self.settings.value("Engine/UseDssiVstChunks", False, type=bool) + forceStereo = self.settings.value("Engine/ForceStereo", False, type=bool) + useDssiVstChunks = self.settings.value("Engine/UseDssiVstChunks", False, type=bool) + preferPluginBridges = self.settings.value("Engine/PreferPluginBridges", False, type=bool) preferUiBridges = self.settings.value("Engine/PreferUiBridges", True, type=bool) oscUiTimeout = self.settings.value("Engine/OscUiTimeout", 40, type=int) @@ -1267,6 +1268,7 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW): Carla.Host.set_option(OPTION_FORCE_STEREO, forceStereo, "") Carla.Host.set_option(OPTION_USE_DSSI_VST_CHUNKS, useDssiVstChunks, "") + Carla.Host.set_option(OPTION_PREFER_PLUGIN_BRIDGES, preferPluginBridges, "") Carla.Host.set_option(OPTION_PREFER_UI_BRIDGES, preferUiBridges, "") Carla.Host.set_option(OPTION_OSC_UI_TIMEOUT, oscUiTimeout, "") diff --git a/src/shared_settings.py b/src/shared_settings.py index 0211a07..1e168d1 100644 --- a/src/shared_settings.py +++ b/src/shared_settings.py @@ -220,10 +220,11 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): self.cb_engine_process_mode.setCurrentIndex(self.settings.value("Engine/ProcessMode", PROCESS_MODE_MULTIPLE_CLIENTS, type=int)) self.sb_engine_max_params.setValue(self.settings.value("Engine/MaxParameters", 200, type=int)) - self.ch_engine_prefer_bridges.setChecked(self.settings.value("Engine/PreferUiBridges", True, type=bool)) + self.ch_engine_prefer_ui_bridges.setChecked(self.settings.value("Engine/PreferUiBridges", True, type=bool)) self.sb_engine_oscgui_timeout.setValue(self.settings.value("Engine/OscUiTimeout", 4000, type=int)) self.ch_engine_disable_checks.setChecked(self.settings.value("Engine/DisableChecks", bool(not WINDOWS), type=bool)) self.ch_engine_dssi_chunks.setChecked(self.settings.value("Engine/UseDssiVstChunks", False, type=bool)) + self.ch_engine_prefer_plugin_bridges.setChecked(self.settings.value("Engine/PreferPluginBridges", False, type=bool)) self.ch_engine_force_stereo.setChecked(self.settings.value("Engine/ForceStereo", False, type=bool)) self.ch_engine_process_hp.setChecked(self.settings.value("Engine/ProcessHighPrecision", False, type=bool)) @@ -415,10 +416,11 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): self.settings.setValue("Engine/AudioDriver", self.cb_engine_audio_driver.currentText()) self.settings.setValue("Engine/ProcessMode", self.cb_engine_process_mode.currentIndex()) self.settings.setValue("Engine/MaxParameters", self.sb_engine_max_params.value()) - self.settings.setValue("Engine/PreferUiBridges", self.ch_engine_prefer_bridges.isChecked()) + self.settings.setValue("Engine/PreferUiBridges", self.ch_engine_prefer_ui_bridges.isChecked()) self.settings.setValue("Engine/OscUiTimeout", self.sb_engine_oscgui_timeout.value()) self.settings.setValue("Engine/DisableChecks", self.ch_engine_disable_checks.isChecked()) self.settings.setValue("Engine/UseDssiVstChunks", self.ch_engine_dssi_chunks.isChecked()) + self.settings.setValue("Engine/PreferPluginBridges", self.ch_engine_prefer_plugin_bridges.isChecked()) self.settings.setValue("Engine/ForceStereo", self.ch_engine_force_stereo.isChecked()) self.settings.setValue("Engine/ProcessHighPrecision", self.ch_engine_process_hp.isChecked()) @@ -490,10 +492,11 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): self.cb_engine_audio_driver.setCurrentIndex(0) self.cb_engine_process_mode.setCurrentIndex(PROCESS_MODE_MULTIPLE_CLIENTS) self.sb_engine_max_params.setValue(200) - self.ch_engine_prefer_bridges.setChecked(True) + self.ch_engine_prefer_ui_bridges.setChecked(True) self.sb_engine_oscgui_timeout.setValue(4000) - self.ch_engine_disable_checks.setChecked(bool(not WINDOWS)) # pre-enable checks for Windows only + self.ch_engine_disable_checks.setChecked(False) self.ch_engine_dssi_chunks.setChecked(False) + self.ch_engine_prefer_plugin_bridges.setChecked(False) self.ch_engine_force_stereo.setChecked(False) self.ch_engine_process_hp.setChecked(False) diff --git a/src/ui/settings_app.ui b/src/ui/settings_app.ui index a6e65d1..3de61d4 100644 --- a/src/ui/settings_app.ui +++ b/src/ui/settings_app.ui @@ -203,7 +203,7 @@ 0 - 3 + 0 @@ -931,7 +931,7 @@ - + Use OSC-GUI bridges when possible, this way separating the UI from DSP code @@ -967,6 +967,16 @@ You can disable these checks to get a faster scanning time (at your own risk). + + + + Whenever possible, run the plugins in bridge mode. + + + Run plugins in bridge mode when possible (EXPERIMENTAL) + + + @@ -981,7 +991,7 @@ This mode is not available for VST plugins. - Process audio in blocks of 8 samples, allowing "per-sample" automation. + Process audio in blocks of 8 samples, allowing a higher precision automation. Recommended to use when 'rendering' a project. Some plugins might not work properly under this mode.