From 2bfd06acf2bbf0a874ec617a29f4189436f3a90d Mon Sep 17 00:00:00 2001 From: zetaPRIME Date: Fri, 25 Mar 2022 08:15:25 -0400 Subject: [PATCH] AM mode for ringmod effect --- xybrid/nodes/effect/ringmod.cpp | 6 +++++- xybrid/nodes/effect/ringmod.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/xybrid/nodes/effect/ringmod.cpp b/xybrid/nodes/effect/ringmod.cpp index 68755d1..ff6f24f 100644 --- a/xybrid/nodes/effect/ringmod.cpp +++ b/xybrid/nodes/effect/ringmod.cpp @@ -58,6 +58,7 @@ void RingMod::process() { for (size_t f = 0; f < ts; f++) { AudioFrame fc = (*c)[f]; AudioFrame fm = (*m)[f]; + if (am) fm = {std::abs(fm.l), std::abs(fm.r)}; (*out)[f] = (fc*fm * mix) + (fc * (1.0-mix)); } @@ -65,16 +66,19 @@ void RingMod::process() { void RingMod::saveData(QCborMap& m) const { m[qs("mix")] = mix; + m[qs("am")] = am; } void RingMod::loadData(const QCborMap& m) { mix = m.value("mix").toDouble(mix); + am = m.value("am").toBool(am); } void RingMod::onGadgetCreated() { if (!obj) return; auto l = new LayoutGadget(obj); - //l->setMetrics(12); + l->setMetrics(3, 4); KnobGadget::autoPercent(l, mix)->setLabel(qs("Mix"))->setDefault(1.0); + (new ToggleGadget(l))->bind(am)->setToolTip("AM mode", {1.0, 0.0})->setColor({127, 255, 127}); } diff --git a/xybrid/nodes/effect/ringmod.h b/xybrid/nodes/effect/ringmod.h index 7b69854..ed3dab0 100644 --- a/xybrid/nodes/effect/ringmod.h +++ b/xybrid/nodes/effect/ringmod.h @@ -5,6 +5,7 @@ namespace Xybrid::Effects { class RingMod : public Data::Node { double mix = 1.0; + bool am = false; public: RingMod();