我正在尝试使用方波生成声音。声音在播放,但听起来太刺耳了。 这是我的例子的代码:
for(int i=0; i<SE_TABLE_SIZE; i++)
{
abc = 0.1*sin(2 * M_PI * data.soundPitch[freq] * ((double)i/(double)SAMPLE_RATE));
if(abc >= 0)
data.sine[i] += 0.05;
else
data.sine[i] += -0.05;
}
Pa_Sleep(duration);
for(int i=0; i<SE_TABLE_SIZE; i++)
{
abc = 0.1*sin(2 * M_PI * data.soundPitch[freq] * ((double)i/(double)SAMPLE_RATE));
if(abc >= 0)
data.sine[i] -= 0.05;
else
data.sine[i] -= -0.05;
}
我正在生成正弦波然后我正在检查值。如果它的重量大于0 - 0.05则分配。否则它是-0.05。在我看来它应该有用,但正如我之前写的那样 - 它太苛刻了。有人可以解释一下我做错了什么吗?也许你有更好的解决方案?