mirror of
				https://github.com/AquaMorph/Droplets.git
				synced 2025-10-31 08:23:18 +00:00 
			
		
		
		
	AD display text
This commit is contained in:
		| @@ -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"); | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user