如何发送 Control Change Messages MSB 和 LSB 到 select bank?

How to send Control Change Messages MSB and LSB to select bank?

我在我的应用程序中使用 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) 还有一个 bank 和 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);

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

如数据列表手册的 MIDI specficiation, or this reference table 或第 120 页所示,bank select 控制器的编号为 0/32。 例如,第一个通道上的 select "Trojan"(PRE5 中的乐器 74):

... new MidiControlChangeMessage(0,  0, 63);
... new MidiControlChangeMessage(0, 32,  4);
... new MidiProgramChangeMessage(0,     73);