与 wav AudioKit 一起播放 MIDI 文件

Play MIDI file together with wav AudioKit

我正在尝试在播放 wav 音频时播放 midi 文件。

我试过

let akSequencer = AKSequencer(filename: "melody")
akSequencer.enableLooping()
akSequencer.play()

但它只播放第一个音符,没有其他音符。此外,我无法使用混音器将其与正在加载的 wav 文件混合,例如:

let akMidiSampler = AKMIDISampler()
let akSampler = AKSampler()
let wavFile = try AKAudioFile(forReading: wavUrl!)
try akSampler.loadAudioFile(wavFile)

let mixer = AKMixer(akSampler, akMidiSampler)
mixer.volume = 1

AudioKit.output = mixer
AudioKit.start()
akSampler.play()

正在播放 wav 音频,但 midi 只是第一个音符。

非常欢迎任何帮助!

我相信您没有正确地将音序器连接到 MIDI 采样器。如果您在这里查看一些 AudioKit 示例游乐场:

http://audiokit.io/playgrounds/Playback/Sequencer/

http://audiokit.io/playgrounds/Playback/Drum%20Sequencer/

您会注意到有一条线将音序器连接到采样器,例如:

sequencer.setGlobalMIDIOutput(piano.midiIn)

sequencer.setGlobalMIDIOutput(drums.midiIn)

最终你可以为音序器的不同轨道使用不同的采样器,但我认为这种全局方法现在最适合你。请记住,您可能必须在 iOS 上启用音频背景模式才能使 MIDI 工作。 HTH!