1

我正在尝试使用 audiokit 从 mac 上的应用程序中的硬件合成器接收系统消息。这些合成器消息由 11 个数字组成,例如:

240,00,32,51,01,16,112,00,40,95,247

在当前发布的 audiokit (4.5.5) 版本中,这样的消息是在函数中的 AKMIDIListener 类中接收的:receivedMIDISystemCommand(data). 她的“数据”对象收到如下“混乱”消息:[240, 0, 32, 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, 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,

一些观察 - 似乎如此大量的数字是由 256 个数字的 6 个部分组成的。它们以取自真实消息的三个数字开头,然后是 253 个零。- 大多数部分都是重复的。

有了这一切,我可以重新创建原始消息。当我这样做时,我发现每条消息都被多次接收。而且很多消息似乎都丢失了。

长话短说,我真的很喜欢 Audiokit 有很多原因,但我不能用它来接收 sysex。

4

2 回答 2

0

自从提出并回答了这个问题以来,AudioKit 的 sysex 处理已经得到了改进,所以它现在应该可以更好地工作了。

于 2018-12-13T17:48:09.890 回答
0

在我看来,audiokit 正在将我的 11 位系统消息切割成 4 条较小的消息,每条 3 位。只有第一条消息以 240 开头,并被识别为 syses 消息。

以下 3 部分根本不被识别为任何东西,并且丢失了。

第一条消息会让 Audiokit 崩溃,因为它不包含必要的结束编号 (247)。

试图改变这种行为,但没有运气。Audiokit 是一个非常好的工作平静,但遗憾的是我猜不适合我的项目。

于 2017-10-18T19:04:14.147 回答