ftp.nice.ch/pub/next/unix/audio/Cmix.N.s.tar.gz#/cmix/objc/Oscili.m

This is Oscili.m in view mode; [Download] [Up]

#import "Oscili.h"

@implementation Oscili : Object
{
	float phs,si,amp,*floc;
}

+ create {
	id newInstance;		// local variable declaration
printf("in create\n");
	newInstance = [ self new ]; 	// create new instance
	[ newInstance phs : 0 ];
	return newInstance;		// return the new instance
}

- phs: (float) aPhs{
	phs = aPhs;
	return self;
}

- si: (float) aSi {
	si = aSi;
	return self;
}

- amp: (float) aAmp {
	amp = aAmp;
	return self;
}

- floc: (float *) aFloc {
	floc = aFloc ;
	return self;
}

- (float) value {
	register i = phs;
	register k = (i+1) % 512;
	float frac = phs - i;
	phs += si;
	while(phs >= 512)
		phs -= 512;
	return(*(floc+i) + (*(floc+k) - *(floc+i)) * frac) * amp;
}

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.