#include extern SHORT sinewave[8][513]; extern UBYTE bitval[16]; /****************************************************************/ LONG AddWaves(LONG ampl[],SHORT control,BYTE wf[],UBYTE *ws) /* Create the compound waveform by adding the harmonics. This */ /* routine is a likely candidate for future conversion to assembler */ /* to speed things up. */ { SHORT i,j; LONG wavebuff[513]; LONG maxval,minval; for (j=0; j<513; j++) wavebuff[j]=0; for (i=0;i<8;i++) { if ((ampl[i]!=0)&&(control&bitval[i])) { for (j=0;j<513;j++) { wavebuff[j]=wavebuff[j]+ampl[i]*sinewave[i][j]; } } } maxval=minval=0; for (j=0;j<513;j++) { wf[j]=wavebuff[j]>>15; if (wavebuff[j]>maxval) maxval=wavebuff[j]; if (wavebuff[j]maxval) maxval=abs(minval); return(maxval); }