首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将AKSequencer连接到AKCallbackInstrument?

如何将AKSequencer连接到AKCallbackInstrument?
EN

Stack Overflow用户
提问于 2019-01-13 16:51:30
回答 2查看 625关注 0票数 7

我想读取一个midi文件,并在触发便笺事件时显示内容。我发现了一个堆栈溢出问题,第二个答案建议使用AudioKit:How Do I Get Reliable Timing for my Audio App?更准确地说,建议使用AKSequencer吸收应用程序中的midi文件,然后将其链接到AKCallbackInstrument以触发事件,并为每个midi便笺事件调用一个函数。

我使用本教程安装了AudioKit 4.5.5,然后我成功地运行了教程的代码,因此我知道项目中正确地包含了AudioKit。

然后我写了自己的代码:

代码语言:javascript
复制
let sequencer = AKSequencer(filename: "myMidiFile.mid")
let callbackInstr = AKCallbackInstrument()

callbackInstr.callback = myCallBack
sequencer.setGlobalMIDIOutput(callbackInstr.midiIn)

func myCallBack(a:UInt8, b:MIDINoteNumber, c:MIDIVelocity){
    print(b)
}

func test() {
    do {
        try AudioKit.start()
    }
    catch {
        print("Oops! AudioKit didn't start!")
    }

    sequencer.play()
}

当我试图构建我的项目时,sequencer.setGlobalMIDIOutput(callbackInstr.midiIn)行上出现了一个错误

错误是Value of type 'AKCallbackInstrument' has no member 'midiIn'

我试图清理项目和重新构建,但错误仍然存在。

你能解释一下为什么我会犯这个错误吗?我该怎么办才能解决这个问题?因为在AudioKit文档中,我发现AKCallbackInstrument是AKMIDIInstrument的一个子类,它有一个名为“midiIn”的属性。https://audiokit.io/docs/Classes/AKCallbackInstrument.html https://audiokit.io/docs/Classes/AKMIDIInstrument.html

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-23 05:39:39

的确,类AKCallbackInstrument没有属性midiIn,尽管文档确实显示它是以这种方式使用的。不要使用AKCallbackInstrument,,而是使用AKMIDICallbackInstrument.这个类有midiIn,并且似乎工作得很好。

票数 3
EN

Stack Overflow用户

发布于 2019-01-25 13:54:09

打字机找到了解决我问题的办法。下面是现在起作用的代码,每次播放时打印音符的midi号(但我还没有添加声音):

代码语言:javascript
复制
// dont write the .mid extension in filename :
let sequencer = AKSequencer(filename:"coucou") 
let callbackInstr = AKMIDICallbackInstrument()
callbackInstr.callback = myCallBack
sequencer.setGlobalMIDIOutput(callbackInstr.midiIn)
sequencer.play()

func myCallBack(a:UInt8, b:MIDINoteNumber, c:MIDIVelocity) -> () {
    if (a == 144) {  // if noteOn
        print(b)
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54171051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档