Changeset 35

Show
Ignore:
Timestamp:
05/09/07 22:56:37 (2 years ago)
Author:
gordonjcp
Message:

ANDing seems to be faster than modulo, but not by much

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • nekostring/trunk/src/neko_ensemble.c

    r34 r35  
    6161          //d1=200+20*sin(x1)+1.0f; d2=sin(y1)+1.0f; 
    6262          d1 = 200 + 20*sine_wave[(int)(x1)]+1.0f; d2 = 0.5*sine_wave[(int)(y1)] + 1.0f; 
    63           //d1=200; d2=1; 
    64           //printf("%f %f\n",d1,x1); 
    65           //printf("%f %f\n",d1,sine_wave[(int)(x1)]); 
    6663          delay_1 = 1100 + (d1*depth1+d2*depth2 * dr); 
     64 
    6765          //d1=200+20*sin(x1+2.1)+1.0f; d2=0.5*sin(y1+2.1)+1.0f; 
    68           d1 = 200 + 20*sine_wave[(int)(x1+341)%1024]+1.0f; d2 = 0.5*sine_wave[(int)(y1+341)%1024] + 1.0f; 
     66          d1 = 200 + 20*sine_wave[(int)(x1+341) & BUF_MASK]+1.0f; d2 = 0.5*sine_wave[(int)(y1+341) & BUF_MASK] + 1.0f; 
    6967          delay_2 = 1000 + (d1*depth1+d2*depth2 * dr); 
     68 
    7069          //d1=200+20*sin(x1+4.2)+1.0f; d2=0.5*sin(y1+4.2)+1.0f; 
    71           d1 = 200 + 20*sine_wave[(int)(x1+682)%1024]+1.0f; d2 = 0.5*sine_wave[(int)(y1+682)%1024] + 1.0f; 
     70          d1 = 200 + 20*sine_wave[(int)(x1+682) & BUF_MASK]+1.0f; d2 = 0.5*sine_wave[(int)(y1+682) & BUF_MASK] + 1.0f; 
    7271          delay_3 = 1200 + (d1*depth1+d2*depth2 * dr); 
    7372 
     
    7574// antialias them 
    7675// first sample 
    77         s1 = synth->ens_buffer[(buffer_pos - (int) delay_1) & BUF_MASK]; 
     76 
     77          s1 = synth->ens_buffer[(buffer_pos - (int) delay_1) & BUF_MASK]; 
    7878    s2 = synth->ens_buffer[((buffer_pos - (int) delay_1) - 1) & BUF_MASK]; 
    7979    s_mix_1 = delay_1 - (int) delay_1; 
     
    9090        so3=(1-s_mix_1)*s1+s_mix_1*s2; 
    9191 
     92/* 
     93          s1 = synth->ens_buffer[(buffer_pos - (int) delay_1) % WAVE_POINTS]; 
     94          s2 = synth->ens_buffer[((buffer_pos - (int) delay_1) - 1) % WAVE_POINTS]; 
     95          s_mix_1 = delay_1 - (int) delay_1; 
     96          so1=(1-s_mix_1)*s1+s_mix_1*s2; 
     97 
     98          s1 = synth->ens_buffer[(buffer_pos - (int) delay_2) % WAVE_POINTS]; 
     99          s2 = synth->ens_buffer[((buffer_pos - (int) delay_2) - 1) % WAVE_POINTS]; 
     100          s_mix_1 = delay_2 - (int) delay_2; 
     101          so2=(1-s_mix_1)*s1+s_mix_1*s2; 
     102 
     103          s1 = synth->ens_buffer[(buffer_pos - (int) delay_3) % WAVE_POINTS]; 
     104          s2 = synth->ens_buffer[((buffer_pos - (int) delay_3) - 1) % WAVE_POINTS]; 
     105          s_mix_1 = delay_3 - (int) delay_3; 
     106          so3=(1-s_mix_1)*s1+s_mix_1*s2; 
     107*/ 
    92108// mix is the wet/dry proportion 
    93109        right[sample] = (left[sample] * (1 - mix)) + ((so1+so2)/2 * mix);