2

我想创建一个包含歌曲的每个度量的类/结构/其他,完成独立的速度和节拍计数,然后播放整首歌曲(可能来自用户输入的更新)。我只知道如何在整个 AKSequencer 轨道上更改这些变量;有没有办法独立存储这些数据,然后让它作为一个播放?并保持措施之间的连贯性,以免在它们之间“跳跃”?谢谢!

4

1 回答 1

3

AKSequencer 不擅长动态设置循环长度,但在音序器运行时添加或重写轨道内容完全没问题。这包括速度事件。

您为什么不将长度设置为任意长的长度,然后将您的 MIDI 事件逐个小节串在一起,而无需循环播放?跟踪到目前为止已经写了多少节拍,然后继续添加。在音序器运行时执行此操作应该没有问题。您甚至可以通过在每个度量的末尾触发回调函数来自动写入下一个柱,让它写入下一段(可以在运行时选择或“提示”)。您可以使用 来安排速度事件addTempoEventAt(),并以下一段的起点为起点。

当您的用户停止序列时,清除音轨、重置速度、倒回序列并重新开始。

于 2018-06-03T23:53:19.117 回答