【问题标题】:Audiokit MIDI initialisation is confusingAudiokit MIDI 初始化令人困惑
【发布时间】:2018-04-25 11:40:21
【问题描述】:

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

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

最高价归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")

(注意它IS在init函数中)

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

【问题讨论】:

    标签: ios swift core-audio coremidi audiokit


    【解决方案1】:

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

    在下一个版本之前,您可以指向 podfile 上的开发分支。

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

    【讨论】:

    • 您的 PR 似乎解决了命名问题,并且对开发分支进行了其他改进以处理 midi 客户端引用问题,因此我将其标记为已接受的答案。该文档仍然具有误导性。我可以忍受它,但将此评论留给任何可能找到问题的人。
    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 2019-09-27
    • 2016-06-30
    • 2017-06-04
    • 2022-01-21
    • 2022-01-17
    • 1970-01-01
    • 2018-02-26
    相关资源
    最近更新 更多