1 #ifndef __COMPLEX_OSCILLATOR_H__
2 #define __COMPLEX_OSCILLATOR_H__
53 for(
size_t i=0; i<output.
getSize(); ++i)
59 template<
typename OscillatorClass>
A complex oscillator is a MultiSignalGenerator with 2 channels that operates at a given frequency and...
ComplexOscillator()=default
virtual void setSampleRate(float value)
Set oscillator sample rate.
virtual float getPhase()=0
Get current oscillator phase in radians.
virtual void setFrequency(float value)=0
Set oscillator frequency in Hertz.
virtual void setPhase(float phase)=0
Set current oscillator phase in radians.
virtual ~ComplexOscillator()=default
virtual float getFrequency()=0
Get oscillator frequency in Hertz.
virtual ComplexFloat generate()=0
Produce the next consecutive sample.
virtual void reset()=0
Reset oscillator (typically resets phase)
virtual void generate(ComplexFloatArray output, FloatArray fm)
Produce a block of samples with frequency modulation.
virtual ComplexFloat generate(float fm)=0
Produce a sample with frequency modulation.
Base class for stereo signal generators such as Oscillators.
virtual ComplexFloat generate()=0
Produce the next consecutive sample.
This class contains useful methods for manipulating arrays of floats.
A structure defining a floating point complex number as two members of type float.