我现在使用的是coremidi,但是我想同时支持外置USB功能。
我试过一个叫Midi Monitor的应用程序,它在连接时确实能找到我的USB接口。问题是如何通过我自己的应用程序启用这个接口。正如MIDIGetNumberOfExternalDevices文档中所说,"它们的存在是完全可选的,只有当UI(如Audio MIDI Setup)添加它们时。"
我该如何添加它们?
问好。
"外部设备" 不是你想要的。这些是用户可以在OS X的Audio MIDI Setup中创建的东西,用来表示通过MIDI电缆连接到计算机的合成器或键盘或其他设备。系统不会自动创建。(它不能,因为MIDI非常原始,没有设备发现协议。)
外部设备只是为了方便用户命名和安排事物。它们不能用来做MIDI输入或输出。它们在iOS中尤其无用,因为没有Audio MIDI Setup应用程序。
使用MIDIGetNumberOfSources
和MIDIGetSource
来查找MIDI数据的来源。
要实际获得输入,使用MIDIInputPortCreate
创建一个输入端口,然后使用MIDIPortConnectSource
将一个或多个源连接到该端口。然后当MIDI进来时,你的端口的MIDIReadProc
将被调用。
类似地,对于输出,您将使用MIDIGetNumberOfDestinations
和MIDIGetDestination
来查找目的地,使用MIDIOutputPortCreate
创建输出端口,使用MIDISend
通过端口将数据发送到目的地。
参考,参见MIDIServices文档