#define FIRST_HARMONIC 2 long lTempSinus; unsigned char harmonic; //------------------------------------------------------------------------------ void LoadHarmonic() { lTempSinus += sinus[ ( s2 * harmonic ) & MAXBIT_SINE ] / harmonic; } //------------------------------------------------------------------------------ // Load Saw //------------------------------------------------------------------------------ void LoadSaw() { for( s2 = 0; s2 < LUTSIZE_SINE; s2++ ) { lTempSinus = sinus[ s2 ]; for( harmonic = FIRST_HARMONIC; harmonic <= sawpartials + sawpartialsextra; harmonic++ )LoadHarmonic(); sawlut[ s2 ] = ( short )( lTempSinus >> 1 ); } } //------------------------------------------------------------------------------ // Load Square //------------------------------------------------------------------------------ void LoadSquare() { for( s2 = 0; s2 < LUTSIZE_SINE; s2++ ) { lTempSinus = sinus[ s2 ]; for( harmonic = FIRST_HARMONIC; harmonic <= squarepartials + squarepartialsextra; harmonic++ )if( harmonic & 1 )LoadHarmonic(); // odd harmonics only squarelut[ s2 ] = ( short )( lTempSinus ); } }