Как играть в MIDI с новым AKSequencer от AudioKit

Я использую AudioKit 4.9.1 и не могу воспроизвести MIDI-файл с новым AKSequencer (заменяя AKAppleSequencer). Нет звука. Предположим, что MIDI-файл и сэмплы загружены правильно, поскольку они ранее работали сAKAppleSequencer. Также включен режим фонового звука.

Вот соответствующий код: (Я также пробовал оба AKSampler а также AKAppleSampler но результат тот же)

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()
    } 

Есть ли разница в том, как настроить отсутствующую сигнальную цепочку?

1 ответ

В новом секвенсоре он должен быть частью сигнальной цепи. Итак, сделайте что-нибудь вроде

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

и он должен работать. Приносим извинения за задержку с появлением этого сообщения на Github.

Другие вопросы по тегам