标签: aksequencer

如何使用 AudioKit 的新 AKSequencer 播放 MIDI

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

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

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: …
Run Code Online (Sandbox Code Playgroud)

midi playback ios audiokit aksequencer

6
推荐指数
1
解决办法
858
查看次数

如何使用Audiokit可视化AKSequencer当前位置?

我是Audiokit的新手。我想可视化正在运行的AKSequencer的当前位置。是否可以连接任何回调(例如AKMetronome中的回调)或侦听器或正在运行的根时钟/主循环?还是应该使用以任何方式“触发” GUI的AKCallbackInstrument?

有谁想分享吗?谢谢!

audio ios swift audiokit aksequencer

5
推荐指数
1
解决办法
349
查看次数

AudioKit:将新的 AKSequencer 与各种回调乐器一起使用

这个话题已经被覆盖了无数次,我已经在我以前的应用程序中成功地使用了AKMIDICallbackInstrument旧的AKAppleSequencer

我开始使用AKSequencer绝对惊人的新功能:优雅的界面,易于使用。但是,我一生都无法弄清楚如何用它处理回调事件。我需要使用回调来触发基于音序器播放的 GUI 事件。

这是我的示例代码:

    private func setMetronome(bpm: BPM, beats:Int)
    {
        sequencer = AKSequencer(targetNode: metronomeSampler)
        sequencer.tempo = bpm
        sequencer.loopEnabled = false
        sequencer.length = Double(beats)

        metroCallback.callback = {status, noteNumber, velocity in
            if let midiStatus = AKMIDIStatus(byte: status), midiStatus.type != .noteOn { return }

            //Do callback stuff here
        }

        let metroCallbackTrack = sequencer.addTrack(for: metroCallback)

        for i in 0..<beats
        {
            if i == 0
            {
                sequencer.add(noteNumber: MIDINoteNumber(67), position: Double(i), duration: 1.0)
                metroCallbackTrack.add(noteNumber: MIDINoteNumber(67), position: Double(i), …
Run Code Online (Sandbox Code Playgroud)

ios swift audiokit aksequencer

2
推荐指数
1
解决办法
489
查看次数

标签 统计

aksequencer ×3

audiokit ×3

ios ×3

swift ×2

audio ×1

midi ×1

playback ×1