This is zdelay.c in view mode; [Download] [Up]
extern int bug; int first = 1; float zdelay(input, inc, zlag, buflen, buf, rind, wind) float input, /* input sample */ inc; /* increment for read pointer */ float zlag; /* constant delay for read pointer */ int buflen; /* bufer length */ float *buf; /* pointer to buffer */ float *rind; /* index in buffer of read pointer */ int *wind; /* index in buffer of write pointer */ { register float s1, s2, r; register int is1, is2; if (first) { *rind = *wind - zlag; first = 0; } *(buf + *wind) = input; if (++*wind >= buflen) *wind = 0; if (*rind < 0.0) *rind += buflen; if (*rind < buflen-1) s2 = *rind + 1.0; else *rind = s2 = 0.0; is1 = *rind; is2 = s2; r = (buf[is1] + ((*rind-is1) * (buf[is2]-buf[is1]))); *rind += inc; return(r); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.