单声道合成器中的按位(&)比较

时间:2015-03-01 22:15:22

标签: c xcode loops binary midi

int main ()
{
    int note, velocity;
    int playingNote = -1;
    float frequency;
    printf("play the Axiom\n");

    int val = aserveGetSequenceRow(0);
    int maskedval = val & 8192;

    while(true)
    {
        note = aserveGetNote();
        velocity = aserveGetVelocity();
        if(velocity > 0)
        {
            if(maskedval == 8192)
            {
                frequency = 440 * pow(2, (note-69) / 12.0);
                aserveOscillator(0, frequency, 1.0, 0);
                playingNote = note;
            }
        }
        else if(note == playingNote)
        {
            aserveOscillator(0, 0, 0, 0);
        } 
    }
    return 0;
}

我希望这个基本的单声道合成器的第一个振荡器在按下midi控制器上的键时打开(速度> 0)并且提供aserveGetSequenceRow(0)值变为8192,用户将通过转动第三个开关来完成16位二进制表示(0010000000000000)

它不起作用!我究竟做错了什么?

0 个答案:

没有答案