Converted droplets to use state checks

This commit is contained in:
Christian Colglazier 2022-02-27 10:30:25 -05:00
parent 8b989b071b
commit 03207e0b92
5 changed files with 37 additions and 37 deletions

View File

@ -110,7 +110,7 @@ ADDroplet::ADDroplet(DaisyPatch* m_patch,
ad[0].Init(Patch(),
sample_rate,
State());
if (m_state == DropletState::kFull) {
if (IsFull()) {
ad[1].Init(Patch(),
sample_rate,
State());
@ -131,7 +131,7 @@ void ADDroplet::Control() {
if (Patch()->encoder.Pressed()) {
if (Patch()->encoder.TimeHeldMs() < 10) {
ad[0].ToggleCurve();
if (GetState() == DropletState::kFull) {
if (IsFull()) {
ad[1].ToggleCurve();
}
}
@ -141,17 +141,17 @@ void ADDroplet::Control() {
void ADDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer out, size_t size) {
Patch()->ProcessAnalogControls();
for(size_t i = 0; i < size; i++) {
if (GetState() == DropletState::kRight) {
if (IsRight()) {
ad[0].Process(DacHandle::Channel::TWO, DaisyPatch::GATE_IN_2);
} else {
ad[0].Process(DacHandle::Channel::ONE, DaisyPatch::GATE_IN_1);
}
if (GetState() == DropletState::kFull) {
if (IsFull()) {
ad[1].Process(DacHandle::Channel::TWO, DaisyPatch::GATE_IN_2);
}
int env_sel = 0;
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) {
if(GetState() == DropletState::kFull && chn > 1) {
if(IsFull() && chn > 1) {
env_sel = 1;
}
out[chn][i] = in[chn][i] * ad[env_sel].GetSignal() *
@ -188,7 +188,7 @@ void ADDroplet::Draw() {
"Amp: " +
FloatToString(ad[0].GetAmp(), 2));
if (GetState() != DropletState::kFull) {
if (!IsFull()) {
if (ad[0].GetMenu()) {
DrawSolidRect(Patch(), GetScreenMin(), 30, GetScreenMin()+1, 49, true);
} else {
@ -211,7 +211,7 @@ void ADDroplet::UpdateStateCallback() {
ad[0].Init(Patch(),
sample_rate,
State());
if (GetState() == DropletState::kFull) {
if (IsFull()) {
ad[1].Init(Patch(),
sample_rate,
State());

View File

@ -74,7 +74,7 @@ void LadderFilterDroplet::UpdateStateCallback() {}
void LadderFilterDroplet::SetControls() {
AnalogControl filter_knob, res_knob;
if (GetState() == DropletState::kRight) {
if (IsRight()) {
filter_knob = Patch()->controls[Patch()->CTRL_3];
res_knob = Patch()->controls[Patch()->CTRL_4];
} else {

View File

@ -56,7 +56,7 @@ void LFODroplet::Control() {
Patch()->ProcessAnalogControls();
Patch()->encoder.Debounce();
lfo[0].UpdateWave(Patch()->encoder.Increment());
if (GetState() == DropletState::kFull) {
if (IsFull()) {
lfo[1].UpdateWave(Patch()->encoder.Increment());
}
}
@ -67,19 +67,19 @@ void LFODroplet::Process(AudioHandle::InputBuffer in,
Patch()->ProcessAnalogControls();
for(size_t i = 0; i < size; i++) {
if (GetState() == DropletState::kRight) {
if (IsRight()) {
lfo[0].Process(DacHandle::Channel::TWO);
} else {
lfo[0].Process(DacHandle::Channel::ONE);
}
if (GetState() == DropletState::kFull) {
if (IsFull()) {
lfo[1].Process(DacHandle::Channel::TWO);
}
}
}
void LFODroplet::Draw() {
if (GetState() == DropletState::kFull) {
if (IsFull()) {
WriteCenteredString(Patch(),
(GetScreenMax()-GetScreenMin())/2,
54,

View File

@ -20,7 +20,7 @@ void MixerDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffe
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) {
output += in[chn][i] * mix[chn].Process();
}
if (GetState() == DropletState::kFull) {
if (IsFull()) {
output *= .25f;
} else {
output *= .5f;

View File

@ -31,7 +31,7 @@ void VCODroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer
for (size_t i = 0; i < size; i++) {
// Read Knobs
freq = mtof(freqctrl.Process() + finectrl.Process());
if (GetState() == DropletState::kFull) {
if (IsFull()) {
if((size_t) wavectrl.Process() != last_wave_ctrl) {
AdjustWaveShape((size_t)wavectrl.Process()-last_wave_ctrl);
last_wave_ctrl = wavectrl.Process();
@ -53,7 +53,7 @@ void VCODroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer
void VCODroplet::Draw() {
SetWaveState(wave);
if (GetState() == DropletState::kFull) {
if (IsFull()) {
WriteCenteredString(Patch(),
(GetScreenMax()-GetScreenMin())/2,
54,
@ -127,28 +127,28 @@ void VCODroplet::UpdateStateCallback() {
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;
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);