【问题标题】:Audiokit AKSampler not playing soundsAudiokit AKSampler 不播放声音
【发布时间】:2020-12-28 12:12:26
【问题描述】:

目前正在尝试让我的 AKSampler 播放我发送的声音,但没有太多运气可以输出音频。我的 AKMidiCallbackInstrument 正在正确记录播放的音符(尽管我看到每个音符的打印两次..)但是,对我的采样器的调用没有产生任何音频,我不知道为什么。

class Sequencer {
    
    var sampler: AKSampler
    var sequencer: AKAppleSequencer
    var mixer: AKMixer
    
    init() {
        sampler = AKSampler()
        sequencer = AKAppleSequencer()
        mixer=AKMixer(sampler)
        let midicallback = AKMIDICallbackInstrument()
        let url = Bundle.main.url(forResource: "UprightPianoKW-20190703", withExtension: "sfz")!;
        let track = sequencer.newTrack()
        track?.setMIDIOutput(midicallback.midiIn)

        sampler.loadSFZ(url: url)
   
        //generate some notes and add thtem to the track
        generateSequence()
        
        midicallback >>> mixer
        AudioKit.output = mixer
        AKSettings.playbackWhileMuted = true
        AKSettings.audioInputEnabled = true


        midicallback.callback = { status, note, vel in
            guard let status = AKMIDIStatus(byte: status),
                let type = status.type,
                type == .noteOn else { return print("note off: \(note)") }
            print("note on: \(note)")
            self.sampler.play(noteNumber: note, velocity: vel)        }

    }
    
    
    func play() {
        try? AudioKit.start()

        sequencer.rewind()
        sequencer.play()
        try? AudioKit.stop()
    }
    
    func stop() {
        sequencer.stop()
    }

【问题讨论】:

    标签: audiokit


    【解决方案1】:

    您需要将采样器连接到混音器:

    sampler >>> mixer

    Fwiw, midicallback >>> mixer 不是 AKAppleSequencer/AKMIDICallbackInstrument 所必需的,尽管 AKSequencer/AKCallbackInstrument 是必需的

    【讨论】:

    • 谢谢!我会试试看! AKMixer(sampler) 还没有做到这一点吗?在 midicallbacks 上要记住,我刚刚进行了多次迭代,我觉得信号链上的所有东西都连接在一起,我看到音符在许多不同的迭代中播放,并且在我的任何尝试中都没有听到声音。
    • 对不起,我错过了 AKMixer(sampler),这可能已经足够了,但它仍然值得一试。一个好的调试策略是确保您可以独立于音序器获得声音(例如,使用按钮触发),也许没有 sfz.或者,使用 AKAppleSampler(使用默认合成器)尝试音序器,以验证您是否可以通过这种方式获得声音并尝试找出问题所在。
    • 感谢您的建议!更改为默认的 AKAppleSampler 效果很好(虽然我仍然两次调用每个音符,但我认为我需要像指挥一样正确设置它)......现在我不知道为什么另一个没有工作......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2015-03-20
    相关资源
    最近更新 更多