3

我正在尝试在播放 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 只是第一个音符。

非常欢迎任何帮助!

4

1 回答 1

2

我相信您没有正确地将您的音序器连接到您的 MIDI 采样器。如果您在此处查看一些 AudioKit 示例 Playground:

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

或者

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

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

sequencer.setGlobalMIDIOutput(piano.midiIn)

或者

sequencer.setGlobalMIDIOutput(drums.midiIn)

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

于 2017-10-12T06:04:01.023 回答