Мне трудно понять, как сформировать треугольную (не пилообразную) волну из синусоиды.
Я понимаю, как создать его для прямоугольной волны:
if( sineValue >= 0 )
value = amp;
else
value = -amp;
Но я не уверен, как изменить это, чтобы приспособиться к треугольной волне.