OpenWareLaboratory
VosimOscillator Class Reference

VOSIM-type oscillator based on Rob Hordijk's Nord Modular patch. More...

Inheritance diagram for VosimOscillator:
Collaboration diagram for VosimOscillator:

Public Member Functions

float generate ()
 Produce the next consecutive sample. More...
 
float generate (float fm)
 Produce a sample with frequency modulation. More...
 
void generate (FloatArray output)
 Produce a block of samples. More...
 
void generate (FloatArray output, FloatArray input)
 Produce a block of samples with frequency modulation. More...
 
float getFormant1 ()
 
float getFormant2 ()
 
float getFrequency ()
 Get oscillator frequency in Hertz. More...
 
float getNextSample ()
 
float getNextSample (float fm)
 
float getPhase ()
 Get current oscillator phase in radians. More...
 
float getSample ()
 
float getSampleRate ()
 
void getSamples (FloatArray output)
 
void getSamples (FloatArray output, FloatArray fm)
 
void reset ()
 Reset oscillator (typically resets phase) More...
 
void setFormant1 (float frequency)
 
void setFormant2 (float frequency)
 
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...
 
void setWaveshape (float value)
 
 VosimOscillator (SineOscillator *osc2, SineOscillator *osc1)
 

Static Public Member Functions

static VosimOscillatorcreate (float sr)
 
static void destroy (VosimOscillator *obj)
 

Data Fields

float waveshape = 0
 

Static Public Attributes

static constexpr float begin_phase = 0
 
static constexpr float end_phase = 1
 

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
 
float mul
 
float phase
 

Detailed Description

VOSIM-type oscillator based on Rob Hordijk's Nord Modular patch.

ref: https://electro-music.com/nm_classic/015_workshops/Clavia/NordModularWorkshops&Threads/WerkMap/WorkShops/Hordijk1999-2000/VOSIM.html

Definition at line 11 of file VosimOscillator.h.

Constructor & Destructor Documentation

◆ VosimOscillator()

VosimOscillator::VosimOscillator ( SineOscillator osc2,
SineOscillator osc1 
)
inline

Definition at line 16 of file VosimOscillator.h.

Referenced by create().

Member Function Documentation

◆ create()

static VosimOscillator* VosimOscillator::create ( float  sr)
inlinestatic

◆ destroy()

static void VosimOscillator::destroy ( VosimOscillator obj)
inlinestatic

◆ generate() [1/4]

float VosimOscillator::generate ( )
inlinevirtual

Produce the next consecutive sample.

Reimplemented from SignalGenerator.

Definition at line 63 of file VosimOscillator.h.

◆ generate() [2/4]

◆ generate() [3/4]

◆ generate() [4/4]

void VosimOscillator::generate ( FloatArray  output,
FloatArray  fm 
)
inlinevirtual

◆ getFormant1()

float VosimOscillator::getFormant1 ( )
inline

◆ getFormant2()

float VosimOscillator::getFormant2 ( )
inline

◆ getFrequency()

float OscillatorTemplate< VosimOscillator , Oscillator , float >::getFrequency ( )
inlinevirtualinherited

Get oscillator frequency in Hertz.

Implements Oscillator.

Definition at line 86 of file Oscillator.h.

◆ getNextSample() [1/2]

float Oscillator::getNextSample ( )
inlineinherited

Definition at line 55 of file Oscillator.h.

References Oscillator::generate().

◆ getNextSample() [2/2]

float Oscillator::getNextSample ( float  fm)
inlineinherited

Definition at line 57 of file Oscillator.h.

References Oscillator::generate().

◆ getPhase()

float OscillatorTemplate< VosimOscillator , Oscillator , float >::getPhase ( )
inlinevirtualinherited

Get current oscillator phase in radians.

Returns
a value between 0 and 2*pi

Implements Oscillator.

Definition at line 92 of file Oscillator.h.

◆ getSample()

float VosimOscillator::getSample ( )
inline

Definition at line 21 of file VosimOscillator.h.

References OscillatorTemplate< VosimOscillator >::phase, and waveshape.

Referenced by generate().

◆ getSampleRate()

float OscillatorTemplate< VosimOscillator , Oscillator , float >::getSampleRate ( )
inlineinherited

Definition at line 80 of file Oscillator.h.

◆ getSamples() [1/2]

void Oscillator::getSamples ( FloatArray  output)
inlineinherited

Definition at line 59 of file Oscillator.h.

References Oscillator::generate().

◆ getSamples() [2/2]

void Oscillator::getSamples ( FloatArray  output,
FloatArray  fm 
)
inlineinherited

Definition at line 63 of file Oscillator.h.

References Oscillator::generate().

◆ polyblep()

static float OscillatorTemplate< VosimOscillator , Oscillator , float >::polyblep ( float  t,
float  dt 
)
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.

◆ reset()

void OscillatorTemplate< VosimOscillator , Oscillator , float >::reset ( )
inlinevirtualinherited

Reset oscillator (typically resets phase)

Implements Oscillator.

Definition at line 96 of file Oscillator.h.

◆ setFormant1()

void VosimOscillator::setFormant1 ( float  frequency)
inline

◆ setFormant2()

void VosimOscillator::setFormant2 ( float  frequency)
inline

◆ setFrequency()

void OscillatorTemplate< VosimOscillator , Oscillator , float >::setFrequency ( float  freq)
inlinevirtualinherited

Set oscillator frequency in Hertz.

Implements Oscillator.

Definition at line 83 of file Oscillator.h.

◆ setPhase()

void OscillatorTemplate< VosimOscillator , Oscillator , float >::setPhase ( float  ph)
inlinevirtualinherited

Set current oscillator phase in radians.

Parameters
phasea value between 0 and 2*pi

Implements Oscillator.

Definition at line 89 of file Oscillator.h.

◆ setSampleRate()

void OscillatorTemplate< VosimOscillator , Oscillator , float >::setSampleRate ( float  sr)
inlinevirtualinherited

Set oscillator sample rate.

Reimplemented from Oscillator.

Definition at line 75 of file Oscillator.h.

◆ setWaveshape()

void VosimOscillator::setWaveshape ( float  value)
inline

Definition at line 29 of file VosimOscillator.h.

References waveshape.

Field Documentation

◆ begin_phase

constexpr float VosimOscillator::begin_phase = 0
staticconstexpr

Definition at line 18 of file VosimOscillator.h.

Referenced by generate().

◆ end_phase

constexpr float VosimOscillator::end_phase = 1
staticconstexpr

Definition at line 19 of file VosimOscillator.h.

Referenced by generate().

◆ incr

float OscillatorTemplate< VosimOscillator , Oscillator , float >::incr
protectedinherited

Definition at line 73 of file Oscillator.h.

◆ mul

float OscillatorTemplate< VosimOscillator , Oscillator , float >::mul
protectedinherited

Definition at line 71 of file Oscillator.h.

◆ phase

float OscillatorTemplate< VosimOscillator , Oscillator , float >::phase
protectedinherited

Definition at line 72 of file Oscillator.h.

◆ waveshape

float VosimOscillator::waveshape = 0

Definition at line 20 of file VosimOscillator.h.

Referenced by generate(), getSample(), and setWaveshape().


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