大家在初中物理学习声学时就听说过,声音(乐音)有三要素:响度,音调和音色;
而在大雾A:力学中学过波动后,我们又知道:声音是一种纵波,波的振幅对应着以前说的响度,其平方与能量成正比;波的频率则对应着以前说的音调,代表波源振动的快慢。
那么问题来了:乐音的第三要素——音色,它到底是个什么玩意?
![ecfd2a5123eb3e4533f2bd974a37ff4e.png](https://i-blog.csdnimg.cn/blog_migrate/b859a1e41d15ed4914b08d4bf0b87ca6.png)
在搞清这个问题前,我们先研究一下前两个要素——振幅和频率。
弦线上的横波在略微近似下,可以用下面的波动方程进行极好的描述:
![7b50b7f21ee951580bd1b4b625d93bca.png](https://i-blog.csdnimg.cn/blog_migrate/4cba96ee87417aa55cdb1cfe0dbbc1c4.png)
![02e89a28cdac26d87bda1900b5eee21f.gif](https://i-blog.csdnimg.cn/blog_migrate/3fadf67b34973b2ac1bdcf679cb732c6.gif)
图源知乎
而声音是一种疏密波,虽然其“振动”不能直接用我们所熟知的弦线上的横波演示,但可以用弹簧上的疏密波做很好的类比:
![fbabd1e8557e22198e79e6460c4751af.gif](https://i-blog.csdnimg.cn/blog_migrate/290be1df934c72b3780784a9ec90790f.gif)
图源百度
图中的小点就是空气中的各种分子,橙色的线则是“声源”(实例如吉他弦、钢琴弦,不知道钢琴用弦发声的同学建议重修《猫和老鼠》)。实际情况下,音源会以较高频率振动,持续激发周围的空气产生声波,最终撞击在我们的鼓膜上。
当一种声音仅包含一种频率时,我们称之为“纯音”。实际生活中,有一种“乐器”可以近似发出这样单纯的声音——音叉。
![495107bd93d62e4ef8c0531665072d61.png](https://i-blog.csdnimg.cn/blog_migrate/bd75235efd9017ee5453ecd08263d57a.png)
听说MATLAB除了生孩子什么都会,那不妨让我们用MATLAB模拟一下这种声音吧!
![6cf159c1540941d3faba483baad07f38.png](https://i-blog.csdnimg.cn/blog_migrate/2b8659389306b3cc1daab712f64498a0.png)
写一个正弦函数,用sound()函数将其以一定采样率播放即可。代码如下:
![428f09226db7ab171eca2df37b29737c.png](https://i-blog.csdnimg.cn/blog_migrate/3c840b969c3fd4f3304241910fc8c4bb.png)
这串简单的代码模拟了440Hz的纯音,它并没有任何“音色”可言:
(有兴趣的同学不妨点击阅读原文,下载本文中的所有代码自行娱乐。)
有的同学可能就会问了:
我明明听到这种声音特点还挺鲜明的呀,怎么能说它没有音色呢?
![2953c721194d0cb8f9915a5df9b7e658.png](https://i-blog.csdnimg.cn/blog_migrate/ffcae673b69de785521017dd00cc747f.png)
![a1ccae989f5c6ce00208efdd22c4e903.png](https://i-blog.csdnimg.cn/blog_migrate/1db6de7c521f999e8f9c225607736c83.png)
有的同学
![65f353cce7e49c7b7966e02912cc01fe.png](https://i-blog.csdnimg.cn/blog_migrate/fa58734632cdf8632e83519ed3038ed5.png)
小编
![6b8094e5dc6cdcb0c772844d33cdcd60.png](https://i-blog.csdnimg.cn/blog_migrate/043c531de50d9d397fd555c6ecc6ddf7.png)
关于这个问题的答案,相信你在完整看过这篇推送后,自然会有更深刻的了解。
在进一步润饰出更好听的音色前,我们可以先听一听钢琴49号键(即小字一组A)的声音,因为它的频率也是440Hz*。
*注:本文中所写钢琴均为标准88键;上文中的440Hz是精确值,于1939年被英国伦敦国际会议确定为“第一国际标准音高”。(取440Hz可能是因为这个音大致处于人耳听觉舒适频率范围的对数中位)
稍细心的同学就会发现,真正的钢琴音和我们模拟的纯音至少有两点明显的区别:
①有衰减
②实际感官音调比纯音略高
为了解决关于衰减的问题,我们需要先了解一下下面这个问题:
No.1
信号的包络(Envelope)
在声音设计中,通常用“ADSR”模型来描述一个声音的强度随时间的变化。“ADSR”实际上是一个声音从产生到消失的四个阶段,由Attack(起音)、Decay(衰减)、Sustain(延音)和 Release(释音)的首字母组成。
![2349947a34423e8f0348d7e2d38e13ac.png](https://i-blog.csdnimg.cn/blog_migrate/1086d831655b7dc2bacf10f88198cb14.jpeg)
「ADSR」也被形象地称作声音的「生老停死」
声音信号的包络对其音色的影响极大,不同的乐器具有不同的音色,很大程度是因为不同乐器的结构对声音的激发方式不同,导致其包络不同。
![e9f38d3d1111d5dc9050bbfa186b0712.png](https://i-blog.csdnimg.cn/blog_migrate/56454b872b15dec31e4cf34829b8462a.png)
有条件的话,大家可以奏响自己身边的乐器,充分感受钢琴Attack的稍纵即逝和小提琴Sustain的绕梁三日
加入ADSR修饰后代码如下:
![83d08f4a3656bec7f98a7a165c2de9e9.png](https://i-blog.csdnimg.cn/blog_migrate/e2628b55ccde2783acb8c1ff12d52239.png)
这次的代码稍显复杂,但仅仅是为原本的音频信号添加了一个包络,试听一下效果:
【此处插入440HzADSR.m4a】
加入衰减的声音比之前更加自然,但和真正的钢琴相比,不够饱满,显得很单薄。下一期,我们换个思路,研究第二个问题。
参考文献
[1]窦亚星. 钢琴音色库生成系统的设计与实现[D].浙江大学,2018.
[2]程美芳. 钢琴音色识别与电子合成系统的设计与实现[D].电子科技大学,2014.
[3]MakeNoise05 - Envelope 包络(ADSR)https://www.douban.com/note/680825961/
[4]每个人都应该了解的音乐理论 https://zhuanlan.zhihu.com/p/74547235
文案|王奕豪
编辑|王奕豪