commit 952460b7eac1eb8ec5b0def3fd64c606fb2a41ad
parent e57168476f9f5549e52afbd4aa89224f1ce93d80
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date: Mon, 12 Jul 2021 17:44:38 +0200
Update gain & dc offset
Diffstat:
4 files changed, 18 insertions(+), 62 deletions(-)
diff --git a/examples/plugins/dc-offset/dc-offset.cc b/examples/plugins/dc-offset/dc-offset.cc
@@ -96,14 +96,16 @@ namespace clap {
}
switch (ev->type) {
- case CLAP_EVENT_PARAM_SET:
- auto p = parameters_.getById(ev->param.param_id);
+ case CLAP_EVENT_PARAM_VALUE:
+ auto p = parameters_.getById(ev->param_value.param_id);
if (p)
- p->setInterpolationData(ev->param.val0,
- ev->param.val1,
- ev->param.mod0,
- ev->param.mod1,
- ev->param.distance);
+ p->setValue(ev->param_value.value);
+ break;
+
+ case CLAP_EVENT_PARAM_MOD:
+ auto p = parameters_.getById(ev->param_mod.param_id);
+ if (p)
+ p->setModulation(ev->param_mod.amount);
break;
}
}
diff --git a/examples/plugins/gain/gain.cc b/examples/plugins/gain/gain.cc
@@ -67,10 +67,6 @@ namespace clap {
audioOutputs_.push_back(info);
}
- bool Gain::activate(int sample_rate) noexcept {
- return true;
- }
-
void Gain::deactivate() noexcept { channelCount_ = 0; }
clap_process_status Gain::process(const clap_process *process) noexcept {
diff --git a/examples/plugins/gain/gain.hh b/examples/plugins/gain/gain.hh
@@ -16,7 +16,6 @@ namespace clap {
// clap_plugin
bool init() noexcept override;
void defineAudioPorts() noexcept;
- bool activate(int sample_rate) noexcept override;
void deactivate() noexcept override;
clap_process_status process(const clap_process *process) noexcept override;
diff --git a/examples/plugins/parameters.hh b/examples/plugins/parameters.hh
@@ -5,9 +5,9 @@
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/split_member.hpp>
-#include <boost/serialization/version.hpp>
-#include <boost/serialization/vector.hpp>
#include <boost/serialization/utility.hpp>
+#include <boost/serialization/vector.hpp>
+#include <boost/serialization/version.hpp>
#include <clap/all.h>
@@ -24,59 +24,19 @@ namespace clap {
const clap_param_info &info() const noexcept { return info_; }
void setDefaultValue() {
- setValue(info_.default_value, 0);
- }
-
- void setValue(double val, double mod) {
- value_ = val;
- modulation_ = mod;
-
- val0_ = val;
- val1_ = val;
- mod0_ = mod;
- mod1_ = mod;
- distance_ = 0;
- offset_ = 0;
+ value_ = info_.default_value;
+ modulation_ = 0;
}
- void setInterpolationData(
- double val0, double val1, double mod0, double mod1, uint32_t distance) noexcept {
- val0_ = val0;
- val1_ = val1;
- mod0_ = mod0;
- mod1_ = mod1;
- distance_ = distance;
- offset_ = 0;
-
- value_ = val0;
- modulation_ = mod0;
- }
+ void setValue(double val) { value_ = val; }
- void step(uint32_t n) noexcept {
- offset_ += n;
- if (offset_ >= n) {
- offset_ = n;
- value_ = val1_;
- modulation_ = mod1_;
- } else {
- const double x = static_cast<double>(offset_) / static_cast<double>(distance_);
- value_ = (val1_ + mod1_) * x + (val0_ + mod0_) * (1 - x);
- mod1_ = (mod1_)*x + (mod0_) * (1 - x);
- }
- }
+ void setModulation(double mod) { modulation_ = mod; }
private:
clap_param_info info_;
double value_;
double modulation_;
-
- double val0_ = 0;
- double val1_ = 0;
- double mod0_ = 0;
- double mod1_ = 0;
- uint32_t distance_ = 0;
- uint32_t offset_ = 0;
};
class Parameters {
@@ -109,15 +69,14 @@ namespace clap {
std::vector<std::pair<clap_id, double>> values;
ar >> values;
- for (auto & p : params_)
+ for (auto &p : params_)
p->setDefaultValue();
- for (auto &v : values)
- {
+ for (auto &v : values) {
auto *p = getById(v.first);
if (!p)
continue;
- p->setValue(v.second, 0);
+ p->setValue(v.second);
}
}