CoreMidi和外接USB控制器



我现在使用的是coremidi,但是我想同时支持外置USB功能。

我试过一个叫Midi Monitor的应用程序,它在连接时确实能找到我的USB接口。问题是如何通过我自己的应用程序启用这个接口。正如MIDIGetNumberOfExternalDevices文档中所说,"它们的存在是完全可选的,只有当UI(如Audio MIDI Setup)添加它们时。"

我该如何添加它们?

问好。

"外部设备" 不是你想要的。这些是用户可以在OS X的Audio MIDI Setup中创建的东西,用来表示通过MIDI电缆连接到计算机的合成器或键盘或其他设备。系统不会自动创建。(它不能,因为MIDI非常原始,没有设备发现协议。)

外部设备只是为了方便用户命名和安排事物。它们不能用来做MIDI输入或输出。它们在iOS中尤其无用,因为没有Audio MIDI Setup应用程序。

使用MIDIGetNumberOfSourcesMIDIGetSource来查找MIDI数据的来源。

要实际获得输入,使用MIDIInputPortCreate创建一个输入端口,然后使用MIDIPortConnectSource将一个或多个源连接到该端口。然后当MIDI进来时,你的端口的MIDIReadProc将被调用。

类似地,对于输出,您将使用MIDIGetNumberOfDestinationsMIDIGetDestination来查找目的地,使用MIDIOutputPortCreate创建输出端口,使用MIDISend通过端口将数据发送到目的地。

参考,参见MIDIServices文档

最新更新