AudioKit 4.2:升级后自定义音序器与AKMIDISampler连接中断,求连接方法
解决AudioKit 4.2中自定义音序器与AKMIDISampler的连接问题
我前阵子刚把项目从AudioKit 4.1升级到4.2,也碰到了一模一样的问题——原来直接连接端口的代码突然失效,后来才明白官方把这些端口设为私有是为了强化组件封装性,确实更合理。下面给你两种对应的解决方式,看你的自定义音序器是做音频输出还是MIDI输出:
如果是音频节点间的连接
之前你可能是直接访问AKMIDISampler的公开输入端口来连接,类似这样:
// 4.1版本可用,4.2会报错因为sampler.input已私有 AudioKit.connect(myCustomSequencer.output, to: sampler.input)
在4.2里,只需要简化成直接连接两个节点即可,AudioKit内部会自动处理私有端口的连接逻辑:
// 4.2版本的正确写法 AudioKit.connect(myCustomSequencer, to: sampler)
如果是MIDI信号的连接
如果你的自定义音序器是用来生成MIDI事件驱动AKMIDISampler发声的,那应该通过MIDI路由来连接,而不是音频端口。可以直接把sampler设为音序器的MIDI接收方:
// 让自定义音序器的MIDI输出发送到sampler的MIDI输入 myCustomSequencer.addMIDIOutput(sampler.midiIn)
或者如果你的音序器是通过AKMIDI协议发送事件的,也可以让sampler作为监听者注册到音序器的MIDI输出流中。
另外提醒下,升级后别忘了检查AudioKit的启动逻辑,确保所有节点都正确添加到AudioKit的处理链里,避免因为初始化顺序导致的连接问题。
内容的提问来源于stack exchange,提问作者jbm
相关产品推荐
相关产品推荐

