Fixed LFO merging

This commit is contained in:
Christian Colglazier 2022-01-22 16:07:49 -05:00
parent 8618675c2d
commit e0294c97c7
2 changed files with 41 additions and 28 deletions

View File

@ -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;
}
}

View File

@ -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_