如何发送控制变更信息MSB和LSB选择银行?

时间:2018-02-05 03:42:29

标签: c# uwp midi

我在我的应用程序中使用UWP Midi来控制我的Yamaha MOX8键盘。我可以发送ProgramChangeMes​​sages来更改键盘上的补丁。我可以通过简单的程序变更消息更改前128个补丁。但是,有几家银行都有我想要切换的补丁。根据Yamaha文档,第一个银行或默认银行标记为PRE1(MSB = 63,LSB = 0),我需要在发送程序变更之前发送控制变更以更改银行。

下一个银行是PRE2(MSB = 63,LSB = 1)。 PRE3(MSB = 64,LSB = 2),PRE4(MSB = 63,LSB = 3),PRE5(MSB = 63,LSB = 4)一直通过USR3(MSB = 63,LSB = 10)。 GM还有一个银行(MSB = 0,LSB = 0),另一个用于DRUMS(MSB = 63,LSB = 32)

    // How do MSB, LSB value translate into the Control Change Message api below?         
    var ccMessage = new MidiControlChangeMessage(Byte Channel, Byte Control, Byte ControlValue);
    midiOutPort.SendMessage(ccMessage);

    // This message works for changing the program patch:
    IMidiMessage midiMessateToSend = new MidiProgramChangeMessage(0, 73);
    midiOutPort.SendMessage(midiMessateToSend);

应该将哪些值放入MidiControlChangeMes​​sage的Control和ControlValue参数中?

1 个答案:

答案 0 :(得分:1)

如数据列表手册的MIDI specficiationthis reference table或第120页所示,银行选择控制器的编号为0/32。 例如,要在第一个通道上选择“Trojan”(PRE5中的仪器74):

$layout$name == "panel"