我有一个应用程序,它使用 sysex 将控制器设置发送到硬件合成器。换句话说:这样的系统消息从合成器中选择一个参数,并设置它的值。使用 audiokit,这非常简单。此类消息如下所示: [240, 00, 32, 51, 1, 16, 112, 00, 40, 95, 247] 将参数 40(在参数组 112 中)设置为 95 00, 32, 51, 1 定义合成器型号,其他部件号和通道。
现在我尝试构建相反的东西:合成器将其参数和值发送到应用程序。
我确实在新版本的 audiokit 中收到了这样的 sysex 消息,其中收到了 MIDISystemCommand(_ data: [MIDIByte])功能。通过蓝牙连接 midi 的示例(使用 Yamaha MD-BT01 时):[240, 0, 32, 111, 64, 89, 0, 64, 87, 64, 192, 239, 91, 21, 191, 1, 0, 0, 1, 0, 247] 使用有线 MIDI 转 USB 时会有所不同(Roland UM-ONE)使用我的有线 Roland UM-ONE 我会收到不同的信息。它们看起来像这样: [240, 0, 32, 15, 223, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0,
大多数消息包含 21、17 或 13。很多消息只包含一个数字,即 247 前两条消息包含很多数字,可能大约 30,大部分是零
当我将参数发送到合成器时,参数的值应该在 0 到 127 之间(这是我的应用程序中的整数,在发送之前转换为 midi 字节:midiByte(127))。
但我收到的数字是更高的数字,如上例所示。我想我需要以某种方式转换这些数字,但是如何?我在看什么类型的数字?
有人可以指出我的一些可能性吗?