ios - 对 AudioKit FM 振荡器参数执行基本算术运算:插值和时间转换
问题描述
AudioKit 是否提供了一种计算离散数组成员的插值的方法?AudioKit 是否提供了一种方法来平滑振荡器参数(如 baseFrequency、AKOperation.periodicTrigger 或保持)之间的转换操作?
在我用于 FM 生成的代码下方:
let oscillator = AKOperation.fmOscillator(baseFrequency: Synth.frequency,
carrierMultiplier: 2,
modulatingMultiplier: 0.8,
modulationIndex: 1,
amplitude: Synth.amplitude.triggeredWithEnvelope(
trigger: AKOperation.periodicTrigger(period: Synth.cyclic),
attack: 0.01,
hold: Synth.hold,
release: 0.01))
对于输入参数,Frequency Cycle和Duty的插值应根据下表(数组)进行插值计算:
P1 Freq. Cycle Duty %
-10 200 100 100
-3.04 405 100 100
-0.51 300 500 100
-0.50 200 800 5
0.09 400 600 10
0.10 400 600 50
1.16 550 552 52
2.67 763 483 55
4.24 985 412 58
6.00 1234 322 62
8.00 1517 241 66
10.00 1800 150 70
应根据输入参数 P1 平滑值的转换(对于 Freq.、Cycle 和 Duty)。这就是 AKComputedParameter 例如 smoothDelay 的用途吗?
如何告诉 AudioKit 应用 AKComputedParameter?
您是否有示例代码(代码片段)用于根据上面的代码应用到振荡器来实现插值/转换操作?基于 AK 或 vDSP 方法。
我不确定如何申请https://audiokit.io/docs/Protocols/AKComputedParameter.html
解决方案
我认为这个问题在某种程度上被否决了,因为您似乎要求使用该值表进行过多的实际实现。我将忽略这一点,并说无论您决定在应用程序逻辑中更改振荡器的参数,都可以通过滑音值来使过渡平滑。
因此,在您的频率情况下,您将替换Synth.frequency
为您设置的参数,然后您将像滑音一样AKOperation.parameters[0].portamento(halfTime: 0.5)
在此处查看使用参数的示例:https ://audiokit.io/playgrounds/Synthesis/Plucked%20String%20Operation/
推荐阅读
- java - No parameter pass by reference in Java?
- php - PHP - Add every x characters opening and closing tag in array
- c++ - How to efficiently insert multiple copy-constructible but not copy-assignable elements in a vector?
- arrays - Accessing item in array of json object
- php - PhpSpec test if log written with same data
- c# - Send grid c# V3 api : Not able to send mail from MVC c# web application : Response: Bad request : using "SendEmailAsync" using "RestClient"
- python - Twitter Scraper, not showing result
- sql - To register in CASE of request SQL(oracle) a condition which is executed when " not data found"
- django - Django 注册配置文件
- node.js - axios,请求:不能忽略套接字挂起(ECONNRESET)错误