ios - 更改参数值时的 AudioKit 咔哒声/拉链噪音
问题描述
我有一个带有 AudioKit 效果链的 iOS 应用程序,构建如下:
IN --\ AKEqualizerFilter -- AKLowPassFilter -- AKChorus -- AKDelay -- AKReverb ---|
\___________________________________________________________________________| DryWet -> OUT
每种效果的量由其本地干/湿混合器控制,并且可以使用最终的干/湿混合器将整个链条带入/带出。我发现在移动控制单个 AU 参数(尤其是混响和延迟)的滑块时,我会听到咔嗒声/拉链噪音。我在 and 中尝试了不同的选项AKSettings.bufferLength
,AKSettings.rampDuration
但似乎无法摆脱它。还有其他我可以尝试的策略吗?
我见过的所有例子都没有表明有任何特殊的方法可以访问参数,所以它们只是从我们的 UI 中调用,使用通用的 UISliders。但是,我确实尝试从主线程调用参数更改,但没有任何改变。
更新3:好的,所以挖掘更多似乎AKOperationEffect是要走的路,但是,我仍然不确定如何控制它。我已经这样设置了:
var delTime = 0.33
if useSync == true {
let tempo = SequencerController.sharedInstance.currentTempo
let beatDur = (60000 / tempo) / 1000
// we'll make the default a dotted-eighth
delTime = 0.75 * beatDur
}
let opEffect = AKOperationEffect(input) { input, params in
return input.smoothDelay(time: params[0], feedback: params[1], samples: 1024, maximumDelayTime: 10.0)
}
opEffect.parameters = [delTime, 0.]
whereinput
来自前一个节点——所以,在这个链中,来自合唱。这确实让我延迟了time
(没有拉链!)但我找不到控制干/湿混合的方法。AKOperationEffect 可能无法做到这一点吗?
解决方案
推荐阅读
- java - Eclipse gradle mc 修改错误
- excel - 跨多个类别的动态百分比分析 - PowerPivot / DAX
- android - 项目文件随机加密/损坏?
- java - 在方法中使用 Scanner 类
- python - 如何修复由 Python 中的函数引起的这个无限循环?
- android - 如何根据用户输入从可变资源字符串名称填充微调器?
- java - 覆盖超类中的私有方法-有办法吗?
- java - Selenium/Java - 将数据写入 Excel
- python - 为什么我不能从网络数据流创建文件对象
- turfjs - 在 turfjs 中创建多个多边形的并集的最快方法是什么?