通过虚拟输出使用AKSequencer发送MIDI

3

我正在尝试使用AKSequencer()从.mid文件发送midi数据,并将其发送到虚拟输出以在应用程序外使用它(详细信息如下)。我的问题是,我的AKSequencer无法像我想要的那样通过虚拟输出端口发送midi到我的应用程序之外

// My midiOutput is set like this: 
    let midiOut = AKMIDI()
    midiOut.createVirtualOutputPort()
    midiOut.openOutput() 

//And my AKSequencer connect to the midiOuput like this: 
     sequencer.setGlobalMIDIOutput(midiOut.virtualOutput)
  • 我设置了一个AKSampler(),以确保我的AKSequencer能够正常工作。

  • 我认为我的问题要么来自于我的midiOutput连接,要么来自于我的AKSequencer的使用方式,它并非像我想象的那样用于发送midi。

详细来说,我正在尝试从iOS应用程序通过蓝牙发送MIDI到DAW。感谢CABTMIDILocalPeripheralViewController,当两个设备建立连接时,设置连接以发送midi非常容易。我成功地使用AKMIDI().sendNoteOnMessage()发送了midi,所以我确定连接不是问题所在。


那问题是什么? - CL.
AKSequencer在虚拟输出上没有发送MIDI。也许我在虚拟输出方面有误。发送MIDI到应用程序外部的正确对象是什么? - Kyz
AKSequencer可以将MIDI发送到AKMIDICallbackInstrument或AKMIDIListener对象。您可以通过virtualOutput重新路由来自回调乐器或midi监听器的MIDI到其他应用程序。如果您想将midi发送到硬件或其他输出,例如CoreMIDI网络会话,则需要启用该输出,例如midi.openOutput("Session 1")。您可以通过midi.destinationNames获取所有目标,并让用户选择他们想要打开哪个。然后使用用户选择的目标名称打开该输出。 - cem olcay
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接