该计划直接结束,为什么?

时间:2014-11-21 15:31:43

标签: c++ c audio

此代码应重复检查Axiom键盘上D9滑块的状态,并使用其值来控制频率的音高。

int main()
{
    int note;
    int modwheel;
    float frequency;


    while (modwheel != 0)

    {
        note = aserveGetControl(74);
        modwheel = aserveGetControl(01);

        frequency = 440 * pow(2, (note-69) /12.0);
        aserveOscillator(1,frequency,1.0,0);
        aserveSleep(100);
    }



    return 0;
}

1 个答案:

答案 0 :(得分:3)

你永远不会初始化modwheel,所以当while循环开始时,它的值为" random",即它可以为零,这会导致循环立即结束。 / p>

使用do/while循环确保它至少有一次迭代,或使用内部带有while (true)的无限if循环,以避免实际处理0作为有效输入