1700516935
天才与算法:人脑与AI的数学思维 巴赫:首位音乐程序员
1700516936
1700516937
布朗热坚持将学习巴赫的作品作为学习音乐创作的起点,她坚持的原因之一是,算法在巴赫创作音乐的过程中发挥了显而易见的重要作用。在某种程度上,我觉得巴赫应该是首位音乐程序员,因为巴赫的许多作品可以用数学的语言描绘出来,但其蕴含的算法要比中世纪的复调音乐复杂得多。虽说《音乐的奉献》源于腓特烈大帝要求巴赫即兴创作,但这部作品清楚地证明了上述观点。
1700516938
1700516939
尽管普鲁士国王腓特烈大帝以他在军事上的功绩而闻名,但他一生都非常热爱音乐。他的父亲在他还是孩子的时候,曾试图摧毁他对音乐的爱好和追求,但并无效果。登上王位后,腓特烈大帝经常在波茨坦的宫殿里为彰显他的文治武功,招揽最优秀的音乐家举办盛大的音乐会。在这些音乐家里,有巴赫的儿子卡尔·菲利普·埃马努埃尔·巴赫(Carl Philipp Emanuel Bach,即C.P.E.巴赫),他是乐团的羽管键琴首席演奏家。
1700516940
1700516941
1747年,62岁高龄的巴赫去看他儿子时创作了《音乐的奉献》这部作品。当时的交通不便,在经历了好几天辛苦的旅程后,他终于到了儿子家,这时他已经累瘫了。腓特烈大帝听说巴赫已经到达,立刻下令让巴赫入宫,邀请他参加宫廷音乐会。据说腓特烈大帝十分青睐西尔伯曼钢琴,他把当时仅有的15架全部收入囊中,摆放在宫殿的各处。
1700516942
1700516943
收到宫廷的传召,为了不让腓特烈大帝久等,巴赫立马动身前往,甚至没有换下旅行的行装。他一到宫殿,腓特烈大帝就带着他参观那些收藏的钢琴。巴赫惊人的即兴创作能力广为人知,因此腓特烈大帝在宫廷音乐会上给了巴赫一个音乐主题,让他用其收藏的钢琴根据该主题创作一首乐曲。
1700516944
1700516945
腓特烈大帝给巴赫的这个主题,并不是一个普通的主题。这是一个缺乏音乐性的主题,几个音符之间的音程关系毫无关联,它们被生硬地堆砌在一起。一般人是无法用这种主题作曲的。20世纪的作曲家阿诺尔德·勋伯格(Arnold Schoenberg)对《音乐的奉献》的巧妙构造感到惊讶,他这样评价:“这不仅仅是单一对卡农模仿。”换句话说,用任何经典的对位规则都无法解释这部作品。此故事有另一个版本:腓特烈大帝和巴赫的儿子编造了这个困难的无旋律性的主题,来挑战巴赫。C.P.E.巴赫是巴赫(约翰·塞巴斯蒂安·巴赫,即J.S.巴赫)的次子,因为巴赫在音乐界的影响甚大,他厌恶一直以来都活在父亲的光环之下。他认为父亲的作品是老派的,他想创造一种新的音乐风格。所以,这次即兴作曲也许是暴露他父亲作曲风格和方法中缺点的机会,好让他出丑。也许正如勋伯格所说,他们希望“享受巴赫掉进这个精心设计的陷阱里的无助感”。如果真是这样的话,那就真的是适得其反,搬起石头砸了自己的脚——巴赫坐下来,用这个怪异的主题,即兴创作了令人惊叹的三部赋格曲。
1700516946
1700516947
赋格曲是一种更复杂的卡农或轮唱,很多人在学校里应该唱过这种歌。卡农的唱法是这样的:一半的同学先开始唱,几拍过后,另一半同学再开始唱同一首歌;一个声部的曲调自始至终追逐着另一个声部,直到最后的一个小节;最后的一个和弦,歌声融合在一起,给人以一个神圣的意境。《伦敦大火》(London’s Burning)和《雅克兄弟》[1] (Frère Jacques)都是很好的例子。
1700516948
1700516949
这里所使用的算法非常简单,具有非常明显的几何性质。首先,创作旋律导句是卡农的基础,你需要把它写在五线谱上。算法是一个规则,这个算法应用在旋律导句上生成一首和谐的曲子。该算法的工作原理是,先获取旋律导句的副本,然后在时间轴上向右移动,重复相同的乐句(见图11-1)。这种算法选择模仿导句进入的时间不同会产生不同的效果。这有点像罐子上的条形图案,可以复制、移动和重复。就像罐子上的图案,轮唱曲也可以在第一声部、第二声部之后再添加第三声部。
1700516950
1700516951
1700516952
1700516953
1700516954
图 11-1
1700516955
1700516956
如果把卡农的算法写成一个数学公式,那么我们设旋律的导句为X,然后设延时为S,那么演奏或演唱这首卡农的数学表达式就是X+SX+SSX。该算法创建了一个单一主题的三声部卡农。
1700516957
1700516958
赋格在卡农的基础上进一步发展了,成为多声部多主题动机的多声复调作品。巴赫在作品中喜欢使用的一个手法是:不仅在二声部的时间上做延迟,还对二声部的主题做音高移动的处理。他还会在作品中运用对称规则:二声部可能是将主题旋律反过来使用,就像镜面反射一样。结合所有这些规则,人们可以构建一种算法,来应对如腓特烈大帝故意为难巴赫这样的难题:以一个怪异的主题为基础创作出一首和谐而复杂的乐曲。巴赫已经掌握了这种算法,该算法可以帮助他解决现场即兴创作赋格曲的难题,来应对腓特烈大帝的挑衅。
1700516959
1700516960
腓特烈大帝对这种即兴表演印象深刻,但他想知道巴赫是否能在乐曲上继续添加声部,创作六声部的赋格曲。这是前所未有的。尽管难度很大,巴赫却不想不战而降。创作一部六声部的赋格曲需要更多的时间和精力去构思,不仅仅是坐在键盘前即兴创作就能完成的。所以他回到莱比锡,重新对腓特烈大帝的主题进行变奏创作,以两首赋格曲、四乐章三重奏鸣曲和十首卡农构成了整部套曲,在两个月后呈送给了腓特烈大帝。这其中的赋格曲采用的就是现在为人所称道的、令人惊叹的“里切卡尔”(ricercar)。
1700516961
1700516962
巴赫创作的这部套曲里的十首卡农都是以腓特烈大帝所给的主题为基础的,构成每一首乐曲的都是基础的主题动机和一个数学规则或算法。每一首乐曲都像是一道数学题,演奏者必须解开这道数学题才能进行演奏。例如,巴赫在一首单行乐曲的末尾加了一个倒置的谱号。这个上下颠倒的谱号是巴赫这首乐曲算法的关键,也是演奏者将这个算法应用的关键。算法的内容是:将谱子上下颠倒过来,按照谱面所记演奏出一条旋律,然后再将这条旋律和原有的旋律同时奏出,这样就得到了一首二声部的钢琴曲。该算法是应用于原始旋律主题的规则,目的是为原始声部添加额外的声部。正如图像识别的算法适用于任何照片一样,只要有一个基础的主题动机旋律,这个音乐算法也可应用其上。
1700516963
1700516964
《音乐的奉献》开篇的十首卡农分别用了不同的算法,这些算法在数学的层面上对原始的主题进行了发展。这十首卡农是为后面的里切卡尔做热身,而里切卡尔向我们展示了巴赫如何完美地以一个简单的主题为基础,运用简单的数学算法创作出一部精妙绝伦、异常复杂的作品。这里面应用到的技法有:正格卡农的同度卡农和不同度卡农,变格卡农的增时卡农、减时卡农、倒影卡农,等等。巴赫将这些令人眼花缭乱的规则巧妙地结合在一起,创作出了六声部赋格曲。我们的大脑一边紧张地识别乐曲进行的模式,一边分析这个模式的运行规律,但未来是未知的,所以在分析的同时我们对乐曲接下来的进行模式做出预测是异常困难的。正是这种知与未知点燃着我们的兴奋点。正如哈里森·伯特威斯尔(Harrison Birtwistle)所言:最后一个音符没有演奏完,音乐就还没有结束。
1700516965
1700516966
巴赫当时是否意识到他正在进行数学游戏?在我来看,很明显他知道自己在做什么。因为其中涉及太多有关于数学的部分,我们很难以偶然或是潜意识中的无意间使用来解释。巴赫晚年时申请进入他的学生米兹勒创办的米兹勒音乐学社。该社致力于研究和探索科学与音乐之间的联系,曾公开发表过题为《作曲学习中数学的必要性》的论文。作为会员的巴赫,当然也是支持、认同数学和音乐之间具有紧密的相关性的。
1700516967
1700516968
C.P.E.巴赫对父亲的赋格相当不屑,他声称自己“对枯燥的数学一点都爱不起来”。为了证明赋格除了运用一些小伎俩以外没什么其他有意义的技巧,他甚至设计了一个作曲小游戏——“音乐白丁也可做出二声部复调6小节的乐曲”。玩家手中有两页乐谱,每页有看似随机的一系列音符:第一页为右手准备,即高音声部;第二页为左手准备,即低音声部。玩家所要做的就是随机选择一个音符作为开始,然后是这个音符后的第9个音符,再然后是第18个音符、第27个音符……直到将所有的音符都使用过为止。C.P.E.巴赫设计的关键点在于首音的选择,无论从哪个音符开始,只要遵循继续选择其后第9个音符,这样简单的规则就可以让任何音乐白丁构建出一段可以被接受的对位复调作品。这是多么完美的机器算法!
1700516969
1700516970
《音乐的奉献》经常会被搬上音乐会的舞台,但是我从未听过哪场音乐会演奏了C.P.E.巴赫这样“创作”出的作品,这表明成功的音乐作品可能不仅仅是机械地遵循一套规则就可以。
1700516971
1700516972
莫扎特被认为其有一套类似于C.P.E.巴赫的算法来谱写华尔兹舞曲:一种叫作“骰子音乐”(musikalisches würfelspiel或musical dice game)的游戏算法,使用一组骰子生成16小节的华尔兹舞曲。讲解该游戏算法的《骰子音乐》于1792年首次出版,这时莫扎特已经去世了一年。有人怀疑这个游戏算法根本就是由出版商尼古拉斯·西姆洛克(Nikolaus Simrock)设计的,他只是盗用莫扎特的名字以提高销量。
1700516973
1700516974
这款游戏共176小节,按照11×16的布局排列。第一列是开始的第1小节,有11种不同内容的小节可选择。游戏方法是,掷两个骰子,在得到的点数基础上减去1,这样我们就能得到1~11的点数了。举个例子,若掷出两个6点,那么就选中第一列的第11小节。第二列代表整首曲子的第2小节,同样用掷骰子的方法选择。用这种方法继续,直到完成所有列的选择,最终拼合成16小节的华尔兹。
1700516975
1700516976
令人震惊的是,使用这个系统可以生成1116种不同的华尔兹,即约4600万亿[2] 首华尔兹。一首一首听,一直不停,你需要两亿年才能听完。早期的“算法艺术家”会使用这样的技巧——将预先设定的结构和随机性元素结合。莫扎特的作曲游戏精妙地将176小节(固定结构)和掷骰子(随机性)结合起来,无论怎样都能拼合成令人信服的华尔兹圆舞曲。当然,并非所有的变化都是悦耳的,有些组合显然比其他组合的效果更好。令人遗憾的是,莫扎特并没有给出评价拼合作品的标准。对我而言,这是开放式算法的问题之一。
1700516977
1700516978
[1] 中国版是《两只老虎》。——译者注
1700516979
1700516980
[2] 45 949 729 863 572 161。——译者注
1700516981
1700516982
1700516983
[
上一页 ]
[ :1.700516934e+09 ]
[
下一页 ]