diff --git a/plugins/Cardinal/src/Blank.cpp b/plugins/Cardinal/src/Blank.cpp index 1b49cf0..0e13c70 100644 --- a/plugins/Cardinal/src/Blank.cpp +++ b/plugins/Cardinal/src/Blank.cpp @@ -34,6 +34,9 @@ struct CardinalBlankModule : Module { CardinalBlankModule() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); } + + void process(const ProcessArgs&) override + {} }; struct CardinalBlankImage : Widget { diff --git a/plugins/Cardinal/src/HostParameters.cpp b/plugins/Cardinal/src/HostParameters.cpp index 0bea835..ac03d82 100644 --- a/plugins/Cardinal/src/HostParameters.cpp +++ b/plugins/Cardinal/src/HostParameters.cpp @@ -37,6 +37,8 @@ struct HostParameters : TerminalModule { CardinalPluginContext* const pcontext; rack::dsp::SlewLimiter parameters[kModuleParameters]; bool parametersConnected[kModuleParameters] = {}; + bool bypassed = false; + uint32_t lastProcessCounter = 0; HostParameters() : pcontext(static_cast(APP)) @@ -45,31 +47,36 @@ struct HostParameters : TerminalModule { throw rack::Exception("Plugin context is null."); config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - - const float fsampleRate = static_cast(pcontext->sampleRate); - SampleRateChangeEvent e = { - fsampleRate, - 1.0f / fsampleRate - }; - onSampleRateChange(e); } void processTerminalInput(const ProcessArgs& args) override { - if (isBypassed()) + const uint32_t processCounter = pcontext->processCounter; + + // only checked on input + if (lastProcessCounter != processCounter) + { + bypassed = isBypassed(); + lastProcessCounter = processCounter; + + for (uint32_t i=0; iparameters[i])); } } diff --git a/plugins/Cardinal/src/MPV.cpp b/plugins/Cardinal/src/MPV.cpp index 1992ddc..f0a4b72 100644 --- a/plugins/Cardinal/src/MPV.cpp +++ b/plugins/Cardinal/src/MPV.cpp @@ -49,6 +49,9 @@ struct CardinalEmbedModule : Module { configOutput(0, "Audio Left"); configOutput(1, "Audio Right"); } + + void process(const ProcessArgs&) override + {} }; // -------------------------------------------------------------------------------------------------------------------- diff --git a/plugins/Cardinal/src/TextEditor.cpp b/plugins/Cardinal/src/TextEditor.cpp index cbcda03..7905e8c 100644 --- a/plugins/Cardinal/src/TextEditor.cpp +++ b/plugins/Cardinal/src/TextEditor.cpp @@ -79,6 +79,9 @@ struct TextEditorModule : Module { return rootJ; } + void process(const ProcessArgs&) override + {} + void dataFromJson(json_t* const rootJ) override { file.clear();