如何发送 Control Change Messages MSB 和 LSB 到 select bank?
How to send Control Change Messages MSB and LSB to select bank?
我在我的应用程序中使用 UWP Midi 来控制我的 Yamaha MOX8 键盘。我可以发送 ProgramChangeMessages 来更改键盘上的补丁。我可以通过一个简单的程序更改消息来更改前 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);
应将哪些值放入 MidiControlChangeMessage 的 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);
我在我的应用程序中使用 UWP Midi 来控制我的 Yamaha MOX8 键盘。我可以发送 ProgramChangeMessages 来更改键盘上的补丁。我可以通过一个简单的程序更改消息来更改前 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);
应将哪些值放入 MidiControlChangeMessage 的 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);