如何发送由外部midi时钟触发的midi音符?

问题描述 投票:0回答:1

我正在开发iOS的琶音器应用程序,该应用程序可以将无限音符序列发送到与MIDI兼容的外部硬件合成器。我正在使用AudioKit接收和发送MIDI信息。

我的录音棚设置包括E-RM多时钟设备,该设备为两个合成器和鼓机发送一个主MIDI时钟,因此每个设备都可以与其他设备同步播放。

我希望我的iOS应用程序生成MIDI音符,并将其与其他也从多时钟设备接收MIDI时钟的设备同步发送到外部合成器。我使用的是iOS兼容的音频/ MIDI接口,因此我的应用程序可以接收时钟并将笔记发送到硬件合成器。

问题是,在工作几秒钟或几分钟后,注意到我的应用程序发送的时间开始漂移。滞后可能是恒定的(100-200ms)或随机的,从而使琶音合成器与其他机器不同步。

可以使用AudioKit框架正确实现此流程吗?

我当前的实现使用AKMIDIBeatObserver的receivedQuantum(time:quarterNote:beat:quantum:)函数来触发琶音器,每当它发送另一个八音符时。

通过AudioKit.midi.sendNoteOnMessage(noteNumber:velocity:channel:)呼叫发送音符。

ios swift audiokit coremidi
1个回答
0
投票

您是第一个涉足此领域的人。我可以说AKMIDIBeatObserver和AudioKit.midi.sendNoteOnMessage正是我要使用的。我也将尝试不使用任何日志记录,因为这可能会导致您经历过的滞后。听起来您正在尽我所能。如果您可以在此分享您的示例项目,我们将与您联系。我不知道会导致延迟的任何因素。

© www.soinside.com 2019 - 2024. All rights reserved.