naudio Midi输入 - 将e.MidiEvent过滤为data2参数?

时间:2017-03-29 02:34:15

标签: c# midi naudio

编写一个使用naudio进行MIDI输入的应用程序。管理得到midi输入并输出正常到控制台,但使用我需要的数据能够隔离部分数据。我的代码是

    void midiIn_MessageReceived(object sender, MidiInMessageEventArgs e)
    {
        Console.WriteLine(e.MidiEvent);
    }

将以下行写入控制台。

0 ControlChange Ch: 1 Controller 48 Value 51

这很好但是我如何只获取data2(值)然后传递给某些东西?我可以做一些非常糟糕的事情,比如将它切成一个字符串,但这可能不是前进的方法......

1 个答案:

答案 0 :(得分:3)

您必须从消息信息中获取MIDI消息:

void midiIn_MessageReceived(object sender, MidiInMessageEventArgs e)
{
    MidiEvent me = e.MidiEvent;

然后你必须检查正确的消息类型:

    ControlChangeEvent cce = me as ControlChangeEvent;
    if (cce != null) {

处理它:

        Console.WriteLine(cce.ControllerValue);
    }
}