home *** CD-ROM | disk | FTP | other *** search
/ Education Sampler 1992 [NeXTSTEP] / Education_1992_Sampler.iso / SoundAndMusic / cmix / lib / dliget.c < prev    next >
C/C++ Source or Header  |  1989-02-25  |  376b  |  21 lines

  1. extern float SR;
  2.  
  3. float dliget(a,wait,l)
  4. float *a,wait;
  5. int *l;
  6. {
  7. /* get interpolated value from delay line, wait seconds old */
  8.     register im1;
  9.     float x = wait * SR;
  10.     register i = x;
  11.     float frac = x - i;
  12.     i = *l - i;
  13.     im1 = i - 1;
  14.     if(i <= 0) { 
  15.         if(i < 0) i += *(l+1);
  16.         if(i < 0) return(0.);
  17.         if(im1 < 0) im1 += *(l+1);
  18.         }
  19.     return(*(a+i) + frac * (*(a+im1) - *(a+i)));
  20. }
  21.