当前课程知识点:计算机音乐 > 第四章 音色合成 > 4.4 Modal合成 > Modal合成
同学们大家好
这节里面我们将会
把上一节讲过的一个特殊的双二次滤波器
也就是共振滤波器
作为一个基本的单元
介绍一种叫做modal合成的加法合成算法
那么我们的基本研究对象
就是我手中拿的西藏的佛音碗
我们想合成这个音色
首先我们先来回忆一下
在之前的加法合成系统当中我们是怎么做的
在加法合成系统里面
我们把整个频谱分解成一个个的部分
每个部分都是用一个正弦波来代替
但是这正弦波是需要去
增加一个ADSR的这样振幅包络的
在通过不同的正弦波
加过ADSL包络的正弦波进行加法之后
我们就可以得到最后的结果
让我们在python程序里面
听一下合成的声音的结果
那在加法合成的算法当中
我们会先去打开这个
singlingbowl原素材的音频
并且我们会去观察
用Sonic Visualiser去观察它的频谱图
那么在这频谱图里里面
看到它是比较符合加法和成振模型有比较离散的
这个峰值 频谱的峰值
这个峰值 频谱的峰值
那么我们记一下每个频谱的
频率以及它的强度以及它持续的时间
频率以及它的强度以及它持续的时间
并且在python里面
我们用一个列表来把刚才的峰值
我们用一个列表来把刚才的峰值
它的强度它持续的时间
都用一个列表记录下来
都用一个列表记录下来
并且每一个部分我们
并且每一个部分我们
通过一个adsr2的正弦波函数来表示
最后去把每一个部分通过
最后去把每一个部分通过
循环把每一个部分都加起来
完成一个加法的合成
那么最后得到的结果我们可以来听一下
那么最后得到的结果我们可以来听一下
那么我们在Audacity里面去打开
这个已经合成好的声音
这个已经合成好的声音
并且播放听一下它的效果
听起来这个声音还是比较具有电子声的
我们比较一下它跟原来的原音频的声音
会发现
比起这样有质感的素材原来这个合成声音是比较
具有电子声的
那么我们可以通过分析它的频谱来看一下我们到底
那么我们可以通过分析它的频谱来看一下我们到底
它的合成完它的音色上有什么样的区别
那么我们看到合成的这个频谱是
非常离散的几个竖条非常瘦的几个竖条
原来的音频素材里面如果我们去分析它的
频谱的话
我们看到它的频谱的分布是非常丰富的
我们看到它的频谱的分布是非常丰富的
它除了几个峰值之外它的衰减没有像
它除了几个峰值之外它的衰减没有像
正弦波那样只是一个单独的频段
正弦波那样只是一个单独的频段
它的两旁是具有一定的衰减的
它的两旁是具有一定的衰减的
所以呢如果
所以呢如果
我们用双2次函数来
我们用双2次函数来
模拟这样刚才衰减的效果因为在
模拟这样刚才衰减的效果因为在
共振滤波器里面它的
共振滤波器里面它的
通带是可以去设置的不像正弦波一样
它的通带非常的窄就只有
峰值的这个频率
峰值的这个频率
附近一点点由于数字化所产生的
而
而
共振滤波器里面我们可以去调整它的通带
共振滤波器里面我们可以去调整它的通带
共振滤波器里面我们可以去调整它的通带
共振滤波器里面我们可以去调整它的通带
那么接下来我们就来看一下
我们通过共振滤波器
来构造这个model合成算法是什么样的
那么如果我们在刚才的加法合成系统里面
把正弦波都替换成
一个个由激励信号驱动的共振滤波器
那么共振滤波器它跟正弦波一样
他可以得到一个特定的频谱
那么最后在全部的加起来
其他的部分是一样的
那么这样的一个系统
我们就把它叫做modal合成系统
那么其实这里面的激励信号是非常重要的
那么它将决定你是怎么去驱动
整件乐器的振动的
比如说你是怎么去敲击它
你敲击的是哪一个部分
比如说你敲击旁边的部分
跟敲击里面的部分
或者敲击下面的这部分
完全是不同的音色
那么在接下来的程序演示里面
我们只是用个十毫秒的白噪声
来做一个简单的简化
来近似的表达
激励信号
接下来我们就到python里面
去对modal合成做一个简单的实现
那么在这里面最重要的一个部分
就是resonZ就是共振滤波器的部分
在这里面我们除了根据原来的公式
去设置共振滤波器的形式之外
我们对于个别参数还做了一些经验性的调整
比如说引入cost这个函数
那么它可以使得
通过这种数字滤波器的方法得到的结果
跟模拟滤波器得到的结果更加接近一点
去对它的一个误差做一个比较小的修正
来修正它的采样率的值
那么除此之外
我们还对Q做了一个特别的设置
那么对于低频的部分
我们使用更大的一个Q
我们看到Q最后会跟频率是成正比关系
除此之外
我们根据不同时长的时间
会重新设定一下Q
那么对于比较长时间
我们用一个比较小的Q来获得
更慢的一个衰减
越短的时间我们就让它衰减的越快
所以我们也通过经验去设置了Q的值
通过频率去设置了Q的值
那么接下来过程就跟加法合成是一样的
我们把每个频段获得的滤波的结果
通过一个初始的白噪音
那么这个白噪音
是用一个标准的白噪音
再去加上一个ADSR
也就是一个很短的十毫秒的
一个突起这样的一个信号
去作为它的激励信号
然后我们用激励信号通过共振滤波器之后
全部的都加起来
然后得到最后的结果
我们可以来听一下这个程序所生成的声音
让我们来打开刚才合成的声音
我们可以播放一下这个声音
这是一个非常短的一个声音
当然它的长度你可以在程序里面
去设置T的长度
同时你还可以修改Q的设定的方式
比如说你可以把他设定的更小一点
来获得一个更长的时间
或者说设置更大一点
获得一个更短的一个时延
那么总的来说
我们会听到这个声音从质感上
是比用加法合成要更加接近它的物理声音的
那么接下来我们来看一下
这两通过加法合成
以及通过modal合成
它的频谱上的一个区别
从频谱上我们可以看到
比起加法合成
通过modal合成频谱的丰富程度
更加接近于真实的素材
这得益于modal合成中
使用了一个共振滤波器
去对一个激励信号进行滤波
那么这个激励信号是可以有很复杂的频谱的
比如说我们刚才使用的就是一个
频谱是全分布的一个白噪声
只不过它是非常短的
只有十毫秒
那么通过共振滤波器之后
又可以使它具有稳定的音高
因此modal合成在合成成像佛音碗
这种音高比较稳定
而且它的频谱的峰值又是比较离散的
这种声音是非常合适的
那么比如像玻璃杯的声音
也是特别适合用来做modal合成的
我们听一下
我们听到貌似是一个噪音的声音
但其实它的频谱的分布
是具有我们刚才所说的特性
比如说它的峰值是比较离散
而且它的峰值是稳定的一个音高
再比如说像铁盒子
我们来听一下
听起来也是像一个噪音的声音
但是我们从频谱来看
它也是满足我们刚才所说的两个特性的
但是像这样的纸盒子
我们来听一下
这个噪音的声音
跟刚才的声音是完全不一样的
我们从频谱上来看
它并没有很明显的离散的峰值
像这样的声音
这声音貌似具有一定的音高
但是我们从频谱的角度
我们看到它的音高并不是稳定的
虽然他有很多离散的峰值
但是它的音高是有一个从低到高
然后再到低的一个变化
比如说小朋友的玩具尖叫鸡
我们从频谱上来看同样有这样问题
就是它的峰值是非常明显的
有很多离散的峰值
但是它的音高并不是稳定的
我们看到这些亮条是有一个曲线的形状
而不是一条稳定的直线
还有这样的一个小玩具
我们可以看到同样的一个问题
这个曲线更加的曲折
那么像这样的声音
它是不适合使用modal synthesis
modal合成来合成这种声音的
总而言之
在满足频谱的峰值是离散分布的
以及各个峰值的音高
是随时间稳定不变的情况下
那么只要满足这两个条件
modal合成是一种非常有效的音效合成算法
那么它主要思想是
使用共振滤波器进行加法合成
比如说每一个质点
我们使用物理模型进行近似
整体上我们使用加法合成的计算机方法
进行合成
那么有关modal合成的内容
我们就介绍到这里
下一节我们将会使用一种
将一系列的质点作为一个整体
来看待的物理模型
也就是一维振动模型
-欢迎辞
-1.1 计算机音乐导言
--计算机音乐导言
-1.2 计算机音乐课程主要内容
-1.3计算机音乐课程资源
-1.4 音乐的基本表达
--音乐的基本表达
-第一章作业
-2.1时域音频处理概述
--时域音频处理概述
-2.2 分窗处理1:OLA叠放
-2.3 分窗处理2:音量计算
-2.4 端点检测
--端点检测
-2.5 振幅包络
--振幅包络
-2.6 音频信号相乘
--音频信号相乘
-2.7 环形调制
--环形调制
-2.8 频率调制
--频率调制
-2.9 频率调制在音乐上的应用
-第二章作业
-3.1 频谱概述
--频谱概述
-3.2 傅里叶变换
--傅里叶变换
-3.3 短时傅里叶变换
--短时傅里叶变换
-3.4 加法合成
--加法合成
-3.5 线性滤波器
--线性滤波器
-3.6 京剧锣鼓经分析
--京剧锣鼓经分析
-第三章作业
-4.1 音色合成概述
--音色合成概述
-4.2 质点弹簧阻尼模型
--质点弹簧阻尼模型
-4.3 双线性滤波器
--双线性滤波器
-4.4 Modal合成
--Modal合成
-第四章测试
-5.1 一维振动模型概述
--一维振动模型概述
-5.2 弦振动模型
--弦振动模型
-5.3 达朗贝尔的行波解
--达朗贝尔的行波解
-5.4 梳状滤波器
--梳状滤波器
-5.5 Karplus Strong算法
-5.6 管状气鸣乐器模型
--管状气鸣乐器模型
-第五章作业
-6.1 音高跟踪概述
--音高跟踪
-6.2 时域音高跟踪
--时域音高跟踪
-6.3 频域音高跟踪
--频域音高跟踪
-6.4 K歌评分
--K歌评分
-第六章作业
-7.1 音频同步概述
--音频同步概述
-7.2 音乐特征提取 CQT
-7.3 音乐特征提取 Chroma
-7.4 动态时间规划概述
--动态时间规划概述
-7.5 动态时间规划实现
--动态时间规划实现
-第七章作业