diff --git a/carla b/carla index 095c25d..0bcd151 160000 --- a/carla +++ b/carla @@ -1 +1 @@ -Subproject commit 095c25da4a0149cb8e8aed8f2adec5b6bd14eb21 +Subproject commit 0bcd151616fd087ceb6e224fdf8ffba38e790fa8 diff --git a/plugins/Core.json b/plugins/Core.json index 118cdbb..4479d9c 100644 --- a/plugins/Core.json +++ b/plugins/Core.json @@ -1,16 +1,14 @@ { "slug": "Core", - "name": "Core", + "name": "VCV Core", "version": "2.0.0", "license": "GPL-3.0-or-later", "author": "VCV", "brand": "VCV", "authorEmail": "support@vcvrack.com", "authorUrl": "https://vcvrack.com/", - "pluginUrl": "", "manualUrl": "https://vcvrack.com/manual/Core", "sourceUrl": "https://github.com/VCVRack/Rack", - "donateUrl": "", "changelogUrl": "https://github.com/VCVRack/Rack/blob/v2/CHANGELOG.md", "description": "Necessary modules built into VCV Rack", "modules": [ diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index 9cba13f..a06479f 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -333,7 +333,7 @@ public: { fWindowParameters[kWindowParameterShowTooltips] = 1.0f; fWindowParameters[kWindowParameterCableOpacity] = 50.0f; - fWindowParameters[kWindowParameterCableTension] = 50.0f; + fWindowParameters[kWindowParameterCableTension] = 100.0f; fWindowParameters[kWindowParameterRackBrightness] = 100.0f; fWindowParameters[kWindowParameterHaloBrightness] = 25.0f; fWindowParameters[kWindowParameterKnobMode] = 0.0f; @@ -609,7 +609,7 @@ protected: parameter.symbol = "cableTension"; parameter.unit = "%"; parameter.hints = kParameterIsAutomatable; - parameter.ranges.def = 50.0f; + parameter.ranges.def = 100.0f; parameter.ranges.min = 0.0f; parameter.ranges.max = 100.0f; break; diff --git a/src/Rack b/src/Rack index 05fa24a..6c81ba4 160000 --- a/src/Rack +++ b/src/Rack @@ -1 +1 @@ -Subproject commit 05fa24a72bccf4023f5fb1b0fa7f1c26855c0926 +Subproject commit 6c81ba466f2207a443227cec509ae09993300137 diff --git a/src/override/Engine.cpp b/src/override/Engine.cpp index 45107ea..411b601 100644 --- a/src/override/Engine.cpp +++ b/src/override/Engine.cpp @@ -143,13 +143,13 @@ struct Engine::Internal { }; -static void Engine_updateExpander(Engine* that, Module* module, bool side) { +static void Engine_updateExpander_NoLock(Engine* that, Module* module, bool side) { Module::Expander& expander = side ? module->rightExpander : module->leftExpander; Module* oldExpanderModule = expander.module; if (expander.moduleId >= 0) { if (!expander.module || expander.module->id != expander.moduleId) { - expander.module = that->getModule(expander.moduleId); + expander.module = that->getModule_NoLock(expander.moduleId); } } else { @@ -368,8 +368,8 @@ void Engine::stepBlock(int frames) { // Update expander pointers for (Module* module : internal->modules) { - Engine_updateExpander(this, module, false); - Engine_updateExpander(this, module, true); + Engine_updateExpander_NoLock(this, module, false); + Engine_updateExpander_NoLock(this, module, true); } // Step individual frames @@ -538,6 +538,11 @@ void Engine::addModule(Module* module) { // Dispatch AddEvent Module::AddEvent eAdd; module->onAdd(eAdd); + // Dispatch SampleRateChangeEvent + Module::SampleRateChangeEvent eSrc; + eSrc.sampleRate = internal->sampleRate; + eSrc.sampleTime = internal->sampleTime; + module->onSampleRateChange(eSrc); // Update ParamHandles' module pointers for (ParamHandle* paramHandle : internal->paramHandles) { if (paramHandle->moduleId == module->id) @@ -679,6 +684,13 @@ void Engine::moduleFromJson(Module* module, json_t* rootJ) { } +void Engine::prepareSaveModule(Module* module) { + ReadLock lock(internal->mutex); + Module::SaveEvent e; + module->onSave(e); +} + + void Engine::prepareSave() { ReadLock lock(internal->mutex); for (Module* module : internal->modules) {