上一篇《当算法已经可以创作音乐剧时,人类如何与它和睦相处?》,我们提到了算法如何作曲,和人类又如何协作。今天,我们一起来看看算法作曲的过去。追本溯源一下,早期的算法作曲如何实现,有何特点?
1. 数与音乐
音乐发展至今,所有的创新和突破都在竭尽所能地突破人类极限,历代西方作曲大师无不在伟大作品中留下探索音乐与新技术融合之道的时代印记。是时候回到过去,看看我们的先辈在算法与音乐上具体都做了什么,才好知道自己的起点和方向在哪,也才好面对这个令人不安的未来,张开怀抱。
在悠悠历史的长河中,近千百年来,有很多著名的科学家诸如毕达哥拉斯、翰尼斯·开普勒 、伽利略 、莱昂哈德·欧拉 、让·巴普蒂斯·约瑟夫·傅立叶、哈代等人都曾研究过音乐与数学之间的关系,这一直是一个很热门的课题。数学,其英是「mathematics」,这个英文单词是一个复数名词。在古代欧洲,数学曾经是由四门学科组成的:算术、几何、天文学和音乐。音乐虽然在表象上是流动音响的时间艺术,然而,从其基础理论设计与数学逻辑同构并进行符号化组织的角度来看,似乎没有任何一门艺术,天生能比音乐拥有更强的可计算性,1973 年分形理论的提出,更让人们明白了这一点。另外,作为有趣的佐证,神童常见于数学、音乐、象棋这样的领域,也许正是因为他们主要依靠对封闭的抽象逻辑世界的超常的领悟,而不是一般世界的经验。个体的技术成熟与生活经验之间并无太大关系,而文学、生物等其他领域的大师则需要相对更长的成长周期。
2. 广义算法:音乐的数理逻辑
所谓算法,源自古代波斯人对阿拉伯数字游戏的称谓,意思是阿拉伯数字的运算法则。对音乐创作而言,广义的算法指音乐要素及组织逻辑、运算法则、结构模型或规则系统,以及将算法思维与作曲思维中最小的决策单位对应后所形成的作曲技法模型与系列,也就是音乐的数理逻辑。这种对应关系一言以蔽之:凡作曲即有算法。如旋律的动机展开、重复、模进、转调、逆行、倒影、随机、模糊、音程或节奏压扩,和声与对位中的音高纵横向排列组合、不谐和度、紧张度解决,配器中的音色组合,曲式中的并行、对置、对称、回旋、奏鸣等等原则都属于常规的作曲技法,都可以被描述为单一或组合的算法。
3. 使用算法的传统音乐创作
15 世纪的时候,在具有均匀节奏的圣歌中,算法系统就开始使用节奏模式作曲。随后在文艺复兴时期以及巴洛克时代,作曲技法不断的完善,作曲家为旋律的对位发展了严格的规则。例如:复调音乐的创作几乎完全可以通过使用诸如倒影、主题加花或简化等这样系统化的过程来发展某一给定的主题动机(一个音乐小片段),赋格曲就好像音乐中的纯逻辑,可以说最精炼地表述了符号编码的一般秩序。在古典时期,莫扎特(一说为海顿)在创作「Musical Dice Game」的时候,就是运用了随机方式来组合模块作曲。在这部作品中,他创作了 176 小节音乐,然后将小节号排列为两个特殊的矩阵图,通过演奏家掷般子的方式来决定演奏的顺序。这似乎表明,将算法应用于音乐的愿望可能和音乐本身一样古老。
音乐创作的形式化技术在 20 世纪再一次获得发展,勋伯格在 20 世纪初引入了十二音技术,而后由韦伯恩和继承者们对此作了进一步的发展。在 20 世纪 50 年代初的时候,算法作曲家泽纳基斯(Iannis Xenakis)就利用随机过程(不用计算机)生成音乐片段。在 50 年代至 70 年代这个时期,由于受到当时计算工具(计算器)的限制,仅可运算简单的加/减法。当时的算法作曲多属于观念实验性质,这些算法音乐作品以数理逻辑作为作品结构基础而甚少诉诸于听觉,需要具有一定的数学逻辑思维的人才能创作。
4. 当代算法作曲——自动作曲技术历史溯源
狭义上的算法作曲,可以简单地形容为计算机自动作曲系统,在人适当的介入下,计算机就能自动生成音乐(所谓「适当」指的是,与传统创作中作曲家对所创作的音乐作品中的变量拥有主导控制权不同,在自动作曲系统中,人只是规则设定者与反馈调试者)。在这里,我主要陈述自动作曲技术的发展节点,而不涉及西方电子音乐历史的两次浪潮。
4.1
1957 年,由列哈伦·希勒(Lejaren Hiller)和里奥纳德·艾撒克逊(Leonard Isaacson)出版的弦乐四重奏 Illiac 组曲成为史上最先完全由计算机生成的音乐作品。他们基于产生——测试的方法创作,首先使用 Markov 链模型来产生有限控制的随机音符,之后利用和声与复调的规则测试这些音符,最后选择符合规则的材料,修改、组合成传统音乐记谱的弦乐四重奏。
1960 年,俄罗斯研究者 R.Kh.Zaripov 发行了全世界第一篇关于用「Ural-1」计算机进行算法音乐作曲的论文。
1965年,发明家 Ray Kurzweil 首次公演了一首用计算机来创作的钢琴作品,这台计算机能够对各种不同的乐曲进行模式识别,并且可以分析和使用这些模式去创造新的旋律。
1974 年第一次国际计算机音乐会议召开(ICMC)……
随着计算机相关技术的发展和普及,越来越多的人关注到这个科技与艺术奇妙结合的领域,于是在那个新生流派争奇斗艳的先锋实验年代,各式各样的作曲算法涌现出来。然而直到美国作曲家大卫·科普(David Cope) 开发的「音乐智能实验」系统( Experiments in Musical Intelligence,简称 EMI,1981 年开始研究) 1987 年在国际计算机音乐年会上第一次公开展示初期成果那时起,计算机音乐与传统音乐之间的桥梁才逐渐架设起来。
4.2
EMI(采用 Lisp 语言)能够以极高的效率和相当的效果模仿上百位作曲家的风格(需要强调的是,能被系统模仿的要素主要集中在旋律、和声、乐曲结构和部分简单的乐器组合规律上),诸如类似巴赫的众赞歌,类似莫扎特的奏鸣曲以及类似肖邦的夜曲等。其中最深层次的原理被 Cope 称作「重组 (recombinant)」,当然,简单地把音乐成分拆解并随机重组是注定失败的。有效的重组必须以大量的音乐分析为基础,获得清晰的风格定义,再小心翼翼地选取不损伤音乐性的最基本的风格标签元素(一般以多个音高形成的旋律单元或和弦进行为单位)为单位进行重组,依此产⽣一份「同样风格下的」新作品。比如,Cope 选择莫扎特奏鸣曲风格的一系列原作输入给 EMI 系统作为分析的「数据库」,EMI 通过程序分析、解构这些作品,识别作曲家的创作特征,提炼为音乐风格的「DNA」,作为创作的依据,最终生成多个莫扎特风格的新作品乐谱,再由 Cope 甄选、修改。
Cope 在这项实验上延续的改进工作长达三十年。二十世纪九十年代,Cope 不再满足只生成仿作的系统,而力图让计算机程序创造出属于它自己的音乐风格,同时也用这种方式回应那些被他的成果所激怒和心生恐惧的人们「侯世达(Hofstadter)曾著文《如聆巴赫》表达过对此的感受」。于是,建立在 EMI 分析数据库基础上的 EMILY HOWELL 系统诞生了。这套系统完善了人机交互反馈环节,使得无论是自然语言指令还是输入音符修改方案,都能有效改善 EMILY 的算法,使其的进化更符合作者和听众的预期。这个系统的源码是以专著形式公开的,并且,据传 EMILY 已经接受商业订单了。
5. 当代算法作曲——自动作曲技术及主流软件
目前在自动作曲中公认的有影响的技术主要有马尔科夫链、随机过程、基于规则的知识库系统、音乐语法、人工神经网络、遗传算法,其他出现的技术有分层结构、细胞自动机理论、基于经验的作曲、回答集编程、可能性构造空间思维模型、概率逻辑、三元脑模型等等。这些技术在当时基本上都紧密地跟进了计算机技术的发展潮流。
近半个世纪以来,基于上述技术开发的软件平台数不胜数,这里是一些常见的主流软件:
音响合成的有 Csound,以及在此基础上的扩展软件有 Orchestration、Ceeilia 等;
利用图形、文本等其它媒体数据生成音乐的软件有 Music Generater;
通过搭建各种小的算法物件而生成音乐的软件 Max/MSp、Infinity、Algorithmic Composer 等;
利用频谱学派技术来创作音乐的软件 Open Music;
可以生成为帕拉斯特里拉风格的严格对位音乐的 williamShottstaedt 的自动对位程序等;
基于规则与音乐文法,可续写、仿写传统作曲家风格的 EMI/ EMILY HOWELL 系统、Longuet-Higgin 系列全音程和声 Jazz 作曲系统;
还有集多种算法作曲技法为一体的技术混合型系统的开发方向,如 HARMONET+MELONET 混合系统、国内自主开发的 Sound in a System 等等;
在后续的发展中,这几类软件的功能又有相互渗透的趋势,并且人机交互功能也不断成熟。不过,这些依托不同理论和逻辑层次解决特定问题的程序设计思路,具有阶段性的现实意义,所以它们仍然具有各自的不可替代性。这里简要讨论一下。
5.1
基于随机过程、概率逻辑的有限控制方法,尤其是使用马尔科夫链结合一定约束规则,在统计的基础上对音乐的未来走向进行概率预测与风格边界限制(音乐旋律的很多风格特性都与所采用的音阶、节奏有关,限制了可使用的音的范围、出现概率与节奏组合形态,也在一定程度上划定了风格的边界)。因它们建模简单,可以即时产生新音乐,所以一直被广泛用于商业程序上,也大量出现在互动音乐艺术家诸如Jefrrey Stolet、Francois Pachet(上文提及的flowmachine 开发者)等的作品和即兴演出中。
5.2
同样基于随机过程的有限控制,遗传算法、细胞自动机理论、分层结构(借鉴混沌/分形理论)等技术,在我看来,都是在不同层面上寻找最优解、拟合(遗传算法在已经建模的情况下对问题进行优化求解,以启发式搜索为主,不一定能找到最优解,而它的优化目标也无法对抗音乐艺术本身的复杂性)。这些技术的特性更适合于以检验作品而不是以生成作品的形式加入到作曲系统之中使用。
具体地说,这些技术背后的理论都从机制的层面去研读客观世界,能够很好地解释现象、提取共性模式与法则,然而客观世界是超越还原论的复杂系统,单纯根据这些理论模型无法还原现象(同样的情况存在于音乐自身领域的理论建设中)。
更进一步地说,根据这些理论设计的几种技术,就目前而言,并不能有效反映实际音乐作品中构成元素在时空维度上的秩序感与复杂关系,并且,从实用的角度考虑,以往实践所选择的算法与音乐元素之间的映射关系也有待商榷。
需要指出的是,应用这些技术时,通过人机交互不断提供反馈及修改规则,可以在一定程度上提升所生成作品的质量,虽然仍不够理想。有研究者认为,这是因为现有算法与作曲家的思维模式相异而导致的,而我觉得,我们其实无需画地为牢,囿于人类作曲的思维模式,我们需要的是把握最终生成的音响,令其符合人的音乐听觉认知/神经/心理/生理基础即可,毕竟人类对音乐作品中占据显著位置的音高和节奏模式(前景)宽容度有限。从使用方式上着手,对这些作曲系统另辟蹊径,倒是可以柳暗花明。
5.3
基于经验的作曲、基于规则的知识库系统、音乐语法、可能性构造空间思维模型等技术,重在从模式和法则层面分析音乐创作思维、音乐作品,基本属于模仿性质的技术。这些技术或通过输入已有作品,或纯粹基于设定的规则来生成作品。基于规则的做法需要对音乐如何产生、音符句法张力如何运作、旋律单元如何组合成乐句和段落有极其深入的理解,显然,没有一套规则可以简单地诠释音乐,所以基于已有作品分析基础上的规则控制技术较为成功(比如 EMI 系统),且这种技术也最实用,商业应用最广泛(这些技术的兴起与当时人工智能研究焦点的转移有关,纯粹底层科研逐渐变成了软件工程的分支领域,受到实际应用的驱动)。
5.4
属于人工智能研究范畴的机器学习技术(包含自动推理、早期几种人工神经网络算法等),核心是回归和数据拟合。或许不少人会记得机器学习的第一个成功案例:IBM 启动的「老实人」(Candide)自动翻译项目。「老实人」把「理解一个复杂过程」这个问题转换为「从大规模这一过程运作的实例中构建浅层规律模型,并依此对未知数据进行预测」。这些系统得到的有效数据与反馈越多,翻译任务完成得越好,但是因为不涉及价值和策略判断,也缺乏更深层次的信息特征识别,这类系统在随数据量而改善达到一定程度时,边际效益递减也很明显。使用机器学习技术的自动作曲系统目前属于这个领域的最前沿,上文中提及的 flowmachine 就属此类(尚未知晓其具体算法构成)。
事实上,自动作曲系统所服务的领域并不狭隘,但是由于其交互界面简陋,对功能的调用又大多要求编程基础和音乐理论修养,其服务的人群一直以研究型机构、专业作曲家、新媒体互动艺术家群体为主。同时,这些技术侧重于研究意义,作品面向的对象往往不够明确,这种应用上的不迫切,某种程度上也阻碍了这些技术的进步。近年来,随着开放科学的兴起,许多基于机器学习、神经网络的开源项目浮出水面,整个领域开始进入快速发展。
6 算法作曲的消费级应用——计算机辅助作曲系统
我感兴趣的,是算法作曲技术的实用性道路,最终,无论在台式电脑、专业的一体式硬件,还是在平板、手机上,你都可以轻松使用,这些工具为创作和教育带来了无比的便利。因为无法穷举,也没有盖棺定论的必要,所以下面只简要提及一些台式电脑的主流软件。
台式电脑音乐制作
宿主软件:主要有 cubase、nuendo、sonar、logic、FL studio、Pro Tools。当前发展的趋势是 all in one,功能涵盖面广,通过包括虚拟乐器插件、合成器、采样器、各种算法外部插件,可获得极大的性能扩展。这些专业软件整合了大量专家的工作习惯,使用者在熟悉其高阶操作方式后,工作效率将获得很大提升。
制谱软件:Finale、Siblius。除了制谱的主要功能之外,也可以通过各种插件获得性能扩展,其内置功能包括了许多自动作曲算法如自动配器、根据音乐动机自动构思等等。
自动伴奏软件:band in a box。流行音乐基本上是模块化、确定性中带少量偶发随机信息的思维,乐器组合、节奏、phrase(习语)、voicing(和弦构成)、licks(标签性质旋律片段)、riff(连续反复的旋律性伴奏型)等元素被作为模板确定下来之后,整个风格就基本可以被确立。这个软件最大的优势就在于风格模板库全面,无论作为研读风格的最小模型,还是用于试验风格重组以形成新风格,都相当便利。特别是对于带有即兴成分的爵士类音乐,band in a box 还提供将 solo(独奏)乐器的 licks 自动重组衔接的算法,对于当代教学与探索有一定意义。■
——- 预约深度学习基础班 -——
掌握深度学习原理
搭建神经网络模型
熟悉自然语言处理
开发智能个人助理
戳原文,马上预约下期!