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

#include <OscilGen.h>

Inheritance diagram for zyncarla::OscilGen:
zyncarla::Presets

Public Member Functions

 OscilGen (const SYNTH_T &synth, FFTwrapper *fft_, Resonance *res_)
 ~OscilGen ()
void prepare ()
void prepare (fft_t *data)
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 paste (OscilGen &o)
void add2XML (XMLwrapper &xml)
void defaults ()
void getfromXML (XMLwrapper &xml)
void convert2sine ()
void newrandseed (unsigned int randseed)
bool needPrepare (void)
Public Member Functions inherited from zyncarla::Presets
 Presets ()
virtual ~Presets ()
virtual void copy (PresetsStore &ps, const char *name)
virtual bool checkclipboardtype (PresetsStore &ps)
void deletepreset (PresetsStore &ps, int npreset)

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 Pwaveshaping
unsigned char Pwaveshapingfunction
unsigned char Pfiltertype
unsigned char Pfilterpar1
unsigned char Pfilterpar2
bool Pfilterbeforews
unsigned char Psatype
unsigned char Psapar
int Pharmonicshift
int Pharmonicshiftfirst
unsigned char Pmodulation
unsigned char Pmodulationpar1
unsigned char Pmodulationpar2
unsigned char Pmodulationpar3
unsigned char Prand
unsigned char Pamprandpower
unsigned char Pamprandtype
unsigned char Padaptiveharmonics
unsigned char Padaptiveharmonicsbasefreq
unsigned char Padaptiveharmonicspower
unsigned char Padaptiveharmonicspar
bool ADvsPAD
fft_toscilFFTfreqs
fft_tpendingfreqs
const SYNTH_Tsynth
Public Attributes inherited from zyncarla::Presets
char type [MAX_PRESETTYPE_SIZE]

Static Public Attributes

static const rtosc::MergePorts ports
static const rtosc::Ports non_realtime_ports
static const rtosc::Ports realtime_ports

Private Member Functions

void changebasefunction (void)
void waveshape (fft_t *freqs)
void oscilfilter (fft_t *freqs)
void spectrumadjust (fft_t *freqs)
void shiftharmonics (fft_t *freqs)
void modulation (fft_t *freqs)
float userfunc (float x)
void adaptiveharmonic (fft_t *f, float freq)
void adaptiveharmonicpostprocess (fft_t *f, int size)

Private Attributes

float * tmpsmps
fft_toutoscilFFTfreqs
float * cachedbasefunc
bool cachedbasevalid
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
int oscilprepared
Resonanceres
unsigned int randseed

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ OscilGen()

OscilGen::OscilGen ( const SYNTH_T & synth,
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 zyncarla::Presets.

◆ changebasefunction()

void OscilGen::changebasefunction ( void )
private

◆ convert2sine()

void OscilGen::convert2sine ( )

◆ defaults()

void OscilGen::defaults ( )

◆ 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)

◆ getspectrum()

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

◆ modulation()

void OscilGen::modulation ( fft_t * freqs)
private

◆ needPrepare()

bool OscilGen::needPrepare ( void )

◆ newrandseed()

void OscilGen::newrandseed ( unsigned int randseed)

◆ oscilfilter()

void OscilGen::oscilfilter ( fft_t * freqs)
private

◆ paste()

void OscilGen::paste ( OscilGen & o)

◆ prepare() [1/2]

void OscilGen::prepare ( void )

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

◆ prepare() [2/2]

void OscilGen::prepare ( fft_t * data)

◆ shiftharmonics()

void OscilGen::shiftharmonics ( fft_t * freqs)
private

◆ spectrumadjust()

void OscilGen::spectrumadjust ( fft_t * freqs)
private

◆ useasbase()

void OscilGen::useasbase ( )

convert oscil to base function

◆ userfunc()

float OscilGen::userfunc ( float x)
private

◆ waveshape()

void OscilGen::waveshape ( fft_t * freqs)
private

Member Data Documentation

◆ ADvsPAD

bool zyncarla::OscilGen::ADvsPAD

◆ basefuncFFTfreqs

fft_t* zyncarla::OscilGen::basefuncFFTfreqs
private

◆ cachedbasefunc

float* zyncarla::OscilGen::cachedbasefunc
private

◆ cachedbasevalid

bool zyncarla::OscilGen::cachedbasevalid
private

◆ fft

FFTwrapper* zyncarla::OscilGen::fft
private

◆ hmag

float zyncarla::OscilGen::hmag[MAX_AD_HARMONICS]
private

◆ hphase

float zyncarla::OscilGen::hphase[MAX_AD_HARMONICS]
private

◆ non_realtime_ports

const rtosc::Ports OscilGen::non_realtime_ports
static

◆ oldbasefunc

unsigned char zyncarla::OscilGen::oldbasefunc
private

◆ oldbasefuncmodulation

int zyncarla::OscilGen::oldbasefuncmodulation
private

◆ oldbasefuncmodulationpar1

int zyncarla::OscilGen::oldbasefuncmodulationpar1
private

◆ oldbasefuncmodulationpar2

int zyncarla::OscilGen::oldbasefuncmodulationpar2
private

◆ oldbasefuncmodulationpar3

int zyncarla::OscilGen::oldbasefuncmodulationpar3
private

◆ oldbasepar

unsigned char zyncarla::OscilGen::oldbasepar
private

◆ oldfilterpars

int zyncarla::OscilGen::oldfilterpars
private

◆ oldharmonicshift

int zyncarla::OscilGen::oldharmonicshift
private

◆ oldhmagtype

unsigned char zyncarla::OscilGen::oldhmagtype
private

◆ oldmodulation

int zyncarla::OscilGen::oldmodulation
private

◆ oldmodulationpar1

int zyncarla::OscilGen::oldmodulationpar1
private

◆ oldmodulationpar2

int zyncarla::OscilGen::oldmodulationpar2
private

◆ oldmodulationpar3

int zyncarla::OscilGen::oldmodulationpar3
private

◆ oldsapars

int zyncarla::OscilGen::oldsapars
private

◆ oldwaveshaping

unsigned char zyncarla::OscilGen::oldwaveshaping
private

◆ oldwaveshapingfunction

unsigned char zyncarla::OscilGen::oldwaveshapingfunction
private

◆ oscilFFTfreqs

fft_t* zyncarla::OscilGen::oscilFFTfreqs

◆ oscilprepared

int zyncarla::OscilGen::oscilprepared
private

◆ outoscilFFTfreqs

fft_t* zyncarla::OscilGen::outoscilFFTfreqs
private

◆ Padaptiveharmonics

unsigned char zyncarla::OscilGen::Padaptiveharmonics

◆ Padaptiveharmonicsbasefreq

unsigned char zyncarla::OscilGen::Padaptiveharmonicsbasefreq

◆ Padaptiveharmonicspar

unsigned char zyncarla::OscilGen::Padaptiveharmonicspar

◆ Padaptiveharmonicspower

unsigned char zyncarla::OscilGen::Padaptiveharmonicspower

◆ Pamprandpower

unsigned char zyncarla::OscilGen::Pamprandpower

◆ Pamprandtype

unsigned char zyncarla::OscilGen::Pamprandtype

◆ Pbasefuncmodulation

unsigned char zyncarla::OscilGen::Pbasefuncmodulation

◆ Pbasefuncmodulationpar1

unsigned char zyncarla::OscilGen::Pbasefuncmodulationpar1

◆ Pbasefuncmodulationpar2

unsigned char zyncarla::OscilGen::Pbasefuncmodulationpar2

◆ Pbasefuncmodulationpar3

unsigned char zyncarla::OscilGen::Pbasefuncmodulationpar3

◆ Pbasefuncpar

unsigned char zyncarla::OscilGen::Pbasefuncpar

◆ Pcurrentbasefunc

unsigned char zyncarla::OscilGen::Pcurrentbasefunc

◆ pendingfreqs

fft_t* zyncarla::OscilGen::pendingfreqs

◆ Pfilterbeforews

bool zyncarla::OscilGen::Pfilterbeforews

◆ Pfilterpar1

unsigned char zyncarla::OscilGen::Pfilterpar1

◆ Pfilterpar2

unsigned char zyncarla::OscilGen::Pfilterpar2

◆ Pfiltertype

unsigned char zyncarla::OscilGen::Pfiltertype

◆ Pharmonicshift

int zyncarla::OscilGen::Pharmonicshift

◆ Pharmonicshiftfirst

int zyncarla::OscilGen::Pharmonicshiftfirst

◆ Phmag

unsigned char zyncarla::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 zyncarla::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 zyncarla::OscilGen::Phphase[MAX_AD_HARMONICS]

◆ Pmodulation

unsigned char zyncarla::OscilGen::Pmodulation

◆ Pmodulationpar1

unsigned char zyncarla::OscilGen::Pmodulationpar1

◆ Pmodulationpar2

unsigned char zyncarla::OscilGen::Pmodulationpar2

◆ Pmodulationpar3

unsigned char zyncarla::OscilGen::Pmodulationpar3

◆ ports

const rtosc::MergePorts OscilGen::ports
static
Initial value:
{
}
static const rtosc::Ports non_realtime_ports
Definition OscilGen.h:111
static const rtosc::Ports realtime_ports
Definition OscilGen.h:112

◆ Prand

unsigned char zyncarla::OscilGen::Prand

Realtime parameters for ADnote

◆ Psapar

unsigned char zyncarla::OscilGen::Psapar

◆ Psatype

unsigned char zyncarla::OscilGen::Psatype

◆ Pwaveshaping

unsigned char zyncarla::OscilGen::Pwaveshaping

◆ Pwaveshapingfunction

unsigned char zyncarla::OscilGen::Pwaveshapingfunction

◆ randseed

unsigned int zyncarla::OscilGen::randseed
private

◆ realtime_ports

const rtosc::Ports OscilGen::realtime_ports
static

◆ res

Resonance* zyncarla::OscilGen::res
private

◆ synth

const SYNTH_T& zyncarla::OscilGen::synth

◆ tmpsmps

float* zyncarla::OscilGen::tmpsmps
private

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