如何使用 Audiokit 可视化当前的 AKSequencer 位置?

Posted

技术标签:

【中文标题】如何使用 Audiokit 可视化当前的 AKSequencer 位置?【英文标题】:How to visualize current AKSequencer position with Audiokit? 【发布时间】:2018-03-02 21:11:41 【问题描述】:

我是 Audiokit 的新手。我想可视化正在运行的 AKSequencer 的当前位置。 是否有任何回调(如在 AKMetronome 中)或监听器或运行的根时钟/主循环,我可以连接?或者我应该使用以任何方式“触发”GUI 的 AKCallbackInstrument 吗?

有谁做过这个想要分享的吗?谢谢!

【问题讨论】:

我感觉我可以使用音序器中的 AKCallbackInstrument 来触发自定义函数,从而达到我的目标。 【参考方案1】:

我用AKCallbackInstrument 来做这件事。对于我写入 MIDI 事件的每个音序轨道,我都有一个姊妹音序器轨道发送到AKCallbackInstrument。当我为音轨编写一个 MIDI 事件时,我也会将一个 GUI 事件写入姊妹回调轨道。

由于您只能将 MIDIStatus、MIDINote 和 MIDIVelocity 数据发送到回调乐器,因此您必须将信息任意编码为这些格式。例如,MIDINote 0 可能表示一种类型的 GUI 事件,MIDINote 1 可能表示其他类型。创建一些枚举使这很容易。

当然,回调函数是在后台线程中调用的,所以不要忘记指定您的 GUI 更新应该在主线程中进行。

这种方法对我来说效果很好。

编辑:我怀疑您已经看到 this sample code 说明了非常相似的内容,但此链接可能对遇到此问题的其他人有用。

【讨论】:

是的,看到这个代码sn-p。我就是这么想出来的。谢谢!

以上是关于如何使用 Audiokit 可视化当前的 AKSequencer 位置?的主要内容,如果未能解决你的问题,请参考以下文章

使用AudioKit测量声音(频率加权)的声音水平

AudioKit:如何更改使用 AKMIDIEvent 播放的音符的音量或音高?

如何使用 AudioKit 的新 AKSequencer 播放 MIDI

如何使用 Audiokit 对原始值而不是 MIDI 音符进行排序

Audiokit 似乎只接收前三个 sysex MIDI 消息

如何使用 AudioKit 加载第三方音频单元