Documentation for droplets

This commit is contained in:
Christian Colglazier 2020-09-26 22:28:29 -04:00
parent 6fb1d13eb5
commit a349a0d793
3 changed files with 183 additions and 10 deletions

View File

@ -26,23 +26,128 @@ private:
size_t chn_min = 0; size_t chn_min = 0;
size_t chn_max = 4; size_t chn_max = 4;
public: public:
Droplet(DaisyPatch*, DropletState); /*
* Constructor for a droplet which is a mode for either half or full
* control for the daisy patch.
*
* @param m_patch pointer to patch
* @param m_state droplet position
*/
Droplet(DaisyPatch* m_patch, DropletState m_state);
/*
* Destructor for a droplet.
*/
virtual ~Droplet() {}; virtual ~Droplet() {};
/*
* Processes user controls and inputs.
*/
virtual void Control()=0; virtual void Control()=0;
virtual void Process(float**, float**, size_t)=0;
/*
* Processes audio input and outputs.
*
* @param in the audio inputs for the patch
* @param out the audio outputs for the patch
* @param size the number of inputs and outputs
*/
virtual void Process(float** in,
float** out,
size_t size)=0;
/*
* Processes information to be displayed on the screen.
*/
virtual void Draw()=0; virtual void Draw()=0;
/*
* Returns patch
*
* @return pointer to patch
*/
DaisyPatch* Patch(); DaisyPatch* Patch();
/*
* Returns the size of the droplet.
*
* @return size of droplet
*/
DropletState GetState(); DropletState GetState();
/*
* Returns the height of the title bar of the droplet.
*
* @return height of title bar
*/
int GetTitleHeight(); int GetTitleHeight();
/*
* Returns the minimum screen position based on droplet size.
*
* @return droplet minimum screen position
*/
int GetScreenMin(); int GetScreenMin();
/*
* Returns the maximum screen position based on droplet size.
*
* @return droplet maximum screen position
*/
int GetScreenMax(); int GetScreenMax();
/*
* Returns the minimum channel position based on droplet size.
*
* @return droplet minimum channel position
*/
size_t GetChannelMin(); size_t GetChannelMin();
/*
* Returns the maximum channel position based on droplet size.
*
* @return droplet maximum channel position
*/
size_t GetChannelMax(); size_t GetChannelMax();
void DrawName(std::string);
void UpdateState(DropletState); /*
* Draws droplet name on the title bar.
*
* @param name droplet position
*/
void DrawName(std::string name);
/*
* Changes droplet position.
*
* @param m_state droplet
*/
void UpdateState(DropletState m_state);
/*
* Updates animation clock.
*/
void AnimationInc(); void AnimationInc();
void SetAnimationRate(int);
/*
* Sets animation refresh rate
*
* @param rate display refrash rate
*/
void SetAnimationRate(int rate);
/*
* Returns a count for total amount of animation frames.
*
* @return animation count
*/
int GetAnimationCount(); int GetAnimationCount();
/*
* Returns if display needs a refresh.
*
* @return display in need of update
*/
bool NeedUpdate(); bool NeedUpdate();
}; };

View File

@ -13,9 +13,33 @@ class NoiseDroplet: public Droplet {
private: private:
daisysp::WhiteNoise noise; daisysp::WhiteNoise noise;
public: public:
/*
* Constructor for a droplet which outputs noise.
*
* @param m_patch pointer to patch
* @param m_state droplet position
*/
NoiseDroplet(DaisyPatch*, DropletState); NoiseDroplet(DaisyPatch*, DropletState);
/*
* Processes user controls and inputs.
*/
void Control(); void Control();
void Process(float**, float**, size_t);
/*
* Processes audio input and outputs.
*
* @param in the audio inputs for the patch
* @param out the audio outputs for the patch
* @param size the number of inputs and outputs
*/
void Process(float** in,
float** out,
size_t size);
/*
* Processes information to be shown on the display.
*/
void Draw(); void Draw();
}; };

View File

@ -19,15 +19,59 @@ class VCODroplet: public Droplet {
private: private:
Oscillator osc; Oscillator osc;
Parameter freqctrl, wavectrl, ampctrl, finectrl; Parameter freqctrl, wavectrl, ampctrl, finectrl;
std::string WaveToString(uint8_t);
void SetWaveState(uint8_t);
const double pi = std::acos(-1); const double pi = std::acos(-1);
Wave* wave = new Wave(WaveShape::kTriangle, 21, GetTitleHeight()); Wave* wave = new Wave(WaveShape::kTriangle, 21, GetTitleHeight());
/*
* Converts oscilator to name of wave shape.
*
* @param wf wave shape
* @return name of wave shap
*/
std::string WaveToString(uint8_t wf);
/*
* Sets the vco wave shap to display on screen.
*
* @param wf wave shape
*/
void SetWaveState(uint8_t wf);
public: public:
VCODroplet(DaisyPatch*, DropletState, float); /*
* Constructor for voltage control oscillator droplet.
*
* @param m_patch pointer to patch
* @param m_state droplet position
* @param sample_rate audio sample rate
*/
VCODroplet(DaisyPatch* m_patch,
DropletState m_state,
float sample_rate);
/*
* Destructor for vco droplet.
*/
~VCODroplet(); ~VCODroplet();
/*
* Processes user controls and inputs.
*/
void Control(); void Control();
void Process(float**, float**, size_t);
/*
* Processes audio input and outputs.
*
* @param in the audio inputs for the patch
* @param out the audio outputs for the patch
* @param size the number of inputs and outputs
*/
void Process(float** in,
float** out,
size_t size);
/*
* Processes information to be shown on the display.
*/
void Draw(); void Draw();
}; };