【问题标题】:AKSequencer Midi Note at position 0.0 not sending start byteAKSequencer Midi Note 在位置 0.0 不发送起始字节
【发布时间】: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


【解决方案1】:

我偶然发现了一个答案, 我有两条轨道:第一条将它的 midi 输出分配给 AKCallbackInstrument 的 midi 输入,问题是第二条轨道没有分配输出。 删除未分配的轨道或将其 midi 输出设置为回调乐器的输入似乎已修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多