Audiokit MIDI 初始化令人困惑

Audiokit MIDI initialisation is confusing

CoreMIDI 术语已经非常混乱且记录不当,Audiokit 并没有像我希望的那样提供帮助。

据我所知,每个应用程序都应该有一个 MIDI 客户端引用实例 (MIDIClientRef)。 Audiokit 有 AKMIDI class 为每个 AKMIDI 实例创建一个新的客户端引用,实例正在左、右和中心创建(包括每个 AKMIDIInstrument 的初始化, AKCallbackInstrumentAKMIDISampler 实例)。所有这些还在其内置构造函数中创建具有硬编码名称的端点,因此我不明白我应该如何创建具有适当名称的端点。

最高价到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函数中)

我会非常高兴听到一些关于一般使用指南的说明(我需要覆盖所有内容吗?)或指向 documentation/articles 的链接对此进行更详细的解释。

我们刚刚通过 #1141 PR 解决了这个问题。 https://github.com/AudioKit/AudioKit/pull/1141/files

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

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