LMMS
Loading...
Searching...
No Matches
OscilGen Class Reference

#include <OscilGen.h>

Inheritance diagram for OscilGen:
Presets

Public Member Functions

 OscilGen (FFTwrapper *fft_, Resonance *res_)
 ~OscilGen ()
void prepare ()
short get (float *smps, float freqHz, int resonance=0)
void getbasefunction (float *smps)
void getspectrum (int n, float *spc, int what)
void getcurrentbasefunction (float *smps)
void useasbase ()
void add2XML (XMLwrapper *xml)
void defaults ()
void getfromXML (XMLwrapper *xml)
void convert2sine ()
void newrandseed (unsigned int randseed)
Public Member Functions inherited from Presets
 Presets ()
virtual ~Presets ()
virtual void copy (const char *name)
virtual void paste (int npreset)
virtual bool checkclipboardtype ()
void deletepreset (int npreset)
void rescanforpresets ()

Public Attributes

unsigned char Phmag [MAX_AD_HARMONICS]
unsigned char Phphase [MAX_AD_HARMONICS]
unsigned char Phmagtype
unsigned char Pcurrentbasefunc
unsigned char Pbasefuncpar
unsigned char Pbasefuncmodulation
unsigned char Pbasefuncmodulationpar1
unsigned char Pbasefuncmodulationpar2
unsigned char Pbasefuncmodulationpar3
unsigned char Prand
unsigned char Pwaveshaping
unsigned char Pwaveshapingfunction
unsigned char Pfiltertype
unsigned char Pfilterpar1
unsigned char Pfilterpar2
unsigned char Pfilterbeforews
unsigned char Psatype
unsigned char Psapar
unsigned char Pamprandpower
unsigned char Pamprandtype
int Pharmonicshift
int Pharmonicshiftfirst
unsigned char Padaptiveharmonics
unsigned char Padaptiveharmonicsbasefreq
unsigned char Padaptiveharmonicspower
unsigned char Padaptiveharmonicspar
unsigned char Pmodulation
unsigned char Pmodulationpar1
unsigned char Pmodulationpar2
unsigned char Pmodulationpar3
bool ADvsPAD
Public Attributes inherited from Presets
char type [MAX_PRESETTYPE_SIZE]

Private Member Functions

void changebasefunction ()
void waveshape ()
void oscilfilter ()
void spectrumadjust ()
void shiftharmonics ()
void modulation ()
bool needPrepare (void)
void adaptiveharmonic (fft_t *f, float freq)
void adaptiveharmonicpostprocess (fft_t *f, int size)

Private Attributes

float * tmpsmps
fft_toutoscilFFTfreqs
float hmag [MAX_AD_HARMONICS]
float hphase [MAX_AD_HARMONICS]
FFTwrapperfft
unsigned char oldbasefunc
unsigned char oldbasepar
unsigned char oldhmagtype
unsigned char oldwaveshapingfunction
unsigned char oldwaveshaping
int oldfilterpars
int oldsapars
int oldbasefuncmodulation
int oldbasefuncmodulationpar1
int oldbasefuncmodulationpar2
int oldbasefuncmodulationpar3
int oldharmonicshift
int oldmodulation
int oldmodulationpar1
int oldmodulationpar2
int oldmodulationpar3
fft_tbasefuncFFTfreqs
fft_toscilFFTfreqs
int oscilprepared
Resonanceres
unsigned int randseed

Additional Inherited Members

Protected Member Functions inherited from Presets
void setpresettype (const char *type)

Constructor & Destructor Documentation

◆ OscilGen()

OscilGen::OscilGen ( FFTwrapper * fft_,
Resonance * res_ )

◆ ~OscilGen()

OscilGen::~OscilGen ( )

Member Function Documentation

◆ adaptiveharmonic()

void OscilGen::adaptiveharmonic ( fft_t * f,
float freq )
private

◆ adaptiveharmonicpostprocess()

void OscilGen::adaptiveharmonicpostprocess ( fft_t * f,
int size )
private

◆ add2XML()

void OscilGen::add2XML ( XMLwrapper * xml)
virtual

Implements Presets.

◆ changebasefunction()

void OscilGen::changebasefunction ( )
private

◆ convert2sine()

void OscilGen::convert2sine ( )

◆ defaults()

void OscilGen::defaults ( void )
virtual

Implements Presets.

◆ get()

short int OscilGen::get ( float * smps,
float freqHz,
int resonance = 0 )

do the antialiasing(cut off higher freqs.),apply randomness and do a IFFT

◆ getbasefunction()

void OscilGen::getbasefunction ( float * smps)

◆ getcurrentbasefunction()

void OscilGen::getcurrentbasefunction ( float * smps)

◆ getfromXML()

void OscilGen::getfromXML ( XMLwrapper * xml)
virtual

Implements Presets.

◆ getspectrum()

void OscilGen::getspectrum ( int n,
float * spc,
int what )

◆ modulation()

void OscilGen::modulation ( )
private

◆ needPrepare()

bool OscilGen::needPrepare ( void )
private

◆ newrandseed()

void OscilGen::newrandseed ( unsigned int randseed)

◆ oscilfilter()

void OscilGen::oscilfilter ( )
private

◆ prepare()

void OscilGen::prepare ( )

computes the full spectrum of oscil from harmonics,phases and basefunc

◆ shiftharmonics()

void OscilGen::shiftharmonics ( )
private

◆ spectrumadjust()

void OscilGen::spectrumadjust ( )
private

◆ useasbase()

void OscilGen::useasbase ( )

convert oscil to base function

◆ waveshape()

void OscilGen::waveshape ( )
private

Member Data Documentation

◆ ADvsPAD

bool OscilGen::ADvsPAD

◆ basefuncFFTfreqs

fft_t* OscilGen::basefuncFFTfreqs
private

◆ fft

FFTwrapper* OscilGen::fft
private

◆ hmag

float OscilGen::hmag[MAX_AD_HARMONICS]
private

◆ hphase

float OscilGen::hphase[MAX_AD_HARMONICS]
private

◆ oldbasefunc

unsigned char OscilGen::oldbasefunc
private

◆ oldbasefuncmodulation

int OscilGen::oldbasefuncmodulation
private

◆ oldbasefuncmodulationpar1

int OscilGen::oldbasefuncmodulationpar1
private

◆ oldbasefuncmodulationpar2

int OscilGen::oldbasefuncmodulationpar2
private

◆ oldbasefuncmodulationpar3

int OscilGen::oldbasefuncmodulationpar3
private

◆ oldbasepar

unsigned char OscilGen::oldbasepar
private

◆ oldfilterpars

int OscilGen::oldfilterpars
private

◆ oldharmonicshift

int OscilGen::oldharmonicshift
private

◆ oldhmagtype

unsigned char OscilGen::oldhmagtype
private

◆ oldmodulation

int OscilGen::oldmodulation
private

◆ oldmodulationpar1

int OscilGen::oldmodulationpar1
private

◆ oldmodulationpar2

int OscilGen::oldmodulationpar2
private

◆ oldmodulationpar3

int OscilGen::oldmodulationpar3
private

◆ oldsapars

int OscilGen::oldsapars
private

◆ oldwaveshaping

unsigned char OscilGen::oldwaveshaping
private

◆ oldwaveshapingfunction

unsigned char OscilGen::oldwaveshapingfunction
private

◆ oscilFFTfreqs

fft_t* OscilGen::oscilFFTfreqs
private

◆ oscilprepared

int OscilGen::oscilprepared
private

◆ outoscilFFTfreqs

fft_t* OscilGen::outoscilFFTfreqs
private

◆ Padaptiveharmonics

unsigned char OscilGen::Padaptiveharmonics

◆ Padaptiveharmonicsbasefreq

unsigned char OscilGen::Padaptiveharmonicsbasefreq

◆ Padaptiveharmonicspar

unsigned char OscilGen::Padaptiveharmonicspar

◆ Padaptiveharmonicspower

unsigned char OscilGen::Padaptiveharmonicspower

◆ Pamprandpower

unsigned char OscilGen::Pamprandpower

◆ Pamprandtype

unsigned char OscilGen::Pamprandtype

◆ Pbasefuncmodulation

unsigned char OscilGen::Pbasefuncmodulation

◆ Pbasefuncmodulationpar1

unsigned char OscilGen::Pbasefuncmodulationpar1

◆ Pbasefuncmodulationpar2

unsigned char OscilGen::Pbasefuncmodulationpar2

◆ Pbasefuncmodulationpar3

unsigned char OscilGen::Pbasefuncmodulationpar3

◆ Pbasefuncpar

unsigned char OscilGen::Pbasefuncpar

◆ Pcurrentbasefunc

unsigned char OscilGen::Pcurrentbasefunc

◆ Pfilterbeforews

unsigned char OscilGen::Pfilterbeforews

◆ Pfilterpar1

unsigned char OscilGen::Pfilterpar1

◆ Pfilterpar2

unsigned char OscilGen::Pfilterpar2

◆ Pfiltertype

unsigned char OscilGen::Pfiltertype

◆ Pharmonicshift

int OscilGen::Pharmonicshift

◆ Pharmonicshiftfirst

int OscilGen::Pharmonicshiftfirst

◆ Phmag

unsigned char OscilGen::Phmag[MAX_AD_HARMONICS]

The hmag and hphase starts counting from 0, so the first harmonic(1) has the index 0, 2-nd harmonic has index 1, ..the 128 harminic has index 127

◆ Phmagtype

unsigned char OscilGen::Phmagtype

The Type of magnitude: 0 - Linear 1 - dB scale (-40) 2 - dB scale (-60) 3 - dB scale (-80) 4 - dB scale (-100)

◆ Phphase

unsigned char OscilGen::Phphase[MAX_AD_HARMONICS]

◆ Pmodulation

unsigned char OscilGen::Pmodulation

◆ Pmodulationpar1

unsigned char OscilGen::Pmodulationpar1

◆ Pmodulationpar2

unsigned char OscilGen::Pmodulationpar2

◆ Pmodulationpar3

unsigned char OscilGen::Pmodulationpar3

◆ Prand

unsigned char OscilGen::Prand

◆ Psapar

unsigned char OscilGen::Psapar

◆ Psatype

unsigned char OscilGen::Psatype

◆ Pwaveshaping

unsigned char OscilGen::Pwaveshaping

◆ Pwaveshapingfunction

unsigned char OscilGen::Pwaveshapingfunction

◆ randseed

unsigned int OscilGen::randseed
private

◆ res

Resonance* OscilGen::res
private

◆ tmpsmps

float* OscilGen::tmpsmps
private

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