Спасибо за АудиоКит! У меня следующий вопрос: я пытаюсь получить идеальную синхронизацию воспроизведения AKSampleMetronome и одного миди-файла, завернутого в AKMIDISampler. Вот мой код:
let metronome = AKSamplerMetronome()
let mixer = AKMixer()
let midiSampler = AKMIDISampler()
midiSampler.samplerUnit.loadSoundBankInstrument(....)
metronome >>> mixer
midiSampler >>> mixer
AudioKit.output = mixer
AudioKit.start()
let sequencer = AKAppleSequencer(filename: "midifilename")
sequencer.enableLooping()
sequencer.tracks[1].setMIDIOutput(midiSampler.midiIn)
//now play
sequencer.play()
metronome.beatTime = 0
metronome.play()
Но когда я меняю темп вот так:
sequencer.setTempo(bpm)
let now = AVAudioTime(hostTime: mach_absolute_time())
metronome.setTempo(Double(bpm), at: now)
Через некоторое время звук метронома и миди-секвенсора расходится. Как я могу добиться точного решения для этого?