如何使用AudioKit的新AKSequencer播放MIDI [英] How to play MIDI with AudioKit's new AKSequencer

查看:236
本文介绍了如何使用AudioKit的新AKSequencer播放MIDI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在AudioKit 4.9.1上,无法使用新的AKSequencer(代替AKAppleSequencer)播放MIDI文件.没有声音播放.假定MIDI文件AND样本以前已与AKAppleSequencer一起使用,因此它们已正确加载.还启用了背景音频模式功能.

I'm on AudioKit 4.9.1 and can't manage to play a MIDI file with the new AKSequencer (replacing AKAppleSequencer). No sound playing. Assume that MIDI file AND samples are loaded correctly since they previously worked with AKAppleSequencer. Background audio mode capability is also enabled.

以下是相关代码:(我也尝试过AKSamplerAKAppleSampler,但结果相同)

Here's the relevant code: (I've also tried both AKSampler and AKAppleSampler but same result)

class MIDIPlayer {
    var sampler: AKSampler
    var legacySampler: AKAppleSampler
    var sequencer: AKSequencer

    init(withSfz sfz: String, orSf2 sf2: String, andMidiFile midiFile: String) {

        self.sampler = AKSampler()
        self.legacySampler = AKAppleSampler()
        try? legacySampler.loadSoundFont(sf2, preset: 0, bank: 0)
        sampler.loadSFZ(url: Bundle.main.url(forResource: sfz, withExtension: "sfz")!)

        AudioKit.output = sampler
        try? AudioKit.start()

        sequencer = AKSequencer(targetNode: sampler)
        // sequencer = AKSequencer(targetNode: legacySampler)

        let midi = AKMIDIFile(url: Bundle.main.url(forResource: midiFile, withExtension: "mid")!)
        sequencer.load(midiFile: midi)
    }

    func play() {
        sequencer.playFromStart()
    } 

在设置我丢失的信号链方面有什么区别吗?

Is there some difference in how to set up the signal chain that I'm missing?

推荐答案

对于新的音序器,它必须是信号链的一部分.因此,请执行

With the new sequencer, it has to be part of the signal chain. So, do something like

let mixer = AKMixer
sampler >>> mixer
for track in sequencer.tracks { track >>> mixer }
AudioKit.output = mixer

,它应该可以工作.很抱歉在Github问题上看到此消息.

and it should work. Sorry for the delay in seeing this on Github issues.

这篇关于如何使用AudioKit的新AKSequencer播放MIDI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆