我想创建一个包含歌曲的每个小节的类/结构/其他,完成独立的节奏和节拍计数,然后播放整首歌曲(用户输入的潜在更新)。我只知道如何在整个AKSequencer轨道上更改这些变量;有没有办法独立存储数据,然后让它作为一个回放?并保持措施之间的一致性,以免“跳”"它们之间?谢谢!
答案 0 :(得分:2)
AKSequencer不擅长动态设置循环长度,但在音序器运行时添加或重写轨道内容完全没问题。这包括节奏事件。
为什么不将长度设置为任意长度,并将测量后的MIDI事件串起来而不进行循环?记录到目前为止已经写了多少节拍,并在此之后继续添加。在顺控程序运行时执行此操作应该没问题。您甚至可以通过在每个度量结束附近触发回调函数来自动编写下一个柱,使其编写下一个段(可以在运行时选择或“提取”)。您可以使用addTempoEventAt()
安排速度事件,并使用下一个分段的起点。
当您的用户停止序列时,清除曲目,重置速度,快退序列并重新开始。