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

whi*_*ler 5 core-audio ios swift audiokit

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

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

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

编辑:关键步骤似乎是使用MusicTrackSetDestNode它需要一个AUNode. AVAudioUnitSamplerAVAudioNode具有auAudioUnit类型 属性的AUAudioUnit。基本的 API 就像AUGraphNodeInfo为您提供来自音频节点的音频单元。如何从音频单元获取音频节点?

Gen*_*isa 7

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

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