欢迎光临散文网 会员登陆 & 注册

Serum公式解析器基础教程3 - 案例

2022-06-22 17:10 作者:Endark  | 我要投稿

例1: 生成波形

        前面的章节演示了不少生成波形的例子,此处我演示一下我在我的Toolbox中提供的波形Soft SAW和Soft Square,来作为较进阶的应用实例

Soft SAW: 3*sin(x*pi)/(5-4*cos(x*pi))
Soft Square: 5.65781378746*sin(x*pi)/(5-4*cos(2*x*pi))

例2: 失真

        利用in参数,我们可以实现类似 waveshaper 的失真功能,通过变换波形来产生失真。

        而借助双曲正切函数的特性,我们可以实现类似 soft clip 的效果:

双曲正切函数y=tanh(x)
类似Soft Clip的效果

        借助前面的章节提到的超过1削波的特性,我们也可以实现过载失真的效果:

过载失真

        当然,还能实现Sinusoidal Fold、Linear Fold、Hard Clip等更多失真效果,我分享的Toolbox里均有实现,此处不再赘述。


例3: 陷波滤波

        利用q参数,我们可以修改波表的谐波振幅。此处演示给波表添加陷波滤波器(Notch Filter)的效果。注意FFT区各振幅的取值为[0.0, 1.0],频谱绘制完成后会根据对应波形的最大值进行归一化处理,而不是削波。

y=1-1.5*exp(-(x^0.8-64)^2/48)
Notch Filter


例4: 频散

        利用p参数,我们可以修改波表的相位,达到频散效果。频散效果一般指相位与谐波次数平方线性相关带来的听感。注意FFT区各相位的取值为[0.0, 1.0],超过1的部分全部视为0,频谱绘制完成后也会归一化处理。因此我们需要借助周期函数或取余、取整等方法,将相位值限制在[0.0, 1.0]之间。

((p/2)^2%64)/64

        Formula Parser的玩法还有千千万,以上只粗略地介绍了一些基本知识和基础用法,还有一些小细节未涉及,大家如果有兴趣的话可以自行尝试与探索。

Serum公式解析器基础教程3 - 案例的评论 (共 条)

分享到微博请遵守国家法律