This is ug.delay.c in view mode; [Download] [Up]
/* Delay with Gain Generator */
#include "mm.head.h"
#include "ug.head.h"
#define INP 1
#define AMP 2
#define TABLE 3
#define LENGTH 4
#define POS 5
delay
UGHEAD{
UGINIT;
if(TYPE(TABLE) != 'f'){ /* Find start of function if number given */
FORLIST(fp, next_fp, fplist) if(fp->f_index == (int) VAL(TABLE))break;
if(!fp){
Error++;
PROUT("DELAY: Function %.0f undefined\n",VAL(TABLE));
SEMIC; return;
}
LOC(TABLE) = fp->f_vals;
LEN(TABLE) = fp->f_len;
TYPE(TABLE) = 'f';
}
if(VAL(LENGTH) > LEN(TABLE)) VAL(LENGTH) = LEN(TABLE);
UGLOOP{
VAL(OUT)++ = VAL(AMP) * LOOKUP(TABLE, POS);
LOOKUP(TABLE, POS) = VAL(INP);
VAL(POS) += 1.0;
if(VAL(POS) >= VAL(LENGTH)) VAL(POS) = 0.;
UGEND(1)
}
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.