Made change to SineWave to make wave addition easier IMPORTANT: call c_sinewave.UpdatePhase() at the end of any Generate() function