Я пытаюсь сгенерировать различные формы волн для простого приложения iOS для синтеза волн, над которым я работаю. Вот как я генерирую синусоиду:
if (waveType == 1) // sine wave
{
//NSLog(@"sine in AU");
for (int i=0;i<n;i++)
{
float x = 0.0; // default to silence
if (toneCount > 0) // or create a sinewave
{
x = testVolume * sinf(ph);
ph = ph + dp;
if (ph > M_PI) { ph -= 2.0 * M_PI; } // sine wave
toneCount -= 1; // decrement tone length counter
}
if (ptrLeft != NULL){
ptrLeft[ i] = x;
}
if (ptrRight != NULL) {
ptrRight[i] = x;
}
}
}
Для прямоугольной волны я предполагал, что это сработает, но это не так:
if (ph > M_PI) {
ph -= 2.0 * M_PI;
ph >= 0 ? 1.0 : -1.0;
}
Как мне создать пилообразные и треугольные волны и где прямоугольная волна идет не так?
Спасибо, я новичок в программировании для iOS и люблю работать со звуком.