diff --git a/src/droplets/vco_droplet.cpp b/src/droplets/vco_droplet.cpp index 0d4de3c..a5f53ae 100644 --- a/src/droplets/vco_droplet.cpp +++ b/src/droplets/vco_droplet.cpp @@ -5,7 +5,7 @@ VCODroplet::VCODroplet(DaisyPatch* m_patch, DropletState m_state) { UpdateState(m_state); patch = m_patch; - int num_waves = Oscillator::WAVE_LAST - 1; + int num_waves = Oscillator::WAVE_LAST; osc.Init(sample_rate); freqctrl.Init(patch->controls[patch->CTRL_1], 10.0, 110.0f, Parameter::LINEAR); @@ -46,4 +46,27 @@ void VCODroplet::Process(float** in, float** out, size_t size) { void VCODroplet::Draw() { DrawName(patch, "VCO"); + WriteString(*patch, 0, 54, Font_6x8, WaveToString(wavectrl.Process())); +} + +std::string VCODroplet::WaveToString(uint8_t wf) { + switch(wf){ + case Oscillator::WAVE_TRI: + return "Triangle"; + case Oscillator::WAVE_SQUARE: + return "Square"; + case Oscillator::WAVE_SIN: + return "Sine"; + case Oscillator::WAVE_SAW: + return "Saw"; + case Oscillator::WAVE_RAMP: + return "Ramp"; + case Oscillator::WAVE_POLYBLEP_TRI: + return "Poly Triangle"; + case Oscillator::WAVE_POLYBLEP_SQUARE: + return "Poly Square"; + case Oscillator::WAVE_POLYBLEP_SAW: + return "Poly Saw"; + } + return ""; } diff --git a/src/droplets/vco_droplet.h b/src/droplets/vco_droplet.h index e56d488..31d9452 100644 --- a/src/droplets/vco_droplet.h +++ b/src/droplets/vco_droplet.h @@ -16,6 +16,7 @@ class VCODroplet: public Droplet { private: Oscillator osc; Parameter freqctrl, wavectrl, ampctrl, finectrl; + std::string WaveToString(uint8_t); public: VCODroplet(DaisyPatch*, float, DropletState); void Control(); diff --git a/src/main.cpp b/src/main.cpp index acba650..9cca60c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -66,7 +66,6 @@ Droplet* GetDroplet() { return new VCODroplet(&patch, samplerate, DropletState::kFull); - break; case MenuState::kNoise: default: return new NoiseDroplet(&patch, diff --git a/src/main.h b/src/main.h index 7d44d6d..de68220 100644 --- a/src/main.h +++ b/src/main.h @@ -1,3 +1,8 @@ +#pragma once + +#ifndef CASCADE_MAIN_H_ +#define CASCADE_MAIN_H_ + #include "daisysp.h" #include "daisy_patch.h" @@ -14,3 +19,5 @@ void ProcessOled(); void ProcessOutputs(); static void AudioThrough(float **, float **, size_t); Droplet* GetDroplet(); + +#endif // CASCADE_MAIN_H_