mirror of
https://github.com/AquaMorph/Droplets.git
synced 2025-04-29 17:35:33 +00:00
Fixe VCO merging
This commit is contained in:
parent
7ce6e2781c
commit
618ada7a3c
@ -5,37 +5,12 @@ VCODroplet::VCODroplet(DaisyPatch* m_patch,
|
|||||||
float sample_rate) :
|
float sample_rate) :
|
||||||
Droplet(m_patch,
|
Droplet(m_patch,
|
||||||
m_state) {
|
m_state) {
|
||||||
int num_waves = Oscillator::WAVE_LAST;
|
|
||||||
SetAnimationRate(10);
|
SetAnimationRate(10);
|
||||||
osc.Init(sample_rate);
|
osc.Init(sample_rate);
|
||||||
|
|
||||||
wave = Oscillator::WAVE_SAW;
|
wave = Oscillator::WAVE_SAW;
|
||||||
|
|
||||||
DaisyPatch::Ctrl freq, fine;
|
SetControls();
|
||||||
switch (GetState()){
|
|
||||||
default:
|
|
||||||
case DropletState::kFull:
|
|
||||||
wavectrl.Init(Patch()->controls[Patch()->CTRL_3], 0.0,
|
|
||||||
num_waves, Parameter::LINEAR);
|
|
||||||
ampctrl.Init(Patch()->controls[Patch()->CTRL_4], 0.0,
|
|
||||||
0.5f, Parameter::LINEAR);
|
|
||||||
freq = Patch()->CTRL_1;
|
|
||||||
fine = Patch()->CTRL_2;
|
|
||||||
SetWaveShape(wavectrl.Process());
|
|
||||||
break;
|
|
||||||
case DropletState::kLeft:
|
|
||||||
freq = Patch()->CTRL_1;
|
|
||||||
fine = Patch()->CTRL_2;
|
|
||||||
break;
|
|
||||||
case DropletState::kRight:
|
|
||||||
freq = Patch()->CTRL_3;
|
|
||||||
fine = Patch()->CTRL_4;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
freqctrl.Init(Patch()->controls[freq], 10.0,
|
|
||||||
110.0f, Parameter::LINEAR);
|
|
||||||
finectrl.Init(Patch()->controls[fine], 0.f,
|
|
||||||
7.f, Parameter::LINEAR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VCODroplet::~VCODroplet() {
|
VCODroplet::~VCODroplet() {
|
||||||
@ -145,4 +120,38 @@ void VCODroplet::SetWaveShape(int ws) {
|
|||||||
last_wave_ctrl = ws;
|
last_wave_ctrl = ws;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VCODroplet::UpdateStateCallback() {}
|
void VCODroplet::UpdateStateCallback() {
|
||||||
|
SetControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VCODroplet::SetControls() {
|
||||||
|
DaisyPatch::Ctrl freq, fine;
|
||||||
|
switch (GetState()){
|
||||||
|
default:
|
||||||
|
case DropletState::kFull:
|
||||||
|
wavectrl.Init(Patch()->controls[Patch()->CTRL_3],
|
||||||
|
0.0,
|
||||||
|
Oscillator::WAVE_LAST,
|
||||||
|
Parameter::LINEAR);
|
||||||
|
ampctrl.Init(Patch()->controls[Patch()->CTRL_4],
|
||||||
|
0.0,
|
||||||
|
0.5f,
|
||||||
|
Parameter::LINEAR);
|
||||||
|
freq = Patch()->CTRL_1;
|
||||||
|
fine = Patch()->CTRL_2;
|
||||||
|
SetWaveShape(wavectrl.Process());
|
||||||
|
break;
|
||||||
|
case DropletState::kLeft:
|
||||||
|
freq = Patch()->CTRL_1;
|
||||||
|
fine = Patch()->CTRL_2;
|
||||||
|
break;
|
||||||
|
case DropletState::kRight:
|
||||||
|
freq = Patch()->CTRL_3;
|
||||||
|
fine = Patch()->CTRL_4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
freqctrl.Init(Patch()->controls[freq], 10.0,
|
||||||
|
110.0f, Parameter::LINEAR);
|
||||||
|
finectrl.Init(Patch()->controls[fine], 0.f,
|
||||||
|
7.f, Parameter::LINEAR);
|
||||||
|
}
|
||||||
|
@ -87,6 +87,11 @@ public:
|
|||||||
* @param ws wave shape
|
* @param ws wave shape
|
||||||
*/
|
*/
|
||||||
void SetWaveShape(int ws);
|
void SetWaveShape(int ws);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set up the controls for the droplet.
|
||||||
|
*/
|
||||||
|
void SetControls();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DROPLETS_VCO_DROPLET_H_
|
#endif // DROPLETS_VCO_DROPLET_H_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user