clap

CLAP Audio Plugin API
Log | Files | Refs | README | LICENSE

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:
Mexamples/plugins/dc-offset/dc-offset.cc | 16+++++++++-------
Mexamples/plugins/gain/gain.cc | 4----
Mexamples/plugins/gain/gain.hh | 1-
Mexamples/plugins/parameters.hh | 59+++++++++--------------------------------------------------
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); } }