OpenWareLaboratory
ComplexOscillator Class Referenceabstract

A complex oscillator is a MultiSignalGenerator with 2 channels that operates at a given frequency and that can be frequency modulated. More...

Inheritance diagram for ComplexOscillator:
Collaboration diagram for ComplexOscillator:

Public Member Functions

 ComplexOscillator ()=default
 
virtual ComplexFloat generate ()=0
 Produce the next consecutive sample. More...
 
virtual void generate (ComplexFloatArray output)
 Produce a block of samples. More...
 
virtual void generate (ComplexFloatArray output)
 Produce a block of samples. More...
 
virtual void generate (ComplexFloatArray output, FloatArray fm)
 Produce a block of samples with frequency modulation. More...
 
virtual ComplexFloat generate (float fm)=0
 Produce a sample with frequency modulation. More...
 
virtual float getFrequency ()=0
 Get oscillator frequency in Hertz. More...
 
virtual float getPhase ()=0
 Get current oscillator phase in radians. More...
 
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 ~ComplexOscillator ()=default
 

Detailed Description

A complex oscillator is a MultiSignalGenerator with 2 channels that operates at a given frequency and that can be frequency modulated.

A single sample is represented as a ComplexFloat value, while blocks of audio are stored in an AudioBuffer with 2 channels.

Definition at line 14 of file ComplexOscillator.h.

Constructor & Destructor Documentation

◆ ComplexOscillator()

ComplexOscillator::ComplexOscillator ( )
default

◆ ~ComplexOscillator()

virtual ComplexOscillator::~ComplexOscillator ( )
virtualdefault

Member Function Documentation

◆ generate() [1/5]

virtual ComplexFloat ComplexSignalGenerator::generate
virtual

Produce the next consecutive sample.

Implements ComplexSignalGenerator.

Referenced by generate().

◆ generate() [2/5]

virtual void ComplexSignalGenerator::generate
inlinevirtual

Produce a block of samples.

Implements ComplexSignalGenerator.

Definition at line 54 of file SignalGenerator.h.

◆ generate() [3/5]

virtual void ComplexSignalGenerator::generate ( ComplexFloatArray  output)
inlinevirtualinherited

Produce a block of samples.

Definition at line 54 of file SignalGenerator.h.

References ComplexSignalGenerator::generate(), and SimpleArray< T >::getSize().

◆ generate() [4/5]

virtual void ComplexOscillator::generate ( ComplexFloatArray  output,
FloatArray  fm 
)
inlinevirtual

Produce a block of samples with frequency modulation.

Definition at line 52 of file ComplexOscillator.h.

References generate(), and SimpleArray< T >::getSize().

◆ generate() [5/5]

virtual ComplexFloat ComplexOscillator::generate ( float  fm)
pure virtual

Produce a sample with frequency modulation.

◆ getFrequency()

virtual float ComplexOscillator::getFrequency ( )
pure virtual

Get oscillator frequency in Hertz.

◆ getPhase()

virtual float ComplexOscillator::getPhase ( )
pure virtual

Get current oscillator phase in radians.

Returns
a value between 0 and 2*pi

◆ reset()

virtual void ComplexOscillator::reset ( )
pure virtual

Reset oscillator (typically resets phase)

◆ setFrequency()

virtual void ComplexOscillator::setFrequency ( float  value)
pure virtual

Set oscillator frequency in Hertz.

◆ setPhase()

virtual void ComplexOscillator::setPhase ( float  phase)
pure virtual

Set current oscillator phase in radians.

Parameters
phasea value between 0 and 2*pi

◆ setSampleRate()

virtual void ComplexOscillator::setSampleRate ( float  value)
inlinevirtual

Set oscillator sample rate.

Definition at line 22 of file ComplexOscillator.h.


The documentation for this class was generated from the following file: