/* * Get the base function for UI */ void OscilGen::getcurrentbasefunction(REALTYPE *smps) { if(Pcurrentbasefunc != 0) fft->freqs2smps(basefuncFFTfreqs, smps); else getbasefunction(smps); //the sine case }
/* * Change the base function */ void OscilGen::changebasefunction(void) { if(Pcurrentbasefunc != 0) { getbasefunction(tmpsmps); if(fft) fft->smps2freqs(tmpsmps, basefuncFFTfreqs); clearDC(basefuncFFTfreqs); } else //in this case basefuncFFTfreqs are not used clearAll(basefuncFFTfreqs, synth.oscilsize); oscilprepared = 0; oldbasefunc = Pcurrentbasefunc; oldbasepar = Pbasefuncpar; oldbasefuncmodulation = Pbasefuncmodulation; oldbasefuncmodulationpar1 = Pbasefuncmodulationpar1; oldbasefuncmodulationpar2 = Pbasefuncmodulationpar2; oldbasefuncmodulationpar3 = Pbasefuncmodulationpar3; }
/* * Change the base function */ void OscilGen::changebasefunction() { if(Pcurrentbasefunc != 0) { getbasefunction(tmpsmps); fft->smps2freqs(tmpsmps, basefuncFFTfreqs); basefuncFFTfreqs.c[0] = 0.0; } else { for(int i = 0; i < OSCIL_SIZE / 2; i++) { basefuncFFTfreqs.s[i] = 0.0; basefuncFFTfreqs.c[i] = 0.0; } //in this case basefuncFFTfreqs_ are not used } oscilprepared = 0; oldbasefunc = Pcurrentbasefunc; oldbasepar = Pbasefuncpar; oldbasefuncmodulation = Pbasefuncmodulation; oldbasefuncmodulationpar1 = Pbasefuncmodulationpar1; oldbasefuncmodulationpar2 = Pbasefuncmodulationpar2; oldbasefuncmodulationpar3 = Pbasefuncmodulationpar3; }