#ifndef __PolyBlepOscillator_h__
#define __PolyBlepOscillator_h__
#include "FloatArray.h"
#include "polyblep/dsp/oscillator.h"
#include "Oscillator.h"
class PolyBlepOscillator : public Oscillator {
private:
float mul;
stmlib::Oscillator osc;
float nfreq, shape, pw;
public:
PolyBlepOscillator(float sr=48000);
PolyBlepOscillator(float freq, float sr);
void setSampleRate(float sr);
float getSampleRate();
void setFrequency(float freq);
float getFrequency();
void setShape(float value);
float getShape();
void setPulseWidth(float value);
float getPulseWidth();
void setPhase(float phase);
float getPhase();
void reset(){
setPhase(0);
}
float generate();
float generate(float fm);
void generate(FloatArray output);
void generate(FloatArray output, FloatArray fm);
void getSamples(FloatArray output, FloatArray freq);
static PolyBlepOscillator* create(float sr);
static PolyBlepOscillator* create(float freq, float sr);
static void destroy(PolyBlepOscillator* osc);
};
#endif