From e0294c97c7142374e53496fdaba028bbaec61ad2 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Sat, 22 Jan 2022 16:07:49 -0500 Subject: [PATCH] Fixed LFO merging --- src/droplets/lfo_droplet.cpp | 63 ++++++++++++++++++++---------------- src/droplets/lfo_droplet.h | 6 ++++ 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/src/droplets/lfo_droplet.cpp b/src/droplets/lfo_droplet.cpp index cb7bec2..586c16b 100644 --- a/src/droplets/lfo_droplet.cpp +++ b/src/droplets/lfo_droplet.cpp @@ -34,37 +34,13 @@ float LFO::GetSignal() { LFODroplet::LFODroplet(DaisyPatch* m_patch, DropletState m_state, - float sample_rate) : + float m_sample_rate) : Droplet(m_patch, m_state) { + sample_rate = m_sample_rate; SetAnimationRate(5); CreateTitleGraph(); - - switch (GetState()) { - default: - case DropletState::kFull: - lfo[0].Init(Patch(), - sample_rate, - Patch()->controls[Patch()->CTRL_1], - Patch()->controls[Patch()->CTRL_2]); - lfo[1].Init(Patch(), - sample_rate, - Patch()->controls[Patch()->CTRL_3], - Patch()->controls[Patch()->CTRL_4]); - break; - case DropletState::kLeft: - lfo[0].Init(Patch(), - sample_rate, - Patch()->controls[Patch()->CTRL_1], - Patch()->controls[Patch()->CTRL_2]); - break; - case DropletState::kRight: - lfo[0].Init(Patch(), - sample_rate, - Patch()->controls[Patch()->CTRL_3], - Patch()->controls[Patch()->CTRL_4]); - break; - } + SetControls(); } LFODroplet::~LFODroplet() { @@ -85,7 +61,9 @@ void LFODroplet::Control() { } } -void LFODroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer out, size_t size) { +void LFODroplet::Process(AudioHandle::InputBuffer in, + AudioHandle::OutputBuffer out, + size_t size) { Patch()->ProcessAnalogControls(); for(size_t i = 0; i < size; i++) { @@ -130,4 +108,33 @@ void LFODroplet::Draw() { void LFODroplet::UpdateStateCallback() { delete title_graph; CreateTitleGraph(); + SetControls(); +} + +void LFODroplet::SetControls() { + switch (GetState()) { + default: + case DropletState::kFull: + lfo[0].Init(Patch(), + sample_rate, + Patch()->controls[Patch()->CTRL_1], + Patch()->controls[Patch()->CTRL_2]); + lfo[1].Init(Patch(), + sample_rate, + Patch()->controls[Patch()->CTRL_3], + Patch()->controls[Patch()->CTRL_4]); + break; + case DropletState::kLeft: + lfo[0].Init(Patch(), + sample_rate, + Patch()->controls[Patch()->CTRL_1], + Patch()->controls[Patch()->CTRL_2]); + break; + case DropletState::kRight: + lfo[0].Init(Patch(), + sample_rate, + Patch()->controls[Patch()->CTRL_3], + Patch()->controls[Patch()->CTRL_4]); + break; + } } diff --git a/src/droplets/lfo_droplet.h b/src/droplets/lfo_droplet.h index 15fa029..d37770c 100644 --- a/src/droplets/lfo_droplet.h +++ b/src/droplets/lfo_droplet.h @@ -72,6 +72,7 @@ class LFODroplet: public Droplet { private: LFO lfo[2]; Graph* title_graph; + float sample_rate; /* * Create a new graph for the title bar. @@ -120,6 +121,11 @@ public: * Runs when droplet state is updated. */ void UpdateStateCallback(); + + /* + * Set up the controls for the droplet. + */ + void SetControls(); }; #endif // DROPLETS_LFO_DROPLET_H_