我正在尝试使用 AudioKit 框架中的音序器播放音频文件。
AudioKit.output = sampler
AudioKit.start()
sampler.enableMIDI(midi.client,name: "sampler")
// sequencer start
let seq = AKSequencer()
seq.setLength(AKDuration(beats:Double(4)))
seq.enableLooping()
let pattern = seq.newTrack()
pattern?.setMIDIOutput(sampler.midiIn)
pattern!.add(noteNumber: 48, velocity: 127, position: AKDuration(beats:Double(1)), duration: AKDuration(beats:Double(0.2)), channel: 0)
pattern!.add(noteNumber: 48, velocity: 127, position: AKDuration(beats:Double(1)), duration: AKDuration(beats:Double(0.2)), channel: 0)
pattern!.add(noteNumber: 48, velocity: 127, position: AKDuration(beats:Double(2)), duration: AKDuration(beats:Double(0.2)), channel: 0)
pattern!.setLoopInfo(AKDuration( beats:Double(4) ), numberOfLoops: 80)
seq.play()
我已经到了 AKMidiSampler 只会播放正弦波但不能播放正确样本的地步,如此处所述
因此,事实证明不可能“即时”创建序列,所以我开始寻找解决方法并发现SelectorClock它是来自 AudioKit 开发人员的一种解决方法。可悲的是,这不再起作用了..许多类定义及其属性都发生了变化。
也许我不是最新的,这已经修复了。如果不是,我确定必须解决这个问题。