1 #ifndef CHIRP_OSCILLATOR_H
2 #define CHIRP_OSCILLATOR_H
15 : sr(sr), phase(0), incr(0), basefreq(0), rate(0) {}
17 incr = freq*2*
M_PI/sr;
38 incr = basefreq*2*
M_PI/sr;
51 float sample = sinf(phase);
59 float sample = sinf(phase);
void setSampleRate(float sample_rate)
Set oscillator sample rate.
static ChirpOscillator * create(float sr)
void setFrequency(float freq)
Set oscillator frequency in Hertz.
float getFrequency()
Get oscillator frequency in Hertz.
float generate()
Produce the next consecutive sample.
float getPhase()
Get current oscillator phase in radians.
float generate(float fm)
Produce a sample with frequency modulation.
static void destroy(ChirpOscillator *osc)
void reset()
Reset oscillator (typically resets phase)
void setPhase(float phase)
Set current oscillator phase in radians.
void setRate(float r)
Set rate of change: positive for ascending chirp, negative for descending.
ChirpOscillator(float sr=48000)
An Oscillator is a SignalGenerator that operates at a given frequency and that can be frequency modul...