gpt4 book ai didi

audiokit - 从 AKSequencer 中删除速度事件

转载 作者:行者123 更新时间:2023-12-02 19:39:16 29 4
gpt4 key购买 nike

我需要从 AKSequencer 实例中删除所有节奏事件,但我找不到方法。

我尝试使用如下所示的clearRange()方法,但我不确定这是正确的方法,因为它不起作用:

var sequencer = AKSequencer()

// successfully adding a few tempo events with addTempoEventAt(tempo bpm: Double, position: AKDuration)

...

// trying to remove them

let sequenceLength = sequencer.length
sequencer.clearRange(start: AKDuration(beats: 0.0), duration: sequenceLength)

我有什么遗漏吗?

最佳答案

不幸的是,clearRange() 删除了音符事件和元事件,但是,正如您所观察到的,它不会删除节奏事件(文档的下一版本将明确说明这一点) - 谢谢你捕获这个)。 AKSequencer 有一个私有(private)的 clearTempoEvents 方法,由 setTempo() 方法内部调用,因此您可以使用 setTempo()清除所有现有的节奏事件。当然,删除现有的节奏事件后,这还将在序列的开头添加一个新的节奏事件,并将您作为参数包含的节奏。

所以它不会完全给你一个没有节奏事件的序列 - 但是一个序列需要一个节奏并且没有节奏事件它默认为 120 - 所以强制你明确起始节奏并不是这样的坏事。无论如何,除非您确实需要绝对没有节奏事件,否则 setTempo() 应该能够清除序列中所有现有的节奏事件。

关于audiokit - 从 AKSequencer 中删除速度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019770/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com