This is ug.ran.c in view mode; [Download] [Up]
/* Random Signal Generator */ #include "mm.head.h" #include "ug.head.h" #define AMP 1 #define INCR 2 #define POS 3 #define FROM 4 #define TO 5 ran UGHEAD{ UGINIT; register float seglen, segleninv ; float factor = 2. / 0x7fffffff ; if ( STARTNOTE ) VAL(TO) = random()*factor - 1.; UGLOOP{ if(VAL(INCR) != 0.){ seglen = Lfuncs / VAL(INCR); segleninv = 1. / seglen ; if( VAL(POS) > seglen){ VAL(FROM) = VAL(TO); VAL(TO) = random()*factor - 1.; VAL(POS) -= seglen; } VAL(OUT)++ = VAL(AMP)*(VAL(FROM) + (VAL(TO) - VAL(FROM))*VAL(POS)*segleninv); VAL(POS) += 1.; } else VAL(OUT)++ = VAL(AMP)*(VAL(FROM) + (VAL(TO) - VAL(FROM))*VAL(POS)*segleninv); UGEND(1) } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.