使用AKSampler在某些音序器速度下使音符静音

时间:2020-05-10 09:21:35

标签: audiokit

我最近从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,该问题发生在硬件和模拟器上。

0 个答案:

没有答案