同様のことをする必要があるため、iOS でのサウンド生成に関するこの例を見ていますが、理解できない部分がいくつかあり、誰かがそれを手伝ってくれることを望んでいました。
コードのこの部分では:
double theta_increment = 2.0 * M_PI * viewController->frequency / viewController->sampleRate;
// Generate the samples
for (UInt32 frame = 0; frame < inNumberFrames; frame++)
{
buffer[frame] = sin(theta) * amplitude;
theta += theta_increment;
if (theta > 2.0 * M_PI)
{
theta -= 2.0 * M_PI;
}
}
何のための部品なのかよくわかりませんtheta += theta_increment;
。私にとっては、for ループ内で次のようなことを行う方が理にかなっています。
buffer[frame] = sin(theta_increment * frame);
なぜそれがうまくいかないのですか?また、コードのこの部分が何のためにあるのかわからないif (theta > 2.0 * M_PI)
ので、それについての説明も大歓迎です。