AD display text

This commit is contained in:
Christian Colglazier 2021-11-07 21:30:27 -05:00
parent 2e824d26b8
commit 1509e8a327
2 changed files with 67 additions and 5 deletions

View File

@ -11,6 +11,7 @@ void AD::Init(DaisyPatch* m_patch,
env.SetCurve(0.0f); env.SetCurve(0.0f);
attack_param.Init(attack_knob, .01f, 3.0f, Parameter::EXPONENTIAL); attack_param.Init(attack_knob, .01f, 3.0f, Parameter::EXPONENTIAL);
decay_param.Init(decay_knob, .01f, 3.0f, Parameter::EXPONENTIAL); decay_param.Init(decay_knob, .01f, 3.0f, Parameter::EXPONENTIAL);
curve_param.Init(attack_knob, -10.f, 10.0f, Parameter::LINEAR);
} }
void AD::Process(DacHandle::Channel chn, void AD::Process(DacHandle::Channel chn,
@ -19,8 +20,10 @@ void AD::Process(DacHandle::Channel chn,
env.Trigger(); env.Trigger();
} }
env.SetTime(ADENV_SEG_ATTACK, attack_param.Process()); attack = attack_param.Process();
env.SetTime(ADENV_SEG_DECAY, decay_param.Process()); decay = decay_param.Process();
env.SetTime(ADENV_SEG_ATTACK, attack);
env.SetTime(ADENV_SEG_DECAY, decay);
sig = env.Process(); sig = env.Process();
patch->seed.dac.WriteValue(chn, patch->seed.dac.WriteValue(chn,
@ -31,6 +34,18 @@ float AD::GetSignal() {
return sig; return sig;
} }
float AD::GetAttack() {
return attack;
}
float AD::GetDecay() {
return decay;
}
float AD::GetCurve() {
return curve;
}
ADDroplet::ADDroplet(DaisyPatch* m_patch, ADDroplet::ADDroplet(DaisyPatch* m_patch,
DropletState m_state, DropletState m_state,
float sample_rate) : float sample_rate) :
@ -90,5 +105,48 @@ void ADDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer o
} }
void ADDroplet::Draw() { void ADDroplet::Draw() {
WriteString(Patch(),
GetScreenMin(),
10,
Font_6x8,
"A: " +
std::to_string(static_cast<uint32_t>(1000*ad[0].GetAttack())) +
"ms");
WriteString(Patch(),
GetScreenMin(),
20,
Font_6x8,
"D: " +
std::to_string(static_cast<uint32_t>(1000*ad[0].GetDecay())) +
"ms");
WriteString(Patch(),
GetScreenMin(),
30,
Font_6x8,
"C: " +
std::to_string(static_cast<uint32_t>(1000*ad[0].GetCurve())));
if(GetState() == DropletState::kFull) {
int mid = (GetScreenMax() - GetScreenMin())/2;
WriteString(Patch(),
mid,
10,
Font_6x8,
"A: " +
std::to_string(static_cast<uint32_t>(1000*ad[1].GetAttack())) +
"ms");
WriteString(Patch(),
mid,
20,
Font_6x8,
"D: " +
std::to_string(static_cast<uint32_t>(1000*ad[1].GetDecay())) +
"ms");
WriteString(Patch(),
mid,
30,
Font_6x8,
"C: " +
std::to_string(static_cast<uint32_t>(1000*ad[1].GetCurve())));
}
DrawName("AD"); DrawName("AD");
} }

View File

@ -15,6 +15,7 @@ using namespace daisysp;
class AD { class AD {
private: private:
AdEnv env; AdEnv env;
float attack, decay, curve = 0;
Parameter attack_param; Parameter attack_param;
Parameter decay_param; Parameter decay_param;
Parameter curve_param; Parameter curve_param;
@ -22,13 +23,16 @@ private:
DaisyPatch* patch; DaisyPatch* patch;
public: public:
void Init(DaisyPatch* m_patch, void Init(DaisyPatch* m_patch,
float samplerate, float sample_rate,
AnalogControl attackKnob, AnalogControl attack_knob,
AnalogControl decaynob); AnalogControl decay_knob);
void Process(DacHandle::Channel chn, DaisyPatch::GateInput gate); void Process(DacHandle::Channel chn, DaisyPatch::GateInput gate);
float GetSignal(); float GetSignal();
float GetAttack();
float GetDecay();
float GetCurve();
}; };
class ADDroplet: public Droplet { class ADDroplet: public Droplet {