void spectrum_shift_ok(void) { int i, tnum, bins; int ch,chN; int_progval(); GUI_startprogressbar(0,progval,samps_per_frame*3); bins=spectrumshift_shift_value/binfreq; for(ch=0;ch<samps_per_frame;ch++){ *progval=ch*3; chN=ch*N; for (i=0; i<N; i++) lyd2[i+chN]=0.; *progval=ch*3+1; for (i=0; i<N/2; i++) { tnum=(int)(i+bins); if (tnum<0) tnum=0; if (tnum>=N/2) tnum=N/2-1; *(lyd2+tnum+tnum+chN)=*(lyd+i+i+chN); *(lyd2+tnum+tnum+1+chN)=*(lyd+i+i+1+chN); } *progval=ch*3+2; for (i=0; i<N; i++) lyd[i+chN]=lyd2[i+chN]; } GUI_stopprogressbar(); }
void mirror_ok(void) { long i, j, num; int ch,chN; int_progval(); num=(long)(mirror_mirror_frequency/binfreq); GUI_startprogressbar(0,progval,samps_per_frame*N/2); for(ch=0;ch<samps_per_frame;ch++){ chN=ch*N; for (i=0; i<N/2; i++) { *progval=chN/2+i; j=num+num-i; if ((j<N/2) && (j>=0)) { lyd2[i+i+chN]=lyd[j+j+chN]; lyd2[i+i+1+chN]=-lyd[j+j+1+chN]; lyd2[j+j+chN]=lyd[i+i+chN]; lyd2[j+j+1+chN]=-lyd[i+i+1+chN]; } else { lyd2[i+i+chN]=0.; lyd2[i+i+1+chN]=0.; } } for (i=0; i<N; i++) lyd[i+chN]=lyd2[i+chN]; } GUI_stopprogressbar(); }
void multiply_phase_ok(void) { int i; double real, imag, amp, phase; int ch,chN; int_progval(); GUI_startprogressbar(0,progval,samps_per_frame*N/2); for(ch=0;ch<samps_per_frame;ch++){ chN=ch*N; for (i=0; i<N/2; i++) { *progval=chN/2+i; real=lyd[i+i+chN]; imag=lyd[i+i+1+chN]; if(multiplyphase_phase_random){ phase=2*3.14159265*((double)random())/((double)RAND_MAX); }else{ phase=atan2(imag, real); phase*=multiplyphase_phase_multiplier; } amp=sqrt(imag*imag+real*real); lyd[i+i+chN]=amp*cos(phase); lyd[i+i+1+chN]=amp*sin(phase); } } GUI_stopprogressbar(); }