Ios 音频套件。最接近的量化位置缺少一个节拍?

Ios 音频套件。最接近的量化位置缺少一个节拍?,ios,audiokit,Ios,Audiokit,我有一些iOS Swift代码(使用AudioKit 4.5.3),它使用AKSequencer为AKCallbackInstrument提供反馈,以播放八拍鼓循环 我也在量化一些用户输入,所以我从AKSequencer访问.currentRelativePosition和.nearestQuantizedPosition 我看到一些奇怪的量化结果,所以每当AKCallbackInstrument从AKSequencer接收到.noteOn事件时,我就检查了.currentRelativePos

我有一些iOS Swift代码(使用AudioKit 4.5.3),它使用AKSequencer为AKCallbackInstrument提供反馈,以播放八拍鼓循环

我也在量化一些用户输入,所以我从AKSequencer访问.currentRelativePosition和.nearestQuantizedPosition

我看到一些奇怪的量化结果,所以每当AKCallbackInstrument从AKSequencer接收到.noteOn事件时,我就检查了.currentRelativePosition和.nearestQuantizedPosition:

       case .noteOn:
                self.currentBeat = self.drummer.nearestQuantizedPosition(quantizationInBeats: 1.0).beats
                self.noteOnTimeStamp = self.drummer.currentRelativePosition.beats
                print(String(format: "Current beat : %.1f\n-- MIDI noteOn at : %.4f \n", self.currentBeat, self.noteOnTimeStamp ))
输出结果让我吃惊……除了第七拍之外,一切都正常。即使.currentRelativePosition始终正确地返回拍7,.nearestQuantizedPosition始终返回零,就像最近的拍7一样。节拍0和所有其他节拍由两个例程正确显示。任何想法都将不胜感激

当前节拍:0.0 --MIDI音符:0.0002

当前节拍:1.0 --MIDI音符:1.0002

当前节拍:2.0 --MIDI音符:2.0002

当前节拍:3.0 --MIDI音符:3.0001

当前节拍:4.0 --MIDI音符:4.0002

当前节拍:5.0 --MIDI音符:5.0003

当前节拍:6.0 --MIDI音符:6.0005

当前拍数:0.0 --MIDI音符:7.0003

当前节拍:0.0 --MIDI音符:0.0005

当前节拍:1.0 --MIDI音符:1.0003


编辑:我刚刚尝试了不同的序列,结果相同。我的序列现在是12拍,最接近的QuantizedPosition为11拍返回零

我的测试序列只是一串单拍音符,由以下内容创建:

    for beatPosition in 0 ... 11 {
        drummer.tracks[0].add(
            noteNumber: 27,
            velocity: 100,
            position: AKDuration(beats: Double(beatPosition)),
            duration: AKDuration(beats: 1))
    }
序列的长度似乎是精确的。打印鼓手。长度返回:

在44100.0=12.0拍数和120.0 BPM=6.0拍数下的264600个样本


12拍循环的输出:

当前节拍:9.0 --MIDI音符:9.0005

当前节拍:10.0 --MIDI音符:10.0003

当前拍数:0.0 --MIDI音符:11.0005

当前节拍:0.0 --MIDI音符:0.0002

当前节拍:1.0 --MIDI音符:1.0005