OpenWareLaboratory
|
Oscillator outputs complex numbers on unit cycle. 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... | |
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 | 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 | |
float | incr = 0 |
float | mul = 1 |
float | phase = 0 |
Oscillator outputs complex numbers on unit cycle.
This means that axis are 90 degrees out of phase at any point of time and oscillator's magnitude is always equal to 1.0
Definition at line 11 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 18 of file QuadratureSineOscillator.h.
References end_phase, SimpleArray< T >::getSize(), ComplexFloatArray::im(), OscillatorTemplate< T, BaseOscillator, Sample >::incr, OscillatorTemplate< T, BaseOscillator, Sample >::phase, and ComplexFloatArray::re().
|
inline |
Definition at line 27 of file QuadratureSineOscillator.h.
References end_phase, SimpleArray< T >::getSize(), ComplexFloatArray::im(), OscillatorTemplate< T, BaseOscillator, Sample >::incr, OscillatorTemplate< T, BaseOscillator, Sample >::phase, 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().
|
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 15 of file QuadratureSineOscillator.h.
References OscillatorTemplate< T, BaseOscillator, Sample >::phase.
|
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().
|
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 13 of file QuadratureSineOscillator.h.
|
staticconstexpr |
Definition at line 14 of file QuadratureSineOscillator.h.
Referenced by generate().
|
protectedinherited |
Definition at line 73 of file Oscillator.h.
Referenced by OscillatorTemplate< T, BaseOscillator, Sample >::generate(), generate(), FeedbackQuadratureSineOscillator::generate(), ComplexFeedbackQuadratureSineOscillator::generate(), OscillatorTemplate< T, BaseOscillator, Sample >::getFrequency(), and OscillatorTemplate< T, BaseOscillator, Sample >::setFrequency().
|
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(), generate(), FeedbackQuadratureSineOscillator::generate(), ComplexFeedbackQuadratureSineOscillator::generate(), OscillatorTemplate< T, BaseOscillator, Sample >::getPhase(), getSample(), FeedbackQuadratureSineOscillator::getSample(), ComplexFeedbackQuadratureSineOscillator::getSample(), OscillatorTemplate< T, BaseOscillator, Sample >::reset(), and OscillatorTemplate< T, BaseOscillator, Sample >::setPhase().