File variablesawosc.h¶
File List > DaisySP > Source > Synthesis > variablesawosc.h
Go to the documentation of this file
Source Code¶
/*
Copyright (c) 2020 Electrosmith, Corp, Emilie Gillet
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
#pragma once
#ifndef DSY_VARISAWOSCILLATOR_H
#define DSY_VARISAWOSCILLATOR_H
#include <stdint.h>
#ifdef __cplusplus
namespace daisysp
{
class VariableSawOscillator
{
public:
VariableSawOscillator() {}
~VariableSawOscillator() {}
void Init(float sample_rate);
float Process();
void SetFreq(float frequency);
void SetPW(float pw);
void SetWaveshape(float waveshape);
private:
float ComputeNaiveSample(float phase,
float pw,
float slope_up,
float slope_down,
float triangle_amount,
float notch_amount);
float sample_rate_;
// Oscillator state.
float phase_;
float next_sample_;
float previous_pw_;
bool high_;
const float kVariableSawNotchDepth = 0.2f;
// For interpolation of parameters.
float frequency_;
float pw_;
float waveshape_;
};
} // namespace daisysp
#endif
#endif