当前课程知识点:计算机音乐 > 第五章 一维振动模型 > 5.6 管状气鸣乐器模型 > 管状气鸣乐器模型
同学们大家好
在最后一小节当中
我们将会把karplus strong算法
应用到管类乐器当中
当然了根据它的激励信号的不一样
我们可以模拟拍击的声音
也可以模拟吹奏的声音
那么得到的声音也会不一样
那么与弦类乐器不同的是
管类乐器的震动是由管内的
空气柱产生的
那么为了了解管类乐器的震动模型
我们需要对管内的一小段空气柱
那么我们假设这一小段空气柱的
长度是dx
我们需要对这段空气柱进行受力分析
那么同样是应用牛顿第二定律
那么我们有F等于MA
比如说左边我们
可以写成dF(x)除以dx
右边是m乘以dv除以dt
ma的这样的形式
在这基础之上假设我们的这个
横截面
这个气柱的横截面的
面积是a
那么我们可以把a
乘到这个方程的两边
比如说两边乘上a分之a
那么其实就是乘以1了
那么这么做的目的呢
我们是希望把a跟f
以及a跟v
进行一个结合
经过简单的变换之后我们就可以得到
A乘以adx分之dF(x)
右边是a分之m乘以dv乘以a再除以dt
如果我们仔细观察一下这个式子的两端
那么左边我们这一项可以看成是
压强的变化
m除以a相当于是密度
而右边dva除以dt相当于是体积流
如果我们在利用质量守恒
它将会得到
dP(x,t)除以dt
以及dU(x,t)除以dx
它们俩是成正比关系的
把这一项带到上面这一项
我们就可以得到
P关于X的二阶导数以及
P关于T的二阶导数
他们也是呈一个比例关系的
那么这一个方程
将跟我们前面讲理想型振动
所得到的二阶偏微分方程是完全一样的
我们假设管的左边是
封闭的
那么管的左边它的压强的大小应该是零
这样话我们就可以得到
左边的一个边值条件
就是P(0,t)等于0
那么
我们在讲达朗贝尔行波解的时候
只要有了左边的这个边值条件
那么我们就可以解出
P(x,t)等于Pt加X除以C
再加上Pt减X除以C
这样的一个行波解的形式
当然一件管乐器它的右端通常是打开的
因此
我们并不能像弦振的模型一样
直接得到第二个边值条件
从而直接从
管乐器的长度估计出它的音高
那么实际上因为
管乐器它通常有指孔
那么在吹奏过程中
我们会把指孔打开
那么在指孔上面通常会有
很复杂的边缘效应
那么因此
直接去计算管乐器的音高
并不是那么简单的事情
在1978年的时候
著名的笛子演奏家
赵松庭先生与他的弟弟
物理学家赵松龄先生合作
通过复杂的数学公式计算出
赵松庭所改良过了中国笛子的音高
那么赵松庭先生在笛子的
末端增加了四个孔
其中两个在上面
有两个呢在下面
通过增加这四个调音孔
它可以使得
我们在演奏中国笛子的时候
使用一些特殊指法的时候
比如说演奏发的这样的指法的时候
那么它的音准能够更加的准确
那么对于合成音色的要求来说
我们并不需要
复杂的数学公式来计算音高
因为在数字信号系统里面
我们只需要使用karplus strong算法
这个模型就可以
形成一个循环网络
在这个循环网络过程中
我们只需要去对它的延迟量进行设定
就可以直接得到它的音高
那么为此我们只需要
使用管类乐器的一些激励信号
一般来说我们想让
管内的空气不振动
然后我们只得到它的
激励信号是特别困难的
但是我们可以通过下面的方法来
获取这个激励信号
现在我手中是一件中国古老乐器
尺
他可以认为是
笛子在传入中国之前
我们使用的所谓的笛子
跟笛子一样的一件乐器
它相比笛子它没有膜孔
那么我们尝试在
没有膜孔的笛子尺
的末端加入一个棉花塞
让声音不能从笛子末端出来
并且把他的所有指孔
包括调音孔全部都按住
这样话你在吹奏过程中
声音就无法
传到管外面
从而被
录音机所获取
那么我们这样的话就可以去录制这个
激励信号
那么接下来我们就在python当中进行
声音的合成
我们只需要把刚才的
在karplus strong模型里面的
弹拨乐的激励信号替换成
管乐的激励信号
比如说我们就完成
刚才录制下来的这段管乐的
脉冲信号
然后我们时间设得稍微长一点
比如设成十秒
然后我们把这个声音替换成刚才这个
管乐的脉冲信号
好
然后我们尝试一下
去做声音的合成
来听一下这个结果
我们可以听到
现在结果有一些噪音
显然是由于
它已经比最大的音强要强了
造成了削波的一个效果
因为现在的这个
所谓的脉冲信号
它已经不是一个很短的一个声音
而是一个持续的声音
所以这个持续声音通过
karplus strong模型之后
它能量会变得比较大
所以这时候我们只需要
给它
做的小一点的一个能量
就可以了
这样我们最后听到的这个声音
就是
非常像
笛子的吹奏时候的声音
无论是管类乐器还是弦类乐器
只要震动是沿着直线传播的一维模型
我们都可以得到一个
很关键的偏微分方程
那么这个偏微分方程告诉我们
震动的振幅
它对于X的
也就是沿着这个直线传播的横坐标
相对X的
二阶导数与相对于时间T的二阶导数
它们是成一个正比关系的
只要有了这样的一个二阶偏微分方程
再加上特定的边值条件
我们就可以
得到方向相反的行波
那么换言之
我们可以使用延迟网络来模拟这个系统
通过不同的激励信号
我们可以得到不同的音色
同学们不妨在课下尝试一下
组合不同的激励信号得到的音色
比如你可以通过击掌
或者说
去敲击根本不符合一维模型的物体
作为激励信号
去合成现实当中不存在的
全新的音色
这将会是非常有趣的事情
关于一维振动模型
我们讲解就到这里
下节课我们再见
-欢迎辞
-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 动态时间规划实现
--动态时间规划实现
-第七章作业