mirror of
https://github.com/AquaMorph/Droplets.git
synced 2025-09-13 21:40:31 +00:00
Converted droplets to use state checks
This commit is contained in:
@@ -110,7 +110,7 @@ ADDroplet::ADDroplet(DaisyPatch* m_patch,
|
|||||||
ad[0].Init(Patch(),
|
ad[0].Init(Patch(),
|
||||||
sample_rate,
|
sample_rate,
|
||||||
State());
|
State());
|
||||||
if (m_state == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
ad[1].Init(Patch(),
|
ad[1].Init(Patch(),
|
||||||
sample_rate,
|
sample_rate,
|
||||||
State());
|
State());
|
||||||
@@ -131,7 +131,7 @@ void ADDroplet::Control() {
|
|||||||
if (Patch()->encoder.Pressed()) {
|
if (Patch()->encoder.Pressed()) {
|
||||||
if (Patch()->encoder.TimeHeldMs() < 10) {
|
if (Patch()->encoder.TimeHeldMs() < 10) {
|
||||||
ad[0].ToggleCurve();
|
ad[0].ToggleCurve();
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
ad[1].ToggleCurve();
|
ad[1].ToggleCurve();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -141,17 +141,17 @@ void ADDroplet::Control() {
|
|||||||
void ADDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer out, size_t size) {
|
void ADDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer out, size_t size) {
|
||||||
Patch()->ProcessAnalogControls();
|
Patch()->ProcessAnalogControls();
|
||||||
for(size_t i = 0; i < size; i++) {
|
for(size_t i = 0; i < size; i++) {
|
||||||
if (GetState() == DropletState::kRight) {
|
if (IsRight()) {
|
||||||
ad[0].Process(DacHandle::Channel::TWO, DaisyPatch::GATE_IN_2);
|
ad[0].Process(DacHandle::Channel::TWO, DaisyPatch::GATE_IN_2);
|
||||||
} else {
|
} else {
|
||||||
ad[0].Process(DacHandle::Channel::ONE, DaisyPatch::GATE_IN_1);
|
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);
|
ad[1].Process(DacHandle::Channel::TWO, DaisyPatch::GATE_IN_2);
|
||||||
}
|
}
|
||||||
int env_sel = 0;
|
int env_sel = 0;
|
||||||
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) {
|
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) {
|
||||||
if(GetState() == DropletState::kFull && chn > 1) {
|
if(IsFull() && chn > 1) {
|
||||||
env_sel = 1;
|
env_sel = 1;
|
||||||
}
|
}
|
||||||
out[chn][i] = in[chn][i] * ad[env_sel].GetSignal() *
|
out[chn][i] = in[chn][i] * ad[env_sel].GetSignal() *
|
||||||
@@ -188,7 +188,7 @@ void ADDroplet::Draw() {
|
|||||||
"Amp: " +
|
"Amp: " +
|
||||||
FloatToString(ad[0].GetAmp(), 2));
|
FloatToString(ad[0].GetAmp(), 2));
|
||||||
|
|
||||||
if (GetState() != DropletState::kFull) {
|
if (!IsFull()) {
|
||||||
if (ad[0].GetMenu()) {
|
if (ad[0].GetMenu()) {
|
||||||
DrawSolidRect(Patch(), GetScreenMin(), 30, GetScreenMin()+1, 49, true);
|
DrawSolidRect(Patch(), GetScreenMin(), 30, GetScreenMin()+1, 49, true);
|
||||||
} else {
|
} else {
|
||||||
@@ -211,7 +211,7 @@ void ADDroplet::UpdateStateCallback() {
|
|||||||
ad[0].Init(Patch(),
|
ad[0].Init(Patch(),
|
||||||
sample_rate,
|
sample_rate,
|
||||||
State());
|
State());
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
ad[1].Init(Patch(),
|
ad[1].Init(Patch(),
|
||||||
sample_rate,
|
sample_rate,
|
||||||
State());
|
State());
|
||||||
|
@@ -74,7 +74,7 @@ void LadderFilterDroplet::UpdateStateCallback() {}
|
|||||||
|
|
||||||
void LadderFilterDroplet::SetControls() {
|
void LadderFilterDroplet::SetControls() {
|
||||||
AnalogControl filter_knob, res_knob;
|
AnalogControl filter_knob, res_knob;
|
||||||
if (GetState() == DropletState::kRight) {
|
if (IsRight()) {
|
||||||
filter_knob = Patch()->controls[Patch()->CTRL_3];
|
filter_knob = Patch()->controls[Patch()->CTRL_3];
|
||||||
res_knob = Patch()->controls[Patch()->CTRL_4];
|
res_knob = Patch()->controls[Patch()->CTRL_4];
|
||||||
} else {
|
} else {
|
||||||
|
@@ -56,7 +56,7 @@ void LFODroplet::Control() {
|
|||||||
Patch()->ProcessAnalogControls();
|
Patch()->ProcessAnalogControls();
|
||||||
Patch()->encoder.Debounce();
|
Patch()->encoder.Debounce();
|
||||||
lfo[0].UpdateWave(Patch()->encoder.Increment());
|
lfo[0].UpdateWave(Patch()->encoder.Increment());
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
lfo[1].UpdateWave(Patch()->encoder.Increment());
|
lfo[1].UpdateWave(Patch()->encoder.Increment());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,19 +67,19 @@ void LFODroplet::Process(AudioHandle::InputBuffer in,
|
|||||||
Patch()->ProcessAnalogControls();
|
Patch()->ProcessAnalogControls();
|
||||||
|
|
||||||
for(size_t i = 0; i < size; i++) {
|
for(size_t i = 0; i < size; i++) {
|
||||||
if (GetState() == DropletState::kRight) {
|
if (IsRight()) {
|
||||||
lfo[0].Process(DacHandle::Channel::TWO);
|
lfo[0].Process(DacHandle::Channel::TWO);
|
||||||
} else {
|
} else {
|
||||||
lfo[0].Process(DacHandle::Channel::ONE);
|
lfo[0].Process(DacHandle::Channel::ONE);
|
||||||
}
|
}
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
lfo[1].Process(DacHandle::Channel::TWO);
|
lfo[1].Process(DacHandle::Channel::TWO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LFODroplet::Draw() {
|
void LFODroplet::Draw() {
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
WriteCenteredString(Patch(),
|
WriteCenteredString(Patch(),
|
||||||
(GetScreenMax()-GetScreenMin())/2,
|
(GetScreenMax()-GetScreenMin())/2,
|
||||||
54,
|
54,
|
||||||
|
@@ -20,7 +20,7 @@ void MixerDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffe
|
|||||||
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) {
|
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) {
|
||||||
output += in[chn][i] * mix[chn].Process();
|
output += in[chn][i] * mix[chn].Process();
|
||||||
}
|
}
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
output *= .25f;
|
output *= .25f;
|
||||||
} else {
|
} else {
|
||||||
output *= .5f;
|
output *= .5f;
|
||||||
|
@@ -31,7 +31,7 @@ void VCODroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer
|
|||||||
for (size_t i = 0; i < size; i++) {
|
for (size_t i = 0; i < size; i++) {
|
||||||
// Read Knobs
|
// Read Knobs
|
||||||
freq = mtof(freqctrl.Process() + finectrl.Process());
|
freq = mtof(freqctrl.Process() + finectrl.Process());
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
if((size_t) wavectrl.Process() != last_wave_ctrl) {
|
if((size_t) wavectrl.Process() != last_wave_ctrl) {
|
||||||
AdjustWaveShape((size_t)wavectrl.Process()-last_wave_ctrl);
|
AdjustWaveShape((size_t)wavectrl.Process()-last_wave_ctrl);
|
||||||
last_wave_ctrl = wavectrl.Process();
|
last_wave_ctrl = wavectrl.Process();
|
||||||
@@ -53,7 +53,7 @@ void VCODroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer
|
|||||||
|
|
||||||
void VCODroplet::Draw() {
|
void VCODroplet::Draw() {
|
||||||
SetWaveState(wave);
|
SetWaveState(wave);
|
||||||
if (GetState() == DropletState::kFull) {
|
if (IsFull()) {
|
||||||
WriteCenteredString(Patch(),
|
WriteCenteredString(Patch(),
|
||||||
(GetScreenMax()-GetScreenMin())/2,
|
(GetScreenMax()-GetScreenMin())/2,
|
||||||
54,
|
54,
|
||||||
@@ -127,28 +127,28 @@ void VCODroplet::UpdateStateCallback() {
|
|||||||
void VCODroplet::SetControls() {
|
void VCODroplet::SetControls() {
|
||||||
DaisyPatch::Ctrl freq, fine;
|
DaisyPatch::Ctrl freq, fine;
|
||||||
switch (GetState()){
|
switch (GetState()){
|
||||||
default:
|
default:
|
||||||
case DropletState::kFull:
|
case DropletState::kFull:
|
||||||
wavectrl.Init(Patch()->controls[Patch()->CTRL_3],
|
wavectrl.Init(Patch()->controls[Patch()->CTRL_3],
|
||||||
0.0,
|
0.0,
|
||||||
Oscillator::WAVE_LAST,
|
Oscillator::WAVE_LAST,
|
||||||
Parameter::LINEAR);
|
Parameter::LINEAR);
|
||||||
ampctrl.Init(Patch()->controls[Patch()->CTRL_4],
|
ampctrl.Init(Patch()->controls[Patch()->CTRL_4],
|
||||||
0.0,
|
0.0,
|
||||||
0.5f,
|
0.5f,
|
||||||
Parameter::LINEAR);
|
Parameter::LINEAR);
|
||||||
freq = Patch()->CTRL_1;
|
freq = Patch()->CTRL_1;
|
||||||
fine = Patch()->CTRL_2;
|
fine = Patch()->CTRL_2;
|
||||||
SetWaveShape(wavectrl.Process());
|
SetWaveShape(wavectrl.Process());
|
||||||
break;
|
break;
|
||||||
case DropletState::kLeft:
|
case DropletState::kLeft:
|
||||||
freq = Patch()->CTRL_1;
|
freq = Patch()->CTRL_1;
|
||||||
fine = Patch()->CTRL_2;
|
fine = Patch()->CTRL_2;
|
||||||
break;
|
break;
|
||||||
case DropletState::kRight:
|
case DropletState::kRight:
|
||||||
freq = Patch()->CTRL_3;
|
freq = Patch()->CTRL_3;
|
||||||
fine = Patch()->CTRL_4;
|
fine = Patch()->CTRL_4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
freqctrl.Init(Patch()->controls[freq], 10.0,
|
freqctrl.Init(Patch()->controls[freq], 10.0,
|
||||||
110.0f, Parameter::LINEAR);
|
110.0f, Parameter::LINEAR);
|
||||||
|
Reference in New Issue
Block a user