我最近从AKAppleSequencer迁移到AKSequencer。我的应用程序正在使用一些AKSampler来播放以wav格式提供的录制乐器。
一切正常,与AKAppleSequencer相比,现在的计时要好得多。但是,将速度设置为某个值时会出现奇怪的行为。似乎有些音符现在已静音(或部分取消)。将速度设置为高于或低于该值可以很好地工作-模式中的所有音符都可以听到。除了sequencer.tempo=value
以外,更改速度不会产生任何魔力。除了一些混音器之外,没有其他后处理程序。
这是一些伪代码:
let sequencer = AKSequencer()
let akfile = try AKAudioFile(readFileName: "sample-1.wav")
let descriptor = AKSampleDescriptor(
noteNumber: 60,
noteFrequency:
Float(AKPolyphonicNode.tuningTable.frequency(forNoteNumber: 60)),
minimumNoteNumber: -1,
maximumNoteNumber: 127,
minimumVelocity: 0,
maximumVelocity: 127,
isLooping: false,
loopStartPoint: 0.0,
loopEndPoint: 1.0,
startPoint: 0.0,
endPoint: 0.0)
let sampler = AKSampler()
sampler.loadAKAudioFile(from: descriptor, file: akfile)
sampler.buildSimpleKeyMap()
// load some more samples
// create tracks and notes
let track = sequencer.addTrack(for: sampler)
// wire everything together
// play
问题似乎与使用哪些示例有关,因此仅丢弃一些代码行可能不足以重现此行为。
使用AKAppleSampler而不是AKSampler为我解决了这个问题,但是对于那些面临该问题并需要使用AKSampler的其他人来说,任何提示可能都是有趣的。
我正在使用AudioKit v 4.9.3,该问题发生在硬件和模拟器上。