ios – Audiokit MIDI初始化令人困惑

CoreMIDI术语已经非常容易混淆和记录错误,而且Audiokit并没有像我希望的那样帮助它.

据我所知,每个应用程序应该有一个midi客户端引用的实例(MIDIClientRef). Audiokit具有AKMIDI类,为每个AKMIDI实例创建新的客户端引用,并且正在创建左,右和中心实例(包括每个AKMIDIInstrument,AKCallbackInstrument和AKMIDISampler实例的初始化).所有这些都在它们的内置构造函数中创建了带有硬编码名称的端点,所以我不知道我应该如何制作具有正确名称的端点.

最高价格是AKMIDISampler,其来源首先说:

/// Initialize the MIDI Sampler
public override init() {
    super.init()
    enableMIDI()
}

然后在以下几行:

/// Enable MIDI input from a given MIDI client
/// This is not in the init function because it must be called AFTER you start AudioKit
///
/// [snipped parameter comments for brevity]
open func enableMIDI(_ midiClient: MIDIClientRef = AKMIDI().client, name: String = "MIDI Sampler")

(注意它在init函数中)

我会非常高兴听到一些关于一般使用指南的澄清(我是否需要覆盖所有内容?)或链接到文档/文章更详细地解释这一点.

最佳答案 我们刚刚用#1141 PR解决了这个问题.

https://github.com/AudioKit/AudioKit/pull/1141/files

您可以指向podfile上的develop分支,直到下一个版本.

pod 'AudioKit', :git => 'https://github.com/AudioKit/AudioKit.git', :branch => 'develop'
点赞