【其它】音阶中的数学
1. 动机
近期,六岁的女儿在学钢琴,作为监工和陪练,这对我却是个不大不小的困难。因为陪练并不是站在一旁嚷嚷着“好好练琴”就行,共同学习、一起交流才能够让小孩有持续的热情。为了把这件事变得有趣和高效,我打算从零学一点音乐,首先至少能看懂少儿钢琴的书吧。想想我们这一代的农村学校,连个音乐老师都没有,更不谈什么音乐知识,能接受到的音乐“熏陶”恐怕也只有大街小巷的那些流行歌曲了。这种粗粝的音乐审美也许已经无法提高,但“学习基础乐理”这样的硬任务应该还是可以完成的。
很久之前就听说音乐和数学有着千丝万缕的联系,我早就想一睹音乐中的数学之美,但拿起各种正规乐理教材后,心里的落差还是很大的。不仅没有数学教材的那种干净利落,甚至也没有计算机教材的循序渐进,整个就是杂乱概念的堆砌。概念没有清晰的定义、没有引入的原因,概念间复杂的关系更是说不清楚道不明,名词总是硬生生地放在那里,你记就是了。也许是因为多年的理工科工作习惯,这样的书我真是一页也看不下去,不是看不懂,而是看得不得劲。但静下心来想想,我需要的只是对概念来源的一个解释,哪怕是一个错误的解释,只要我觉得合理就行。
当然我也知道,音乐本身还是感性的东西,它变换莫测、风格多变,甚至连好坏都没有统一的标准,想用一套理论就把它完全解释肯定是不现实的。但万事万物都都会有一些基本规律存在,人类文明也正是在归纳总结中积累起来的,即使是艺术、文学类的创作,也都要满足基本的美学规律。音乐作为一个普世的文化活动,经过上千年的流传和演进,在不同地域的文明中都建立起了理论体系。但令人惊奇是,在音律的基本要素上,各种体系都殊路同归,具有非常类似的构成。如今,音律的语言已经趋于一致,人们已经有了统一的描述方式,并且在此之上继续探索、总结……
音律中跟数学关系最直接、最久远的当属音阶系统了,早在古希腊时期,毕达哥拉斯学派就发现,频率呈简单整数比的两个音听起来非常协和,并且几乎全世界的音阶系统,都是基于这样一个简单的事实建立起来的。下面开始,我就试图用自己浅薄的数学知识来解释一下这套体系,当然其中以数学的阐述为主,而有意淡化乐理的琐碎概念和乐谱的基本知识,那些在任何一本乐理书上都有详尽的介绍。最后我还想说,对于乐器演奏技法、甚至音乐理论学习,整理这些东西并无大用,用这种思维去学习音乐也必将学无所成。但对于一个理科生,只是想要一个解释而已,这不算过分吧,先让我痛快了再说!
2. 关于声音
首先严格说,声音就是一段声波,它是物体震动从而带动的空气震动。当然,杂乱无章的震动并不能对听觉提供可识别的特征信息,具有明显特征的声音在一段时间内应当(或近似)呈现一定的周期性,所谓周期性就是震动以一定频率重复出现。有三个特征可以完整刻画一段周期声波,首先是声波的震动周期,它一般用频率来表示,在音乐里还叫音高,人耳能听到的声音频率大概是
教材上还告诉我们,每个周期声波都是有一系列频率为
正弦波也叫简谐波,它是由简谐振动产生的声波,而简谐振动现实中非常普遍的一种运动。所谓简谐振动可以这样描述:它在中心两侧运动,加速度(或所受合力)始终指向中心,并与位移
到这里还有最后一个问题:为什么简谐波就是正(余)弦波,仅仅因为它好看吗?我只得承认,书本里学的知识已经全部忘记了,现在只好自己再推算一遍。一种直接的方法就是根据简谐振动的特点,可以得到式(1)的常微分方程,从而解得
3. 十二平均律
单丝不成线,单音不成乐,一首动听的音乐当然要有不同音高的单音,才能表达出情绪的波动。我们也看到,任何一种乐器都能发出多种音高,它们交叉、重叠、依次推进,形成了非常有节奏的韵律。为了能用不同的乐器、在不同的时间和场所弹奏同样一首曲子,需要对每个音作明确定义,这就要事先选定一组单音做为标准,这个组合也被称为音阶。每种乐器使用的音阶不尽相同,但挑选时都遵循着类似的准则,这里我们先跳过漫长的历史过程,来看看如何合理地构建一个通用的音阶。
首先我们知道一个常识:人耳对音高的感知满足对数函数,也就是说音高分别为
把音阶设计成等比数列有很多好处,首先是得到了一套完整、递进的声高系统,它能满足各种场合的需求。还有就是等比音高可以很方便地“转调”,所谓转调就是把乐曲中的每个音都同时升高或降低相同的声高,下面的调式中会碰到这样的情况。总之这是一个不错的开始,只要再添加少许限制,就可以确定这套音阶了。音乐中的不同单音扮演着不同的角色,它们需要配合使用才能体现出流畅或变化,所谓流畅就是两个单音出现重合或叠加时,并不显得突兀,而是显得十分“协和”。
早在古希腊时期人们就发现,频率成简单整数比的两个音在一起更加协和,尤其是成倍数关系的两个音叠加时,音高并没有变化。这个其实不难解释,两个周期比为
但是成倍数的单音又太过协和了,完全体现不出变化,乐曲会显得很空洞。所以需要在
但显然
以此建立音阶的方法就叫做十二平均律,它诞生于相当久远的中国古代,16世纪由明朝的朱载堉发展成完整的理论,然后在16世纪末传播到欧洲并在17世纪得以普及。十二平均律是目前通用的音律体系,后面的音程、调式、调性、和声、和弦理论都是建立在此之上的,只不过这些理论几乎都是在欧洲发展起来的。
4. 音程与协和性
在音律中有时非常关心两个单音之间的“距离”,它显然可以用单音的频率比来度量,这个比率在音乐中也被叫做音程。由于十二平均律得到音阶形成完整的等比数列,从而可以用相邻单音的频率比作为单位来“数”出音程大小,这个单位叫做一个“半音”,两个半音则叫一个“全音”,这样的音程表示法也叫音数。至于为什么把半音作为一个单位,我想大概是因为许多音阶中,两个半音的距离是比较主要的音程,这个在下面的调式中将详细讨论。另外,一个半音还被分为100个音分,它可以用来度量更小精度的音程。
由于
然后我们还知道,音
历史上,早期的音阶其实就是用上图的环链构建的,但只是使用了环中的
十二平均律 | 五度相生律 | 纯率 | 音名(唱名) | 音程 |
|
|
|
C (Do) | 纯一度 |
|
|
|
C# / Db | 小二度 |
|
|
|
D (Re) | 大二度 |
|
|
|
D# / Eb | 小三度 |
|
|
|
E (Mi) | 大三度 |
|
|
|
F (Fa) | 纯四度 |
|
|
|
F# / Gb | 增四 / 减五 |
|
|
|
G (So) | 纯五度 |
|
|
|
G# / Ab | 小六度 |
|
|
|
A (La) | 大六度 |
|
|
|
A# / Bb | 小七度 |
|
|
|
B (Si) | 大七度 |
|
|
|
C (Do) | 纯八度 |
伴随着七个单音,音程也有对应的名字,单音到自身的音程叫一度,然后依次增一度,到2倍音程叫八度。可见度数并不是严格的定义,而是一个经验性的命名,从我有限的资料中并未找到它的来源,以下纯属瞎掰。由于一度、四度、五度、八度有很强的协和性和确定的频率,它们也被叫做纯音。二、三、六、七度前面都补充了一个降半音的音,为区别开来,把原来的四个叫大X度,新增的叫小X度。这十三个度数之间近似相差半个音,之所以说近似,是因为非平均律下,这个间距就不是半个音了。所以当一个音要增、减半个音(一个音)时,还特地取名为增、减音程(倍增、减音程),下表总结了音程名称的变化规律,左右相邻的两个音程相差半个音。
倍减音程 | 减音程 | 纯音程 | 增音程 | 倍增音程 | |
小音程 | 大音程 |
关于其它音程的协和性,一般把三度、六度看成是不完全协和的,大二、小七看成是不协和的,小二、大七看成是极不协和的,增四/减五则表现极不稳定。其原因一般也归结为整数比的“复杂”程度,但如何定义这个复杂程度则莫衷一是,各种解释都不能让人信服。如果小整数比的理论成立,那这些协和性很可能只对纯律有效。在十二平均律下,每个频率都有许多近似分数,如何选择代表分数是个难题,以下只是我的推测。
对于音程为
5. 调式和调性
以上是关于音阶的基础理论,在实际的曲调中往往只选取少量的音组成音阶,并且在不同时代、不同地区形成了各种风格的音阶。这里讲的“风格”其实就是音阶的“调”,它关系到音乐的情感色彩和情绪高低。一个调(音阶)包括选定的主音以及其它音的音程,它们分别称为调性和调式。
先来看调式,它是指围绕某个主音(Ⅰ)而生成的音阶,对于一种调式,其它音的个数以及相对主音的音程是确定的。在不同的历史时期和地区,产生了风格迥异的调式,这里只拿自然大(小)调为例,介绍调式的构成。自然大(小)调就是我们熟悉的七音音阶,除了主音外先加入上下五度的两个音:属音(V)和下属音(Ⅳ),然后是位于主音、属音中间的中音(Ⅲ)和位于主音(高八度)、下属音中间的下中音(Ⅵ),最后再加上与主音相邻的上主音(Ⅱ)和下主音(Ⅶ)(小调中叫导音)。一般来说,自然大调表现出阳光明朗的风格,而自然小调则阴暗忧伤一点。
在具体音程上,首先两个属音的位置没有疑问,以纯五度为准。但主音和属音之间相差
调性比较简单,主音是什么,一般就叫什么调,比如C调、G调。由于在平均律中有同音异名的现象,同一个调可能有两个名字,比如F#调和Gb调就是相同的。但在非平均律下,它们会有细微的差别,这个我们不多讨论。还有一个问题我们一直没有解决,就是这些音的频率究竟是多少?历史上,标准音的标准一直在变,直到1936年,美国标准委员会才将小字一组的A音(a1)定为440Hz,而与它同一组的C音称为中央C。
有了调式和调性后,音乐的调也就确定了,比如C大调、A小调等。下图将12个音按照五度音程串成一个圆环,由前面的讨论可知,圆环中任何7个相邻的音都正好构成一个自然大(小)调。7个相邻音中的(顺时针)第2个是大调的调性音,而第4个则是小调的调性音,利用这个图可以快速确定不同的音调。至此,我们就算整理完音阶中的数学解释了,但对于乐理知识,这些只能算开篇和序言,希望我这种另类的开篇可以帮助到你。
博客总目录在这里
【前序学科】 实数系统(连分数)
【参考资料】
[1] 《写给理工科看的乐理》,博客园Devymex
[2] 知乎: www.zhihu.com/question/20612595; www.zhihu.com/question/28518092
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架