void OscilGen::prepare(){ int i,j,k; REALTYPE a,b,c,d,hmagnew; if ((oldbasepar!=Pbasefuncpar)||(oldbasefunc!=Pcurrentbasefunc)|| (oldbasefuncmodulation!=Pbasefuncmodulation)|| (oldbasefuncmodulationpar1!=Pbasefuncmodulationpar1)|| (oldbasefuncmodulationpar2!=Pbasefuncmodulationpar2)|| (oldbasefuncmodulationpar3!=Pbasefuncmodulationpar3)) changebasefunction(); for (i=0;iOSCIL_SIZE/2) break; a=basefuncFFTfreqs[i]; b=basefuncFFTfreqs[OSCIL_SIZE-i]; c=hmag[j]*cos(hphase[j]*k); d=hmag[j]*sin(hphase[j]*k); oscilFFTfreqs[k]+=a*c-b*d; oscilFFTfreqs[OSCIL_SIZE-k]+=a*d+b*c; }; }; }; if (Pharmonicshiftfirst!=0) shiftharmonics(); if (Pfilterbeforews==0){ waveshape(); oscilfilter(); } else { oscilfilter(); waveshape(); }; modulation(); spectrumadjust(); if (Pharmonicshiftfirst==0) shiftharmonics(); /* //normalize (sum or RMS) - the "Full RMS" normalisation is located in the "::get()" function if ((Pnormalizemethod==0)||(Pnormalizemethod==1)){ REALTYPE sum=0; for (j=1;jfreqs2smps(tmp,oscilFFTfreqs); //now the oscilFFTfreqs contains samples data in TIME-DOMAIN (despite it's name) delete(tmp); }; oldhmagtype=Phmagtype; // oldnormalizemethod=Pnormalizemethod; oldharmonicshift=Pharmonicshift+Pharmonicshiftfirst*256; oscilprepared=1; };