audiokit - 使用 AKSampler 以特定音序器速度静音音符
问题描述
我最近从 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,问题出现在硬件和模拟器上。
解决方案
推荐阅读
- java - 如何让 ApplicationContext 识别来自 src/test/java 的 CouchBaseRepositoyr bean?
- android - 将联系人姓名输入android应用程序并保存
- vuejs2 - 使用带有 css 特定复选框的 vue 和 v-model
- html - 将 div 高度扩展到它的孩子(iframe)
- reactjs - ReactJS-只有最新的文本行出现在网页中
- php - 如何使用 Laravel 获取以前的外部链接?
- sql-server - 使用 Entity Framework Core 在 SQL Server 中存储大字符串的最佳实践
- iis-7 - IIS 管理器中的停止服务器是否与 iisReset /stop 相同?
- java - 在 AWS Fargate 上运行时如何确定当前可用区
- java - 坚持使用这个单词搜索程序