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);
attack_param.Init(attack_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,
@ -19,8 +20,10 @@ void AD::Process(DacHandle::Channel chn,
env.Trigger();
}
env.SetTime(ADENV_SEG_ATTACK, attack_param.Process());
env.SetTime(ADENV_SEG_DECAY, decay_param.Process());
attack = attack_param.Process();
decay = decay_param.Process();
env.SetTime(ADENV_SEG_ATTACK, attack);
env.SetTime(ADENV_SEG_DECAY, decay);
sig = env.Process();
patch->seed.dac.WriteValue(chn,
@ -31,6 +34,18 @@ float AD::GetSignal() {
return sig;
}
float AD::GetAttack() {
return attack;
}
float AD::GetDecay() {
return decay;
}
float AD::GetCurve() {
return curve;
}
ADDroplet::ADDroplet(DaisyPatch* m_patch,
DropletState m_state,
float sample_rate) :
@ -90,5 +105,48 @@ void ADDroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer o
}
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");
}

View File

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