对 AudioKit FM 振荡器参数执行基本算术运算:Interpolation & time Transition

Perform basic arithmetic operations on AudioKit FM oscillator parameters: Interpolation & time Transition

AudioKit是否提供了计算离散数组成员的插值的方法? AudioKit 是否提供一种方法来平滑振荡器参数(如 baseFrequency、AKOperation.periodicTrigger 或 hold)之间的过渡操作?

下面是我用来生成 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 的插值应根据下面的table(数组)通过插值计算:

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 平滑值的转换(针对频率、周期和占空比)。这是什么 AKComputedParameter 例如smoothDelay 是为什么而设计的?

如何告诉 AudioKit 应用 AKComputedParameter?

您是否有基于上述代码实现 interpolation/transition 应用到振荡器操作的示例代码(代码片段)?基于 AK 或 vDSP 方法。

我不确定如何申请https://audiokit.io/docs/Protocols/AKComputedParameter.html

我认为这个问题在某种程度上被否决了,因为您似乎要求太多具有 table 值的实际实现。我将忽略这一点并说明无论您决定在应用程序逻辑中更改振荡器的参数,您都可以通过滑音值使转换平滑。

因此,在您的频率情况下,您可以将 Synth.frequency 替换为您设置的参数,然后滑音如 AKOperation.parameters[0].portamento(halfTime: 0.5)

在此处查看使用参数的示例:https://audiokit.io/playgrounds/Synthesis/Plucked%20String%20Operation/