【问题标题】:naudio Midi input - filter e.MidiEvent to just data2 parameter?naudio Midi 输入 - 将 e.MidiEvent 过滤为仅 data2 参数?
【发布时间】:2017-03-29 02:34:15
【问题描述】:

使用 naudio 编写一个接受 MIDI 输入的应用程序。设法让 midi 输入正常输出到控制台,但要使用数据,我需要能够隔离部分数据。我的代码是

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

将以下行写入控制台。

0 ControlChange Ch: 1 Controller 48 Value 51

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

【问题讨论】:

    标签: c# midi naudio


    【解决方案1】:

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

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

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

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

    并处理它:

            Console.WriteLine(cce.ControllerValue);
        }
    }
    

    【讨论】:

    • 耶!就是那个。干杯:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多