OpenWareLaboratory
|
An Oscillator is a SignalGenerator that operates at a given frequency and that can be frequency modulated. More...
Public Member Functions | |
virtual float | generate () |
Produce the next consecutive sample. More... | |
virtual float | generate (float fm)=0 |
Produce a sample with frequency modulation. More... | |
virtual void | generate (FloatArray output) |
Produce a block of samples. 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... | |
virtual float | getFrequency ()=0 |
Get oscillator frequency in Hertz. More... | |
float | getNextSample () |
float | getNextSample (float fm) |
virtual float | getPhase ()=0 |
Get current oscillator phase in radians. More... | |
void | getSamples (FloatArray output) |
void | getSamples (FloatArray output, FloatArray fm) |
Oscillator () | |
virtual void | reset ()=0 |
Reset oscillator (typically resets phase) More... | |
virtual void | setFrequency (float value)=0 |
Set oscillator frequency in Hertz. More... | |
virtual void | setPhase (float phase)=0 |
Set current oscillator phase in radians. More... | |
virtual void | setSampleRate (float value) |
Set oscillator sample rate. More... | |
virtual | ~Oscillator () |
An Oscillator is a SignalGenerator that operates at a given frequency and that can be frequency modulated.
Definition at line 12 of file Oscillator.h.
|
inline |
Definition at line 14 of file Oscillator.h.
|
inlinevirtual |
Definition at line 15 of file Oscillator.h.
|
inlinevirtual |
Produce the next consecutive sample.
Reimplemented from SignalGenerator.
Reimplemented in OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, and OscillatorTemplate< WavetableOscillator >.
Definition at line 19 of file SignalGenerator.h.
Referenced by generate(), getNextSample(), and getSamples().
|
pure virtual |
Produce a sample with frequency modulation.
Implemented in VosimOscillator, SampleOscillator< im >, PolyBlepOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, OscillatorTemplate< WavetableOscillator >, MorphingOscillator, ChirpOscillator, and AgnesiOscillator.
Referenced by MorphingOscillator::generate().
|
inlinevirtual |
Produce a block of samples.
Reimplemented from SignalGenerator.
Reimplemented in OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, and OscillatorTemplate< WavetableOscillator >.
Definition at line 25 of file SignalGenerator.h.
|
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().
|
inlinevirtual |
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 generate(), and SimpleArray< T >::getSize().
|
pure virtual |
Get oscillator frequency in Hertz.
Implemented in SampleOscillator< im >, PolyBlepOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, OscillatorTemplate< WavetableOscillator >, MorphingOscillator, ChirpOscillator, and AgnesiOscillator.
Referenced by MorphingOscillator::getFrequency().
|
inline |
Definition at line 55 of file Oscillator.h.
References generate().
|
inline |
Definition at line 57 of file Oscillator.h.
References generate().
|
pure virtual |
Get current oscillator phase in radians.
Implemented in SampleOscillator< im >, PolyBlepOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, OscillatorTemplate< WavetableOscillator >, MorphingOscillator, ChirpOscillator, and AgnesiOscillator.
Referenced by MorphingOscillator::getPhase().
|
inline |
Definition at line 59 of file Oscillator.h.
References generate().
|
inline |
Definition at line 63 of file Oscillator.h.
References generate().
|
pure virtual |
Reset oscillator (typically resets phase)
Implemented in SampleOscillator< im >, AntialiasedRampOscillator, PolyBlepOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, OscillatorTemplate< WavetableOscillator >, NoiseOscillator, MorphingOscillator, ChirpOscillator, and AgnesiOscillator.
Referenced by MorphingOscillator::reset().
|
pure virtual |
Set oscillator frequency in Hertz.
Implemented in MorphingOscillator, SampleOscillator< im >, PolyBlepOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, OscillatorTemplate< WavetableOscillator >, ChirpOscillator, and AgnesiOscillator.
Referenced by MorphingOscillator::morph(), and MorphingOscillator::setFrequency().
|
pure virtual |
Set current oscillator phase in radians.
phase | a value between 0 and 2*pi |
Implemented in MorphingOscillator, SampleOscillator< im >, PolyBlepOscillator, ChirpOscillator, AgnesiOscillator, AntialiasedRampOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, and OscillatorTemplate< WavetableOscillator >.
Referenced by MorphingOscillator::morph(), and MorphingOscillator::setPhase().
|
inlinevirtual |
Set oscillator sample rate.
Reimplemented in PolyBlepOscillator, OscillatorTemplate< T, BaseOscillator, Sample >, OscillatorTemplate< VosimOscillator >, OscillatorTemplate< AntialiasedWavetableOscillator >, OscillatorTemplate< TriangleOscillator >, OscillatorTemplate< InvertedSquareWaveOscillator >, OscillatorTemplate< VariableShapeOscillator >, OscillatorTemplate< InterpolatingWavetableOscillator< LINEAR_INTERPOLATION > >, OscillatorTemplate< NoiseOscillator >, OscillatorTemplate< SquareWaveOscillator >, OscillatorTemplate< SineOscillator >, OscillatorTemplate< AntialiasedTriangleOscillator >, OscillatorTemplate< AntialiasedRampOscillator >, OscillatorTemplate< InvertedRampOscillator >, OscillatorTemplate< AntialiasedSquareWaveOscillator >, OscillatorTemplate< RampOscillator >, OscillatorTemplate< WavetableOscillator >, and ChirpOscillator.
Definition at line 20 of file Oscillator.h.