我有更多时间玩AudioKit,但我有一些关于MIDI的问题。我试过谷歌搜索,我也检查了AKMIDI类引用,但这让我更加困惑。
让我们保持简单:我有一个UIButton应该给外部合成器一个“C”。
import AudioKit
midiOut.openOutput()
midiOut.sendEvent(AKMIDIEvent(noteOn: 72, velocity: 80, channel: 1))
sleep(1)
midiOut.sendEvent(AKMIDIEvent(noteOff: 72, velocity: 0, channel: 1))
显然,这段代码遍布整个ViewController.swift,sendEvents位于@IBAction中,但为了保持简单,我合并了LOC。
所以我的问题是:
对不起,如果这些问题荒谬可笑,但我真的对此确切的内部运作感到困惑。
提前多多感谢!
答案 0 :(得分:0)
是的,应该。你打开了所有输出,所以一切都应该得到输出。
我不确定无线MIDI,因为在AudioKit中没有特别考虑到这一点。如果它不“正常”,我可以尝试复制。
您可能必须使用openOutput(“蓝牙”)明确打开蓝牙连接
答案 1 :(得分:0)
您也可以使用模拟器测试您的应用。只需在模拟器上运行您的应用程序并打开Mac上的音频MIDI设置应用程序,转到网络设置并连接您的模拟器。这是一个截图:
您可以完全控制AKMIDI
*如果您想打开所有可用输出,请拨打midi.openOutput()
*如果您想打开一个特定的网络会话(主要名为“会话1”),请拨打midi.openOutput(name: "Session 1")
。
*您可以通过midi.destinationNames
字符串数组获取所有可用目的地,如果您想向用户提示midi dest选择器,则只需用他们的名字打开它们。
*关闭他们midi.endpoints.removeValue(forKey: "Session 1")
*对于虚拟输出,请拨打sequencer.midi.createVirtualOutputPort(name: "App MIDI Out")
,这对将MIDI发送到iOS / Mac中的其他应用非常有用
*此外,您可以订阅AKMIDIListener
协议的receivedMIDISetupChange
功能,以便在MIDI硬件/软件可用或不可连接时收到通知。