gpt4 book ai didi

ios - 简单的 MIDI 路由没有音频输出

转载 作者:行者123 更新时间:2023-11-29 03:24:17 25 4
gpt4 key购买 nike

使用以下代码,我尝试将 MIDI 事件发送到 NSLog 合成器:

MIDIClientRef midiClient = NULL;

MIDIClientCreate(
CFSTR("MidiClient"),
NULL,
NULL,
&midiClient
);

MIDIPortRef midiClientOutPort = NULL;

MIDIOutputPortCreate(
midiClient,
CFSTR("MidiClientPort"),
&midiClientOutPort
);

NSLog(@"%lu", MIDIGetNumberOfDestinations());

MIDIEndpointRef endpoint = NULL;

endpoint = MIDIGetDestination(1);

CFPropertyListRef plist = NULL;
MIDIObjectGetProperties(endpoint, &plist, YES);

NSArray *temp = [NSArray arrayWithObject:(__bridge id)(plist)];
NSLog(@"%@", [temp description]);

MIDIPacketList packet;
packet.numPackets = 1;
packet.packet[0].data[0] = 0x90;
packet.packet[0].data[1] = 0x3c;
packet.packet[0].data[2] = 0x40;
packet.packet[0].timeStamp = 0;

MIDISend(midiClientOutPort, endpoint, &packet);

如果我检查 OSStatus,我不会收到任何错误。我得到一个 MIDIClient、一个 MIDIOutputPort 和 MIDISend 也很好。此外,我得到了没有错误的合成目标。合成器正在收听所有 MIDI channel ,如果我用音序器测试合成器是否响应音频。我按下按钮执行代码,但没有任何反应。

我做错了什么?

最佳答案

解决方法:

MIDIPacketList packet;
packet.numPackets = 1;
packet.packet[0].timeStamp = 0;
packet.packet[0].length = 3;
packet.packet[0].data[0] = 0x90;
packet.packet[0].data[1] = 0x3c;
packet.packet[0].data[2] = 0x40;

我必须设置长度属性!

关于ios - 简单的 MIDI 路由没有音频输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20664725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com