【发布时间】:2019-08-28 13:37:17
【问题描述】:
在 AKSequencer 音轨中,我添加了 midi 音符,第一个音符位于 0
trackOne?.add(noteNumber: MIDINoteNumber(64), velocity: 100, position: AKDuration(beats: 0.0), duration: AKDuration(beats: 0.5))
位置 0 的音符永远不会在序列的单次运行中播放,但如果它处于循环中,就会奇怪地播放。 我将轨道 midi 输出输入到 AKMidiCallBackInstrument 中,在最初的播放中,它没有注册 noteOn 字节,它似乎只接收到音符结束字节。
因为播放第一个音符后的音符,我尝试将位置设置为 0.1 并且确实有效,也许在序列播放之前我需要调用/激活一些东西...
以前有没有人见过这样的事情,如果有,你是怎么解决的?谢谢。
【问题讨论】:
-
包含设置音序器的代码和/或在调用 play 之前所做的准备工作(例如调用 preroll、rewind 等)会很有帮助。此外,由于 AKSequencer 引用 2 个完全不同的类,具体取决于您使用的是 4.8 之前的 AudioKit 还是 AudioKit 4.8+,因此澄清版本会很有帮助。
-
@c_booth,版本:4.7.2,你的帖子实际上解决了我的问题,好吧,开始了我发现问题所在的事件链......我有一个静态类,我在其中初始化了一个混音器、AKCallBackInstrument 和振荡器库,也是我处理两个轨道初始化的另一个类,我将其中第一个的输出设置为回调乐器的 midi 输入,但我没有设置第二个的输出,当我整理代码以将其粘贴到此处时,我删除了第二条轨道并启动了应用程序,并且第一条轨道上的第一个音符开始工作......
-
至于你提到的事情,我在按下按钮时倒带,不要在应用程序启动时倒带......这是一个好习惯吗?在开始时也预卷序列,这正常吗?
标签: audiokit