MIDI 蓝牙 LE、SYSEX 消息不完整
Posted
技术标签:
【中文标题】MIDI 蓝牙 LE、SYSEX 消息不完整【英文标题】:MIDI Bluetooth LE, SYSEX messages are not complete 【发布时间】:2016-12-16 10:20:05 【问题描述】:使用 MIDI 蓝牙 LE 框架,我通过蓝牙发送此 MIDI SYSEX 消息:
“F0H 26H 79H 0EH 7FH F7H”
我通过蓝牙接收:
“F0H 26H 79H 0EH 7FH”(缺少 SYSEX 结尾)
我必须以编程方式添加结束字节,但我不知道何时结束。这是框架中的错误吗?
【问题讨论】:
显示您的代码。 【参考方案1】:回调方法出错。现在它可以在 Yamaha MD-BT01 上正常工作。
捕获 MIDI In 数据并将其填充到环形缓冲区中以供以后处理:
static void MyMIDIReadProc(const MIDIPacketList *pktlist, void *refCon, void *connRefCon)
for (unsigned int i = 0; i < pktlist->numPackets; i++)
if (i == 0) packet2 = pktlist->packet[0];
nBytes2 = packet2.length;
iByte2 = 0;
while (iByte2 < nBytes2)
inputByte2 = packet2.data[iByte2];
inppoint2++;
if (inppoint2 >= bufsize2)
inppoint2 = 0;
inputBuffer2[inppoint2] = inputByte2;
iByte2 ++;
packet2 = *MIDIPacketNext(&packet2);
【讨论】:
以上是关于MIDI 蓝牙 LE、SYSEX 消息不完整的主要内容,如果未能解决你的问题,请参考以下文章
如何从音量级别创建 MIDI Sysex Master Volume 消息?
Audiokit 似乎只接收前三个 sysex MIDI 消息