首页 > 解决方案 > Audiokit:(V5)音序器无法在轨道的同一位置同时播放音符

问题描述

我已经使用 Audiokit 的 AKAppleSequencer 和 AKSequencer 2 年了。这是我第一次适应库的新 V5 版本。无论出于何种原因,我只能同时演奏一个音符。

下面是我正在尝试做的一个非常简单的示例:

public func setupSequencerForInterval(note1: MIDINoteNumber, note2: MIDINoteNumber) {

        sequencer.clear()
        sequencer = Sequencer(targetNode: sampler)
        sequencer.tempo = 120
        sequencer.loopEnabled = false
        sequencer.length = 12.0

        sequencer.add(noteNumber: note1, velocity: 127, channel: 1, position: 0.0, duration: 4.0, trackIndex: 0)
        sequencer.add(noteNumber: note2, velocity: 127, channel: 1, position: 4.0, duration: 4.0, trackIndex: 0)
        sequencer.add(noteNumber: note1, velocity: 127, channel: 1, position: 8.0, duration: 4.0, trackIndex: 0)
        sequencer.add(noteNumber: note2, velocity: 127, channel: 1, position: 8.0, duration: 4.0, trackIndex: 0)

    }

这听起来像

3 个全音符的序列:第一个全音符在 上note1,第二个全音符在 上note2,第三个全音符同时note1演奏note2

我已经测试了我的采样器以确保它不是单音的,并且它可以以复音方式播放音符。

更奇怪的是,如果我将最后一行(将音符 2 整个音符添加到与位置 8.0 的音符 1 相同的位置)更改为大于8.0的任何位置,就会出现复音的效果你可以在这里听到,position最后一次sequencer.add通话使用了 8.01 的值

这是预期的行为吗?不Sequencer应该在同一个位置演奏多个音符吗?任何指导将不胜感激,谢谢!

标签: audiokit

解决方案


根据 AudioKit 团队的说法,这不是预期行为,正在调查:https ://github.com/AudioKit/AudioKit/issues/2409


推荐阅读