编写一个使用naudio进行MIDI输入的应用程序。管理得到midi输入并输出正常到控制台,但使用我需要的数据能够隔离部分数据。我的代码是
void midiIn_MessageReceived(object sender, MidiInMessageEventArgs e)
{
Console.WriteLine(e.MidiEvent);
}
将以下行写入控制台。
0 ControlChange Ch: 1 Controller 48 Value 51
这很好但是我如何只获取data2(值)然后传递给某些东西?我可以做一些非常糟糕的事情,比如将它切成一个字符串,但这可能不是前进的方法......
答案 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);
}
}