APP下载

算法作曲专家系统系列论文一
——基于Max平台的十二音序列算法作曲专家系统

2020-09-27

北方音乐 2020年16期
关键词:作曲规则自动

何 井

(武汉音乐学院作曲系,湖北 武汉 430000)

引言

随着技术奇点的逼近,普遍认为人类将在2046年左右进入强人工智能时代,这一切都要从1956年的一部品说起。1955年,化学家L.希勒投身计算机科学,次年,利用2进制创作了第一部由计算机Illiac自主生成的音乐作品,从而引发了计算机的革命性事件,由此打开了计算机科学领域的新的大门——AI人工智能。

经过数十年的发展,AI在各个领域出现了突破性的进展,从最初的专家系统走向机器学习,又到了现在的深度学习。在音乐创作领域,计算机科学家、工程师、作曲家们也做了大量的尝试与阶段性成果。本论文将以系列的方式深度探讨与解读伴随着计算机科学的发展在自动作曲系统的开发上有过哪些具体的成果,并结合计算机算法作曲或者说自动作曲的模型展开讲解。作为系列的第一篇,着重点放在专家系统上的介绍与使用方法上。笔者将用三篇论文系统解读一个关于音乐创作的十二音序列自动作曲专家系统。之所以如此,目的有二:一是通过详细解读自动作曲模型H12toneST,具体说明构建自动作曲的专家系统需要哪些先决条件,以及专家系统在自动作曲上取得的进展;二是就笔者目前的研究结论来说,AI作曲的系统核心部件更多还是需要依靠精美的专家系统完成。

一、第一节:自动作曲、AI作曲的由来与专家系统的建立条件

自1981年加州大学科鲁兹分校David Cope教授的EMI(experiments in musical intelligence)音乐智能实验成果问世,AI作曲或者说自动作曲逐渐进入公众视野。但少为人知的是,自动作曲这一项目的研究还要往前推25年,1955年,现代计算机音乐、计算机算法作曲的奠基人化学博士L.希勒厌倦工业化学家的生活,义无反顾地投身计算机科学,开始研究算法作曲。1956年,他利用2进制创作了第一部由计算机Illiac自主生成的音乐作品《Illiac弦乐四重奏组曲(Heller and Isaacson)》。(由此“人工智能Artificial Intelligence”一词被提出)此外,在同一时期,美国洛杉矶的计算机则率先把这一技术运用在了商业领域(由计算机算法对现有的流行音乐进行改编),结果失败后退出这一领域。在苏联方面,计算机URAL对民歌进行了再创作并进行了分析。英国方面由牛津和剑桥经济学、统计学教授D.G.钱伯努恩(David Gawen Champernowne)和数学家S.吉尔、作曲家L.贝里奥、L.诺诺在意大利开始了算法作曲研究。

但是,自动作曲系统真的是始于1956年吗?对于音乐思维而言,过程的形式化是很自然的。当我们听音乐时,身体的一部分沉 浸于感官的体验之中,而另一部分则不停地产生对音乐的预期,如此这般建立起对音 乐过程的遐想。几个世纪以来的作曲家们知道,许多音乐的发展过程都能以符号表示并加以形式化,如和声级数表示的与其进行方式的规则或是作曲手法中的交替,模进,卡农,赋格与各种变奏手法都是形式音乐过程的范例。于是就有了形式化作曲(formal composition algorithm)一词的由来。有了形式化作曲,随之而来的就是程式化作曲。简单来说,程式化作曲就是将音乐创作的过程程式化。约在1026年,意大利音乐理论家圭多·阿雷佐发明了世界上第一个能够自动谱曲的方式(这里还不能称之为程式),他将字母的元音对应到了经文上的元音字母(类似清代的英语教材所使用的方式:I love you写作爱老虎油)。而真正的第一个程式化作曲系统是由圭罗麦·迪费所提出,他从弗罗伦萨的一座教堂的建筑比例中推导出不同的速度,并将其用在了他的一首圣歌中,在一些作品中更是使用了序列音乐中的音序倒置(反向)的手法,而这却是在序列音乐出现前几个世纪。

由此可见,系统性的作曲思维早在几个世纪前就已经萌发。事实上,作曲家在实际创作音乐的时候也会潜移默化地使用一些程式化的思维来布局音乐的音高、节奏、织体、结构等。简而言之,就是常说的“套路”。而其中最具有代表性的就是传闻中的莫扎特的音乐骰子游戏(传闻由莫扎特发明,实际不可考证),这款小游戏由176条小步舞曲小节,96条三重奏小节,两张写满数字的规则表以及两粒八面骰子组成。游戏的规则非常简单,两粒骰子被随机投掷16次,根据骰子显示的数字,规则表中对应的小步舞曲片段被依次选定,组成了一支小步舞曲。同样,一粒被随机投掷16次的骰子就能够谱出一段三重奏。我们可以发现,这个简单的游戏总共可以生成4千多兆段小步舞曲和2千多亿段三重奏。也是现今所能知晓的最早的自动作曲系统。

“自动作曲系统”的起始点究竟从何时开始,其实已经很难确定,但有一点我们是可以确定的,这一切的基石都源于古希腊数学家毕达哥拉斯所提出的万物皆可数,音乐可数这一概念。而基于上述研究与理念在各大研究所包括Sony的Flow Machines、谷歌的AI Duet,Magenta、NVIDIA的AIVA、David Cope的EMI,本质上应该被称为作曲专家系统。

关于音乐创作的专家系统在计算机音乐教程中有以下概述。

专家系统一词最初被提出是在1984年(Winston1984),最初的专家系统都是第一无二的程序,但是,随之而来的各种各样的专家系统外壳(expert system shells)便开始大行其道了。专家系统外壳是指一个被封装的程序设计环境,它为用户提供了创建知识库的辅助工具。虽然一些外壳提供了规则磨边并可以根据用户给出的例子推断出规则,但是为专家系统外壳变成也并非无足轻重的工作。专家系统效仿的是技术专家的逻辑推理。一个专家系统的功能是否强大与其知识库里的规则质量直接相关。有关音乐的某些形式,比如对位法的规则,常用的和声或者莫扎特的奏鸣曲式,用这种方法可令人信服地获取(Ebcioglu1980,1988;Schwanauer1988;Schottstaedt 19898b;Cope1989)。不过,需要使用专家系统的方法,需要有一整套被公认的实施体系,公认的规则集以及已知的启发式,所以,对于一些不够形式化的新音乐风格,专家系统可能不太适合它们。

综上所述,早在计算机出现之前,计算机算法作曲的基本先决条件就已经存在,音乐作为一种严谨且具有逻辑的艺术与计算机科学相结合,从某种意义上可以说是必然的结果。

但是,自动作曲家系统在构建与使用的同时也有不少的限制条件。大致如下:

(1)必须基于现有的音乐规则,或者针对具有一定形式化的音乐风格,如巴赫、莫扎特、肖邦、德彪西等的大部分音乐都可以用专家系统进行音乐创作。

(2)使用专家系统必须具备一定的相关专业知识与经验。

(3)专家系统的强大与否和构建的知识结构、丰富程度、专业程度程成正相关。

4.专家系统在对于现代新的音乐类型的开发类型上不太适用,但适用于一切现有套路型音乐的自动生成。

二、第二节:十二音序列自动作曲专家系统说明

此十二音序列自动作曲专家系统适用于小型多声部十二音序列音乐写作,包含自动和声模块、自动序列魔方生成模块。构建平台为cycling74开发的可视化计算机编程语言Max/msp。

对于使用者有一定的要求:一是有一定的Max/msp语言的编写基础;二是对于十二音序列音乐写作有初步的认识。

在熟练掌握了它的使用方式后,将大幅度提升创作效率,也将或多或少改变创作者的创作模式,从传统的作曲思维转变为全局思维。

系统操作界面与模块介绍见图2.1。

为了便于写作,以下内容中的十二音序列自动作曲专家系统将省略为H12toneST。

图2.1

图2.1为H12toneST操作界面。共分为四个区域。

这四个区域分别有若干个输入参数,下面将详细讲解各区域的输入参数以及其包含的意义。

(一)序列O(原型Orginal-I)导入区

图2.2

在序列O(原型Orginal-I)导入区中的Message box中输入作曲家所设置的序列原型。

输入规则如下:序列中的每一个音高的格式为x空格y,空格。其中x为序列编号,建议以0.1.2.3.4……11为序号方便输入。y为音高。

音高映射方式遵循MIDI协议,如国际标准音A1为69号音则0 9,为A。0 11,为B。接下来依次将12个半音输入后锁住patch,双击Message box,将序列导入table pitch O-I matrix。在table pitch O-I matrix中同理。x轴为序列编号,y轴为音高。

(二)乐曲播放进度时间显示与乐曲开始终止控制区

图2.2.1 播放进度与乐曲开始终止

图2.2.1显示的区域内有两个控制区,使用方式:在设置好所有参数后点击start开启程序,这时系统会按照设定的速度实时演奏并记录乐曲。若中途需要暂停可再点击start,若需结束录制则点击stop。

(三)规则学习区

图2.3.1

图2.3.1为规则学习区域,在设置H12toneST第四模块前需充分了解此区域中的规则。

规则与参数表达意义如表1所示。

部分参数含义理解可参考下图2.3.2。

图2.3.2 参考(Max定义音乐中不同参数的方式例子)

表1

(四)乐曲时间轴、时间点、事件激活及音色选择与录制

图2.4.1

图2.4.1中上端为乐曲时间轴,单位时间为秒(S)在select中设置乐曲片段的时间节点再通过Message中;回车可依次在次时间点激活若干参数的状态,如图2.4.2。

图2.4.2为乐曲第一秒开启演奏,乐曲离散度(速度为5慢板),音域1(在一个八度内演奏),连奏2(音符时值约为4分之一秒)音量范围60附加范围10(相当于p-f之间)移位0、逆行0、倒影0、逆行倒影0代表码目前使用原位O-I型原序列。

图2.4.2

图2.4.3

图2.4.3则为片段在第87秒开启,慢板,音域围绕中央C上下两个八度,连奏等级3(选择不同乐器有不同的效果,这个需要使用者实际使用后才能理解),音量范围60附加范围10(实际区间50-70),序列使用序列魔方第九列逆行倒影。

补充:关于时间轴,目前的版本只允许100秒,6个节点的控制,若需要设置更长或者更多的时间与节点,请参考本论文系列2。

图2.4.4 音色选择与录音

点击GM1 menu可选择GM音色列表中的音色进行演奏与试听。

双击选择通道for Max 1或for Max可将数据传输到宿主软件实现同步录制。当然,也可以在宿主软件中添加音色,此时将不再使用GM音色列表。

三、H12toneST内部核心部件十二音序列魔方自动生成模块

此模块已修改为可单独使用的小型专家系统,接下来将简单介绍使用方法与设计思路。

首先,如图3.1.1与H12toneST相同设定作曲家的序列原型。点击开关,系统会自动记录原型序列所对应的MIDI音高信息。若需要快速跳转至任意序列,可通过修改上方Message box参数达到目的。如图3.1.2中点击Message box后则生成移位为10的倒影序列,也可手动点击图中标识处来定位序列。

设计思路如图中的逆行的实现方式是使用scale object后输入 0 11 11 0将0-11的区间转换为11-0,再通过开启或关闭gswitch object实现切换通道的方式完成。移位则通过简单的加法的方式实现,倒影则通过-12 object与* -1object的求余组合完成。逆行倒影则通过同时开启逆行与倒影的开关即可,将所有的原始序列加60则可设定0号音的音高位置为中央C。

图3.1.1

图3.1.2

此外,图3.1.3 为序列原型辅助生成工具,连续点击图中bang按键12次可通过urn object生成0-11个不重复的数,当然,它只能作为辅助,使用者需根据12音序列原型的写作规则来做调整。

图3.1.3 序列原型辅助生成工具

以上为H12toneST内部核心部件十二音序列魔方自动生成模块的解读。

四、结论

本论文作为算法作曲(自动作曲)专家系统讲解的第一篇,并未详细拆解系统H12toneST中所有的算法于整体的设计框架,而是侧重于介绍它的使用方法以及核心算法之一十二音序列魔方自动生成算法的构建方式。有以下两个原因:一是此系统过于复杂,很难在一篇论文中做详细解读;二是笔者出于循序渐进的原则在开篇想以最为通俗易懂的方式作为切入点。在次论文中,我们梳理了算法作曲(自动作曲)专家系统的由来,其出现的先觉条件,以及专家系统的优劣。

(1)必须基于现有的音乐规则,或者针对有一定形式化的音乐风格。

(2)使用专家系统必须具备一定的相关专业知识与经验。

(3)专家系统的强大与否与构建的知识结构、丰富程度、专业程度程正相关。

(4)专家系统在对于现代新的音乐类型的开发类型上不太适用,但适用于一切现有套路型音乐的自动生成。

通过了解系统H12toneST的使用方式与部分算法的拆解,我们对于算法作曲有了一定的认识。系统的APP下载地址为https://pan.baidu.com/s/1aUGm1XU3Yze2o_H5Kdk8Pw,提取码kguc,并附上此系统创作的小型作品试听文件。

在熟练掌握了自动作曲专家系统的使用方式并能够构建自己的专家系统的前提下,将大幅度提升创作效率,也将或多或少改变创作者的创作模式,从传统的作曲思维转变为全局思维。这不仅能够为创作者节省用在计算上的时间,而且可以让创作者把更多的精力与注意力集中在对于音乐的表现内容与作品的内涵上。

猜你喜欢

作曲规则自动
撑竿跳规则的制定
逐梦
自动捕盗机
那一天
奥斯卡的规则变了!
George Gershwin
让规则不规则
伍光辉作曲三首
让小鸭子自动转身
自动摇摆的“跷跷板”