added triangle waveform