读天才与算法:人脑与AI的数学思维笔记15_声响的数学之旅
![](https://img2024.cnblogs.com/blog/3076680/202405/3076680-20240501221619684-1034764594.png)
1. 音乐
1.1. 巴赫的作品以严格的对位著称,他十分中意对称的结构
1.2. 巴托克的作品很多都以黄金比例为结构基础,他非常喜欢并善于使用斐波纳契数列
1.3. 有时,作曲家是本能地或者不自知地被数学的模式和结构所吸引,而他们并没有意识到这些数学模式的意义
1.4. 有时,他们主动去寻找新的数学思想来作为他们作品的框架
2. 有量卡农
2.1. prolation canon
2.2. 又称mensuration canon或proportional canon
2.3. 在中世纪的一种复调作曲技法
2.4. 卡农的不同声部以相同或相似的节奏(主题动机)、不同比例的速度进行
2.5. 这种作曲技法是从一个简单的节奏开始,单声部进行;随后,第二声部以一半的速度、同样的节奏加入;再然后,第三声部以两倍的速度、同样的节奏加入
3. 双曲几何
3.1. 是一种独立于欧几里得几何的几何公理系统
3.2. 也称罗巴切夫斯基几何
3.3. 也称波利亚–罗巴切夫斯基几何
3.4. 也称罗氏几何
4. 欧几里得算法
4.1. 又称辗转相除法,用于计算两个正整数的最大公约数,应用于数学和计算机两个领域
4.2. 欧几里得算法和扩展欧几里得算法可使用多种编程语言实现
5. 算法和作曲之间
5.1. 算法是一组规则,它可以接受各种各样的输入,通过将规则应用于输入的内容,可以得到结果
5.2. 初始输入就是种子,算法是种子生长的方法
5.2.1. 新生成的部分与原始的种子有很强的联系,但它不只是复制原始的种子,或是它的一部分
5.3. 算法可以有不同的图像,通过分析这些图像,你可以知晓这些算法的内容
5.4. 有一些算法可以生成分形图形:从一个简单的几何图像开始,反复将一个数学方程应用到图像上,最后就会出现一个复杂的图形
5.5. 作曲家在创作的时候要进行艺术或科学的双重考量
5.5.1. 发明新的算法,用以创作有趣的音乐
5.5.2. 选择不同的种子(即主题动机)输入到算法当中
5.5.2.1. A是两短一长的节奏
5.5.2.2. B是一个长的节奏
5.5.2.3. 演奏者可以选择某一种算法(规则)来组合这两个主题
6. 巴赫
6.1. 首位音乐程序员
6.1.1. 算法在巴赫创作音乐的过程中发挥了显而易见的重要作用
6.1.2. 巴赫的许多作品可以用数学的语言描绘出来,但其蕴含的算法要比中世纪的复调音乐复杂得多
6.2. 《音乐的奉献》
6.2.1. 《音乐的奉献》源于腓特烈大帝要求巴赫即兴创作,但这部作品清楚地证明了上述观点
6.2.1.1. 《音乐的奉献》开篇的十首卡农分别用了不同的算法,这些算法在数学的层面上对原始的主题进行了发展
6.2.2. 1747年,62岁高龄的巴赫去看他儿子时创作了《音乐的奉献》这部作品
6.2.3. 腓特烈大帝给巴赫的这个主题,并不是一个普通的主题
6.2.3.1. 这是一个缺乏音乐性的主题,几个音符之间的音程关系毫无关联,它们被生硬地堆砌在一起
6.2.3.2. 一般人是无法用这种主题作曲的
6.2.3.3. 用任何经典的对位规则都无法解释这部作品
6.2.3.3.1. 这不仅仅是单一对卡农模仿。
6.2.3.3.1.1. 20世纪的作曲家阿诺尔德·勋伯格(Arnold Schoenberg)
6.2.4. 此故事有另一个版本
6.2.4.1. 腓特烈大帝和巴赫的儿子编造了这个困难的无旋律性的主题,来挑战巴赫
6.2.4.2. C.P.E.巴赫是巴赫(约翰·塞巴斯蒂安·巴赫,即J.S.巴赫)的次子,因为巴赫在音乐界的影响甚大,他厌恶一直以来都活在父亲的光环之下
6.2.4.2.1. 他认为父亲的作品是老派的,他想创造一种新的音乐风格
6.2.4.2.2. 即兴作曲也许是暴露他父亲作曲风格和方法中缺点的机会,好让他出丑
6.2.4.3. 巴赫用这个怪异的主题,即兴创作了令人惊叹的三部赋格曲
6.2.5. 巴赫创作的这部套曲里的十首卡农都是以腓特烈大帝所给的主题为基础的,构成每一首乐曲的都是基础的主题动机和一个数学规则或算法
6.2.5.1. 每一首乐曲都像是一道数学题,演奏者必须解开这道数学题才能进行演奏
6.2.5.2. 算法的内容是:将谱子上下颠倒过来,按照谱面所记演奏出一条旋律,然后再将这条旋律和原有的旋律同时奏出,这样就得到了一首二声部的钢琴曲
6.2.5.3. 该算法是应用于原始旋律主题的规则,目的是为原始声部添加额外的声部
6.2.5.3.1. 正如图像识别的算法适用于任何照片一样,只要有一个基础的主题动机旋律,这个音乐算法也可应用其上
6.3. 赋格曲
6.3.1. 是一种更复杂的卡农或轮唱,很多人在学校里应该唱过这种歌
6.3.2. 卡农的唱法
6.3.2.1. 一半的同学先开始唱,几拍过后,另一半同学再开始唱同一首歌
6.3.2.2. 一个声部的曲调自始至终追逐着另一个声部,直到最后的一个小节
6.3.2.3. 最后的一个和弦,歌声融合在一起,给人以一个神圣的意境
6.3.3. 《伦敦大火》(London’s Burning)和《雅克兄弟》[1](Frère Jacques)都是很好的例子
6.3.4. 这里所使用的算法非常简单,具有非常明显的几何性质
6.3.4.1. 创作旋律导句是卡农的基础,你需要把它写在五线谱上
6.3.4.1.1. 算法是一个规则,这个算法应用在旋律导句上生成一首和谐的曲子
6.3.4.2. 该算法的工作原理是先获取旋律导句的副本,然后在时间轴上向右移动,重复相同的乐句
6.3.4.3. 这种算法选择模仿导句进入的时间不同会产生不同的效果
6.3.4.3.1. 这有点像罐子上的条形图案,可以复制、移动和重复
6.3.4.3.2. 就像罐子上的图案,轮唱曲也可以在第一声部、第二声部之后再添加第三声部
6.3.5. 赋格在卡农的基础上进一步发展了,成为多声部多主题动机的多声复调作品
6.3.5.1. “里切卡尔”(ricercar)
6.3.5.1.1. 一部六声部的赋格曲
6.4. 巴赫在作品中喜欢使用的一个手法是不仅在二声部的时间上做延迟,还对二声部的主题做音高移动的处理
6.5. 在作品中运用对称规则:二声部可能是将主题旋律反过来使用,就像镜面反射一样
6.6. 结合所有这些规则,人们可以构建一种算法,来应对如腓特烈大帝故意为难巴赫这样的难题
6.7. 我们的大脑一边紧张地识别乐曲进行的模式,一边分析这个模式的运行规律,但未来是未知的,所以在分析的同时我们对乐曲接下来的进行模式做出预测是异常困难的
7. 骰子音乐
7.1. musikalisches würfelspiel
7.2. musical dice game
7.3. 游戏算法,使用一组骰子生成16小节的华尔兹舞曲
7.3.1. 使用这个系统可以生成1116种不同的华尔兹,即约4600万亿(45 949 729 863 572 161)首华尔兹
7.3.2. 早期的“算法艺术家”会使用这样的技巧——将预先设定的结构和随机性元素结合
7.3.3. 并非所有的变化都是悦耳的,有些组合显然比其他组合的效果更好
7.4. 莫扎特被认为其有一套类似于C.P.E.巴赫的算法来谱写华尔兹舞曲
7.4.1. 莫扎特的作曲游戏精妙地将176小节(固定结构)和掷骰子(随机性)结合起来,无论怎样都能拼合成令人信服的华尔兹圆舞曲
7.4.2. 莫扎特并没有给出评价拼合作品的标准
7.4.2.1. 这是开放式算法的问题之一