是否可以使用 MusicSequence 将 MusicPlayer 连接到 AVAudioUnitSampler?

Is it possible to connect a MusicPlayer using MusicSequence to AVAudioUnitSampler?

我正在使用 Audiokit 来满足我的 iOS 应用程序的音频需求,我需要使用音序器以编程方式控制音符序列,并且我想用它来驱动采样器。 Audiokit 似乎被设计为在内部使用 MIDI,但我想避免这种情况并直接从音序器转到采样器,因为使用 MIDI 似乎会使所有内部连接出现在其他应用程序的虚拟 MIDI 列表中。

我的问题是:是否可以使用 MusicPlayerMusicSequenceMusicTrack(来自 AudioToolbox)将音序器连接到 AVAudioUnitSampler(来自 AVFoundation) ?

另一种选择显然是使用 AudioComponentDescription 构建采样器并构建 AUGraph,但我想尽可能使用 Audiokit 助手。

编辑:关键步骤似乎是使用需要 AUNodeMusicTrackSetDestNodeAVAudioUnitSampler 是具有 auAudioUnit 属性 类型 AUAudioUnitAVAudioNodeAUGraphNodeInfo 等基本 API 为您提供来自音频节点的音频单元。如何从音频单元获取音频节点?

您可以通过 AVAudioUnitSampler 轻松使用 AVAudioSequencer。这适用于许多情况。

它不适用于 "on the fly" 构建的 MIDI 序列,因为现在除了 AudioToolbox 之外没有 API 来创建序列。提交一个雷达要求这个。 (他们厌倦了从我这里听到这件事)。否则,一种笨拙的方法是创建一个 MusicSequence,将其转换为 Data 实例,然后将其交给 AVAudioSequencer。