OpenWareLaboratory
|
An oscillator similar to QuadratureSineOscillator class that also includes feedback control. More...
Public Member Functions | |
Sample | generate () |
Produce the next consecutive sample. More... | |
void | generate (ComplexFloatArray output) |
void | generate (ComplexFloatArray output, FloatArray fm) |
Sample | generate (float fm) |
Produce a sample with frequency modulation. More... | |
virtual void | generate (FloatArray output) |
Produce a block of samples. More... | |
virtual void | generate (FloatArray output, FloatArray fm) |
Produce a block of samples with frequency modulation. More... | |
ComplexFloat | getFeedback () const |
float | getFrequency () |
Get oscillator frequency in Hertz. More... | |
float | getNextSample () |
float | getNextSample (float fm) |
float | getPhase () |
Get current oscillator phase in radians. More... | |
ComplexFloat | getSample () |
float | getSampleRate () |
void | getSamples (FloatArray output) |
void | getSamples (FloatArray output, FloatArray fm) |
void | reset () |
Reset oscillator (typically resets phase) More... | |
void | setFeedback (ComplexFloat feedback) |
void | setFrequency (float freq) |
Set oscillator frequency in Hertz. More... | |
void | setPhase (float ph) |
Set current oscillator phase in radians. More... | |
void | setSampleRate (float sr) |
Set oscillator sample rate. More... | |
Static Public Member Functions | |
static T * | create (float sr) |
static void | destroy (T *osc) |
Static Public Attributes | |
static constexpr float | begin_phase = 0 |
static constexpr float | end_phase = 2 * M_PI |
Static Protected Member Functions | |
static float | polyblep (float t, float dt) |
Calculate poly blep antialiasing compensation on normalised (to range [0, 1]) phase and phase increment (angular rate) values. More... | |
Protected Attributes | |
ComplexFloat | feedback = 0 |
float | incr = 0 |
ComplexFloat | last_sample = 0 |
float | mul = 1 |
float | phase = 0 |
An oscillator similar to QuadratureSineOscillator class that also includes feedback control.
Feedback value is a complex number, this allows controlling feedback direction.
Definition at line 93 of file QuadratureSineOscillator.h.
|
inlinestaticinherited |
Definition at line 115 of file Oscillator.h.
|
inlinestaticinherited |
Definition at line 120 of file Oscillator.h.
|
inlinevirtualinherited |
Produce the next consecutive sample.
Reimplemented from SignalGenerator.
Definition at line 99 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::incr, and OscillatorTemplate< T, BaseOscillator, Sample >::phase.
|
inline |
Definition at line 108 of file QuadratureSineOscillator.h.
References end_phase, feedback, SimpleArray< T >::getSize(), ComplexFloat::im, ComplexFloatArray::im(), OscillatorTemplate< T, BaseOscillator, Sample >::incr, last_sample, OscillatorTemplate< T, BaseOscillator, Sample >::phase, ComplexFloat::re, and ComplexFloatArray::re().
|
inline |
Definition at line 118 of file QuadratureSineOscillator.h.
References end_phase, feedback, SimpleArray< T >::getSize(), ComplexFloat::im, ComplexFloatArray::im(), OscillatorTemplate< T, BaseOscillator, Sample >::incr, last_sample, OscillatorTemplate< T, BaseOscillator, Sample >::phase, ComplexFloat::re, and ComplexFloatArray::re().
|
inlinevirtualinherited |
Produce a sample with frequency modulation.
Implements Oscillator.
Definition at line 106 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::incr, and OscillatorTemplate< T, BaseOscillator, Sample >::phase.
|
inlinevirtualinherited |
Produce a block of samples.
Reimplemented in VosimOscillator, VoiceAllocatorSignalGenerator< Allocator, SynthVoice, VOICES >, AntialiasedSquareWaveOscillator, SineOscillator, SampleOscillator< im >, AntialiasedRampOscillator, PolyBlepOscillator, and MorphingOscillator.
Definition at line 25 of file SignalGenerator.h.
References SignalGenerator::generate(), and SimpleArray< T >::getSize().
|
inlinevirtualinherited |
Produce a block of samples with frequency modulation.
Reimplemented in VosimOscillator, SineOscillator, SampleOscillator< im >, PolyBlepOscillator, and MorphingOscillator.
Definition at line 50 of file Oscillator.h.
References Oscillator::generate(), and SimpleArray< T >::getSize().
|
inline |
Definition at line 100 of file QuadratureSineOscillator.h.
References feedback.
|
inlinevirtualinherited |
Get oscillator frequency in Hertz.
Implements Oscillator.
Definition at line 86 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::incr, and OscillatorTemplate< T, BaseOscillator, Sample >::mul.
Referenced by VosimOscillator::getFormant1(), VosimOscillator::getFormant2(), and OscillatorTemplate< T, BaseOscillator, Sample >::setSampleRate().
|
inlineinherited |
Definition at line 55 of file Oscillator.h.
References Oscillator::generate().
|
inlineinherited |
Definition at line 57 of file Oscillator.h.
References Oscillator::generate().
|
inlinevirtualinherited |
Get current oscillator phase in radians.
Implements Oscillator.
Definition at line 92 of file Oscillator.h.
References M_PI, and OscillatorTemplate< T, BaseOscillator, Sample >::phase.
|
inline |
Definition at line 103 of file QuadratureSineOscillator.h.
References feedback, ComplexFloat::im, last_sample, OscillatorTemplate< T, BaseOscillator, Sample >::phase, and ComplexFloat::re.
|
inlineinherited |
Definition at line 80 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::mul.
|
inlineinherited |
Definition at line 59 of file Oscillator.h.
References Oscillator::generate().
|
inlineinherited |
Definition at line 63 of file Oscillator.h.
References Oscillator::generate().
|
inlinestaticprotectedinherited |
Calculate poly blep antialiasing compensation on normalised (to range [0, 1]) phase and phase increment (angular rate) values.
Definition at line 128 of file Oscillator.h.
|
inlinevirtualinherited |
Reset oscillator (typically resets phase)
Implements Oscillator.
Definition at line 96 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::phase.
Referenced by VosimOscillator::generate(), and AntialiasedRampOscillator::reset().
|
inline |
Definition at line 97 of file QuadratureSineOscillator.h.
References feedback.
|
inlinevirtualinherited |
Set oscillator frequency in Hertz.
Implements Oscillator.
Definition at line 83 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::incr, and OscillatorTemplate< T, BaseOscillator, Sample >::mul.
Referenced by VosimOscillator::setFormant1(), VosimOscillator::setFormant2(), and OscillatorTemplate< T, BaseOscillator, Sample >::setSampleRate().
|
inlinevirtualinherited |
Set current oscillator phase in radians.
phase | a value between 0 and 2*pi |
Implements Oscillator.
Definition at line 89 of file Oscillator.h.
References M_PI, and OscillatorTemplate< T, BaseOscillator, Sample >::phase.
Referenced by VosimOscillator::generate(), and AntialiasedRampOscillator::setPhase().
|
inlinevirtualinherited |
Set oscillator sample rate.
Reimplemented from Oscillator.
Definition at line 75 of file Oscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::getFrequency(), OscillatorTemplate< T, BaseOscillator, Sample >::mul, and OscillatorTemplate< T, BaseOscillator, Sample >::setFrequency().
Referenced by VosimOscillator::create().
|
staticconstexpr |
Definition at line 95 of file QuadratureSineOscillator.h.
|
staticconstexpr |
Definition at line 96 of file QuadratureSineOscillator.h.
Referenced by generate().
|
protected |
Definition at line 131 of file QuadratureSineOscillator.h.
Referenced by generate(), getFeedback(), getSample(), and setFeedback().
|
protectedinherited |
Definition at line 73 of file Oscillator.h.
Referenced by OscillatorTemplate< T, BaseOscillator, Sample >::generate(), QuadratureSineOscillator::generate(), FeedbackQuadratureSineOscillator::generate(), generate(), OscillatorTemplate< T, BaseOscillator, Sample >::getFrequency(), and OscillatorTemplate< T, BaseOscillator, Sample >::setFrequency().
|
protected |
Definition at line 132 of file QuadratureSineOscillator.h.
Referenced by generate(), and getSample().
|
protectedinherited |
Definition at line 71 of file Oscillator.h.
Referenced by OscillatorTemplate< T, BaseOscillator, Sample >::getFrequency(), OscillatorTemplate< T, BaseOscillator, Sample >::getSampleRate(), OscillatorTemplate< T, BaseOscillator, Sample >::setFrequency(), and OscillatorTemplate< T, BaseOscillator, Sample >::setSampleRate().
|
protectedinherited |
Definition at line 72 of file Oscillator.h.
Referenced by OscillatorTemplate< T, BaseOscillator, Sample >::generate(), QuadratureSineOscillator::generate(), FeedbackQuadratureSineOscillator::generate(), generate(), OscillatorTemplate< T, BaseOscillator, Sample >::getPhase(), QuadratureSineOscillator::getSample(), FeedbackQuadratureSineOscillator::getSample(), getSample(), OscillatorTemplate< T, BaseOscillator, Sample >::reset(), and OscillatorTemplate< T, BaseOscillator, Sample >::setPhase().