基于音乐编程的电子音乐创作在中国文化传承上的探索与实践
——以“编码之夜”系列展演为例

2023-02-13 18:51杨万钧韩金昊
中国教育技术装备 2023年21期
关键词:编程技术电子音乐编程语言

杨万钧 韩金昊

四川音乐学院电子音乐系 成都 610021

1 音乐编程在中国西南地区的发展现状

随着计算机和数字设备的广泛使用,音乐创作和音乐制作与科技的融合成为必然,计算机科学和数字技术在当下音乐创作的任何一个环节中都扮演着极其重要的角色。今天听到的几乎每一首歌曲、每一部音乐作品的创作过程中都大量使用到计算机音乐技术。计算机技术和数字技术的引入,不仅影响着音乐创作的进程,还改变着音乐风格的发展。越来越多的数字化和计算机风格的音乐形式诞生,它们身上数字技术的烙印是与生俱来的,这使得音乐创作与计算机技术的关系变得越来越紧密。

当下新生代的音乐人除了需要具备扎实的传统音乐基础之外,还需要掌握主流的计算机音乐技术,能够敏锐把握计算机音乐技术发展演变过程中会对音乐带来的形态和风格的变化,为音乐创作注入更多的灵感与激情,催生出更多具有创新性的音乐作品。其中音乐编程技术是半个世纪以来最具有电子音乐学科代表性的技术之一,使用音乐编程技术创作电子音乐是国际上较为传统也较具研究性的一种创作方式。在本文中,我们主要以编码之夜系列活动讨论音乐编程技术在中国本土化的电子音乐创作与民族乐器信号处理方面的探索与实验,并以作品《幻翼》《春度玉门》举例说明我们是如何将编码思想与中国文化结合在一起。

1.1 什么是音乐编程技术

众所周知,编程技术是使用计算机去解决某一具体问题的技术,通过编写可被识别的程序让计算机完成指定任务。音乐编程技术是计算机技术的一个分支,是使用针对音乐创作而专门设计的计算机语言进行创作的技术。它使用独特的音乐编程语言简化了编写逻辑,简化了烦琐的操作,降低了音乐家学习计算机编程语言的难度。在音乐编程技术里,作曲家就相当于程序员,使用音乐编程语言编写声音信号合成与处理程序,将声音信号做实时处理与编辑,完成一首电子音乐作品的创作。

1.2 为什么要在中国西南地区研究音乐编程技术

对比现在流行的音频工作站,音乐编程语言或许过于晦涩难懂且学习周期较长,但音乐编程语言来源于计算机编程语言,有着良好的兼容性和操作性。音乐编程语言的语法继承了计算机编程语言的规范性,在语句表达和进程声明方面与计算机编程语言无异,因此更容易被其他领域的工程师阅读与理解,加强与其他领域的交流。例如Csound 是一款开源的、基于Basic 语言开发的面向过程的音乐编程语言,它最早由 Barry Vercoe(巴里·沃克)于 1985 年在麻省理工学院媒体实验室开发,凭借着极具特色的非交互式文本乐谱(non-interactive score driven context),使其成为一款强大的计算机音乐创作工具,一跃成为当时在电子声乐音乐领域中最好的文本型音乐编程语言。自90 年代开始,Csound 通过建立一个交流社区去广泛收集来自艺术家、音乐家、音乐爱好者、DSP 专家、程序员和其他参与者的意见,引导一群核心开发者进行维护与开发,充分挖掘音乐编程技术的可能性,以至于今天的Csound 工程文件甚至可以在Python、Lua、C/C++、JAVA 等其它语言环境中被调用。[1]通过这个社区,让不同领域的参与者可以开源与共享自己的创意与项目,让计算领域的专家解决作曲家的技术难关,让音乐领域的专家引导其他爱好者创作,这使得Csound 自其出现以来,一直持续发展到今天,成为一个有着悠久历史的强大的计算机音乐创作工具,有力推动了电子音乐在西方世界的发展。

中国的电子音乐创作起步相对于西方较晚,中国的作曲家们在1980 年代初在向西方世界的学习与沟通中才陆续接触到电子音乐。中国早期的电子音乐以合成器音乐为主,但有部分年轻作曲家在研究合成器的同时,也开始尝试使用合成器语言进行电子音乐研究与创作。而四川作为一个中国的内陆省份,信息流动相对闭塞,在文化交流等方面相对落后于东部发达地区[2]。但在1970 年代末中国改革开放之后,新的思想与潮流涌入,四川的学者也开始开眼看世界。四川音乐学院作为中国西部地区唯一的专业音乐学院,其作曲家和研究者也在不断努力向西方学习。为了寻求能够更好地服务于中国特色的电子音乐技术,一群同时兼具计算机工程背景与音乐创作能力的爱好者集结在中国西南地区的四川音乐学院(以下简称川音),开展针对中国文化的信号处理方法研究,开设了针对音乐编程技术的人才培养课程,组建基于中国文化的电子音乐交流社区。

2 “编码之夜”:一群编码爱好者组成的电子音乐研究小组的实验

2.1 早期的音乐编程技术教学

由于音乐编程技术相对于一般的音乐创作技术更为困难,既要保留一般音乐创作中的感性思维,同时还要有能用计算机语言描述声音合成方法的理性思维,因此培养一批能适应音乐编程技术的作曲家是个周期较长的教学活动。早在1980 年代,四川音乐学院的作曲家们就开始使用Basic 语言进行音乐分析的探索与尝试,这可以说是我们研究的先驱与起点。

进入21 世纪,四川音乐学院的作曲家们更加积极地进行国际学术交流,请进来、走出去进行专业学习。随着川音电子音乐专业的建立,在电子音乐领域积极与国际电子音乐机构和专家建立联系和学术交流,先后与法国GRMAE、美国CCRMA、德国ZKM 等机构建立合作关系并进行互访,学习先进的方法与理念;美国北德克萨斯大学John Nelson 教授、俄勒冈大学Jeffry Stolet(杰夫瑞·斯托雷特)教授、斯坦福大学John Chowning(约翰·乔宁)教授等也陆续到川音举行学术讲座和音乐会,为川音的电子音乐研究者带来了Csound、Kyma、Pure Data、Max/MSP、SuperCollider、Faust 等音乐编程语言和工作,并且积极提供学习和研究的帮助。

在国内方面,川音的年轻电子音乐人孜孜不倦地积极进行学习,不断尝试和创新,为川音带来了新的机遇和方向。2005 年,白小墨副教授在中央音乐学院进修之后回到川音开设Max/MSP 课程,使川音赶上了国内第一批研究Max/MSP 音乐编程技术的潮流,图形化编程正式加入川音的教学计划之中。2008 年、2012 年,笔者先后在川音开设了Csound和Pure Data 课程,同期国内其他院校没有此类的课程,为川音的学生提供了更多可选择的电子音乐创作方式,将音乐编程技术正式加入了教学计划中。2016 年,将Live-coding 技术引入川音电子音乐系,开设了Sonic Pi 相关课程,将实时编码创作手法引入教学活动中。此外,笔者还在2015 年和2017年分别出版了国内第一本Csound 和Pure Data 教材,填补了国内相关教材的缺失,为研究者提供了入门基础指导,完善了川音电子音乐系的音乐编程创作教育体系。

2.2 “编码之夜”的由来及发展

基于川音学生的实际特点和能力,在笔者的研究和教学中,优先选择了开源的Csound 语言和Pure Data,这样既让学生没有太多经济上的压力,又能让学生有更多的参考文献和作品可以学习和参考,加速其学习;同时,让学生能够通过这些语言尽快介入到相关的学习与创作中;而且,此类语言与其他商业软件之间的紧密联系,能够让学生在学习之后快速迁移到其他主流的商业语言,尽快适应开发与创作。开发者和社区成员也不断无私地提供帮助和指导,这也加快了教学和创作。Csound社区的Richard Blangour(理查德·博岚之),Steven Yi(史蒂芬·伊)等,Pure Data 的开发者Miller Puckette(米勒·帕特)及社区成员也经常积极给予帮助,形成良性的互动。在他们的帮助下,川音电子音乐系的师生先后创作多部作品参与国际国内电子音乐学术活动。

2008 年杨万钧开设Csound 音乐编程课程后,针对文本型音乐编程语言的研究就已经开始,当时的研究团队以杨万钧和他指导的几位学生组成,主要研究Csound 电子音乐创作和交互设计的途径与可能性。后来随着研究团队的扩大与其他专业爱好者的加入,常规的教学活动和学术讨论不再能满足成员之间交流的需要,于是便成立了早期的编码研究团队——Csound 研究小组。后来随着研究与实践的进步与发展,Csound 可实现的技术与算法越来越多,可关联的插件与软件越来越广泛,Csound研究小组的研究内容也逐年扩充。截至2016 年,参与者以Csound 研究小组的名义展演的作品超过10 部,多次在国内外的比赛与展演中崭露头角。

为了让学生们能够在实践中磨练技艺和积累创作经验,2017 年Live-coding 技术加入教学活动中后,编码研究团队的展演活动正式更名为“编码之夜”,在其基础上引入了Pure Data、Max/MSP、Sonic Pi 等其他类型的编程语言,并增加一场音乐交流会,供参与者以表演的方式互相分享作品,促进参与者分享技术和创作思想。此时的“编码之夜”不再是一个针对音乐创作的单一学术讨论会,而是一个横跨音乐、计算机与新媒体三大领域的综合创意分享活动与平台。

从这个时期开始,笔者也积极进行音乐编程语言的学习和创作尝试,在大量的学习与实践中,笔者总结出,首先,各类电子音乐相关的编程语言仍是国际电子音乐研究中的重要工具,其相关领域仍是研究热点,并且为电子音乐研究和创作注入创新的动力;其次,在ICMC(国际电子音乐年会)、ISCM(国际声音年会)、ICSC(国际Csound 年会)、NYCEMF(纽约电子音乐节)等国际性电子音乐活动中,基于音乐编程语言的作品创作仍非常活跃,大量优秀的创新性作品层出不穷,基于音乐编程语言的电子音乐作品是各类活动中的重要分类。

3 音乐编程创作在中国本土化方面的探索

“编码之夜”所涉及到的音乐编程创作,是使用音乐编程语言创作电子音乐的作曲技术,突出计算机在电子音乐创作中的主导地位,借助计算机高效的处理能力降低表演中的人为失误,达到更完美、更精确的艺术呈现。在作品内容上立足于中国传统文化,着眼于传承中国文化与思想,而非单一的表演形式。旨在发挥编程技术在计算机方面的优势,作用于中国传统文化的创新,以创新性、实验性的技术对中国传统文化进行演绎。在作品立意上着重强调中国文化的核心是“和合”思想(“和”的意思是和平、和谐与统一,“合”的意思是谐和、同调与合作),即各得其所是目标,以和为贵是原则,和而不同是方法,中庸、中道是途径,体现中国文化是在承认差别的基础上求和谐,而不是取消差别求一致的态度。

3.1 文本型与图形化的割舍

在“编码之夜”中我们常用的音乐编程语言有:Csound、Sonic Pi、Max/MSP,Pure Data。前两者是文本型编程语言,用文本去描述算法和处理方法,适合具有一定计算机专业背景的研究者。后两个是图形化编程语言,用模块和连线形象地表现信号处理方法,方便非计算机专业的音乐家设计自己的信号处理算法,是目前中国和国际电子音乐家中比较流行的音乐编程语言[3]。

在“编码之夜”中,图形化编程由于其较长的设计周期和较高的学习阈值在创作中使用较少,但其直观的图形规划和连线易于设计复杂作品的流程和信号流分配,有时在设计大型混合类电子音乐和乐器交互类电子音乐时会用到。文本型编程语言的编译方式与人类的语言习惯较为相近,其语义和逻辑关系严密且规范,容易被有计算机技术背景的工程师和音乐家所理解。对于小规模的声音实验和模块调试来说,在文本型编程语言中调试算法的操作量比图形化编程语言要小,行列清晰的文本表达方式更容易阅读,且语言逻辑相对规范,易于修改与纠错[4],对于掌握有一定计算机技术的音乐家来说,它比图形化编程语言更适合做声音实验与理论测试。文本型音乐编程语言不仅能设计信号处理方式和信号流,还能进行交互设计和Live-coding,是“编码之夜”活动创作的首选。

两类语言在其各自的领域都有相应的优势与劣势,不存在二者必选其一的二元性抉择。“编码之夜”支持以和而不同的观念看待两种技术,根据创作者的预期目标去选择相应的语言类型,高效有序地实现作品创作。

3.2 结合中国文化思想的音乐编程创作

前面提到,中国作曲家在创作基于中国文化的电子音乐时常常会遇到技术方法与思想不契合的问题,究其根本是当前大部分的信号处理算法和流程都来自欧美地区,是基于欧美艺术规范与文化标准所开发出来的方法,它与中国传统文化所强调的“和”与“合”的理念有所差异。为了寻找更适合中国文化的电子音乐表演方法,我们从编程思想方面入手,将两种常见的编程思想与中华文化结合在一起,指导我们构建独特的信号处理方法。

3.3 面向过程的编译思想在中国文化下的混合类电子音乐创作应用

在“编码之夜”常用的文本型音乐编程语言中,Csound 和Sonic Pi 代表着两类不同的编译方式,前者是一种面向过程编译的语言,后者是面向对象编译的语言,它们描述方法的逻辑是不同的。面向过程编程是通过具体设计处理的每个环节,用语言描述方法之间的逻辑关系,从而形成一套处理程序,是实现电子音乐中信号流设计的关键思想[5],在为中国民族乐器创作时,此类设计思想与中国人和而不同的原则不谋而合。以面向过程的编译方法对中国乐器的声音进行有针对性的调整,使计算机处理过的声音与乐器原始的声音相呼应,这一手法在韩金昊作品《幻翼》中最能体现。

作品《幻翼》是一部使用面向过程思想创作的Live-coding 作品,通过实时处理中国笙演奏的声音,丰富其声音成分,处理产生其它的信号,展现事物在变化中达成统一。在声音设计中,作者准备了多个信号处理模块,通过实时编码改变信号流向,实现信号处理方法的动态调整。

由于笙的奏法比较独特,是一件复音管乐器,可以同时吹奏一组或多组和声。因此我们利用该特性,将信号通过延迟算法和循环算法反复处理,生成一个声音成分丰富且在时域上相对连贯的复杂信号,着重强化笙这件乐器的复音特性。为了实现这一目的,我们将多个延迟算法和调制算法封装成几个方法,让它们在信号处理流程中被频繁调用,将多个线程中的声音组合在一起,从而实现一次完美的信号处理。在这样的信号处理流程中,作曲家秉承着“各得其所”的思想,将笙的信号同时在时域和频域上进行处理,增强笙的表现力。同时还能减少计算机的处理器负担和表演者的操作难度,表演者只需要将注意力集中在信号处理的关键节点上,不需要去关注方法的具体调整,减少实时编码的困难。

3.4 面向对象的编程思想在中国文化下的电子声学音乐创作应用

不过面向过程的编程方式也存在种种的不便,比如信号处理模块仅支持有限的调整,其核心处理算法是封装的黑盒,并没有从本质上实现思想与技术上的统一。针对这种情况需要引入中国文化中因地制宜思想,根据需求封装一组代码作为一个独立对象,定义一个独立的声音处理方法,这种思想在计算机语言中被称为面向对象的编程。相对于面向过程编程,面向对象的编程可以更高效地调试和创作,有效利用语言的便利性去指挥计算机完成特定的任务[6]。在杨万钧作品《春度玉门》中,作者为体现“合”的思想,封装了大量处理方法,将它们定义成多个可被调用的模块,细致地处理笙的声音。

作品《春度玉门》是一部使用面向对象思想创作的Live-coding 作品,使用Sonic Pi 实时处理中国传统乐器笙的音响,使其变幻出多种形态,表现中国玉门关千年以来的变迁。作者在设计作品时以面对对象编程的方式定义了许多声音处理方法,通过Live-coding 的方式更改声音处理方法实现声音形态的变幻。在封装处理方法时,创作者已经提前预留了诸如“时间拉伸”“速度调制”“音高调制”等方法的变量,在表演时直接对其输入参数就可以调整处理方法。《春度玉门》这部作品重点在于展现事物的变迁,因此笙的声音会随着作品的进行变幻出不同的形态,但在变化中始终不会脱离其原始的特征,展现出事物的变迁始终遵循着中庸与中道的规律。为了体现“合”的思想与“中”的规律,作者在编码时用算法定义了参数生成规则,使得声音在变幻时既不会偏离原型太远,又不会过于死板地平均铺开,符合中国审美中的“乱中有序,随性而自然”。这种审美不仅体现在创作中,中国民族乐器也建立在这个思想之上。笙的泛音成分并不完全符合十二平均律的规则,而是更加符合中国传统律制,如果直接按照十二平均律的方式调制音高会破坏乐器原有的和谐。虽然中国文化强调和而不同,但脱离了框架的“合”有违“以和为贵”的思想。为了解决这一问题,作者编写了一个中国传统律制的算法,使音高在调制时按照中国传统律制进行变化,消除因律制不同所带来的不和谐。

3.5 编码语言与中华文化之间的隔阂

尽管以上的两种编程思想在我们的作品设计中已经跟中华文化得到了良好的融合与渗透,但这并不意味着使用这些编程语言能够完美创作出一部完全符合中华文化体系的作品。中华文化是生活在中国地区的中国人民近5000 年来的生产生活经验所浓缩出来的一套高度抽象化的评价体系,它从本质上不同于西方文化中的征服与强权,而是通过协调各个宗族势力之间的关系,维系一个和平与公平的社会,让人民可以安心从事物质生产,所以中文文字是不可分割的,每一个字都有它单独的含义,不同于英语单词可拆分的词根与词缀,也不可以被缩写。正因为如此,使用基于英语开发的编程语言创作从语言方面就已经偏离了中华文化,所创作的音乐也只是带有中华文化元素的西方电子音乐,并不符合中国传统的审美。不过从另一个角度来思考,带有中华文化元素的西方电子音乐又为何不是一种发展与传承方向呢?把中国人的理念、中国人的思想、中国人的故事用其他方式讲出来,为我们的观众寻找更好的表达方式,而不是单一要求观众遵守我们的传统,让全世界更多的人更容易去接受和理解我们的作品。

4 本土化的编码教育

《幻翼》和《春度玉门》两部作品是近些年“编码之夜”系列活动中具有代表性的两部作品,体现了“和”与“合”的中国理念在电子音乐创作中的结合,并且分别入选了NYCEMF 2020 和NYCEMF 2019,ICMC 2019。实际上“编码之夜”产出的作品远远不止这两部,2015 年后,参与研究音乐编程语言的研究者越来越多,其中有不少人是专业的中国民族乐器演奏者,他们的加入为“编码之夜”提供了专业的帮助与指导。为强化中国文化在创作中的核心地位,培养舞台创作的思维方式,提升创作经验,加强交互音乐思想在作品创作中的渗透,“编码之夜”开始了针对中国民族乐器创作的研究与实验。

在2015 年至2021 年期间,“编码之夜”创作出了至少8 部结合中国民族乐器的电子音乐作品,多数作品在国内外专业学术活动中展演,表演形式上结合笙、古筝、竹笛,内容上取材于中国历史、传说、自然景观、山水文化等。在创作指导上,“编码之夜”始终坚持引导学生了解中国历史,从历史中寻找灵感,从民族文化中获得启发。把“和而不同”的原则作为创作的基础,把“以和为贵”的思想贯穿创作全程,鼓励在创作中思考中国传统文化中“中道”“中庸”的审美原则。

在探索中国民族乐器在音乐编程创作和实验的过程中,“编码之夜”一直坚持由教师引导学生团队进行研究,在团队中始终遵守着以下三个思想:师者,传道、授业、解惑也;为了让学生能够深度投入作品创作与文化传承中,教师在团队中的作用更多是在引导与答疑,而不是以命令的方式影响研究方向,充分保障了学生在研究过程中的自我学习与自我管理,训练学生独立研究与计划任务的能力。三人行必有我师焉;团队间的合作是推动研究团队向上的主要推力,团队合作与团队间的相互学习可以弥补每个成员各自的不足,开拓个人眼界,增强团队合作的创造力。青,取之于蓝而青于蓝,冰,水为之而寒于水;一个有创造力的团队是实现中华文化与音乐编程结合的重要条件,这种创造力不是个别成员可以形成的,它来自一批又一批成员交流与传帮带所带来的传承与总结提炼。新成员在老成员的带领下可以更快学到适合他们的方法,从而将方法专业化、系统化,同时加强团队内部的分工合作。

随着专业的发展和创作需求,为了能够让学生学习面向对象的音乐研究与创作工具,笔者开始进行SuperCollier 语言的研究与应用,但在经过几年的尝试之后,由于川音电子音乐系学生计算机基础相对薄弱,在理解面向对象的原理上有较多困难,研究和推广受到较大影响[7]。为了让更多学生能够接受面向对象的思想和音乐创作方式,2015 年起,在进行SuperCollider 的研究过程中,接触到Sam Aaron 及社区开发的Sonic Pi 语言,该语言基于SuperCollider,利用Ruby 语言进行了语法的优化,在简化基本语法、降低学习门槛的同时,又能保证面向对象语言的特征和音乐设计的专业性,经过小范围学生的教学与创作实践,证明该语言非常适合川音电子音乐系学生在面向对象音乐编程语言学习上的需求,在其后的几年中,经过全系本科生的学习,先后创作出一批优秀的电子音乐作品,在国际国内引起较多关注与影响。在服务于本系教学研究的同时,在笔者开设的全院选修课中,也给所有专业的学生讲授Sonic Pi 的学习与创作,使得很多非音乐专业但对音乐感兴趣的学生也能够通过较短时间的学习,掌握基本的语法和功能,运用该语言进行音乐研究和创作,吸引了更多其他专业的学生参与到电子音乐的研究和创作中来,促进了相关语言和学科在四川音乐学院,乃至中国西部地区的应用和推广。

经过十多年的发展,“编码之夜”已经培养出十多位青年电子音乐家,他们带着音乐编程技术走进各行各业,去往中国和世界的不同角落,在适应当地文化的过程中,将这种思想融入他们的创作中,并教授给他们的学生们,客观上促进了音乐编程技术更广泛地和中国文化结合在一起。

5 “编码之夜”未来的展望

“编码之夜”是杨万钧副教授带领学生们进行音乐编程创作实验的小型技术交流活动,旨在用活动促进中国文化与计算机音乐创作的结合,提高学生自学能力与策划能力,充实学生的舞台经验,同时在一定程度上推广音乐编程技术,吸引更多的工程师与音乐家加入其中。

“编码之夜”创立之初只是为了给研究者们提供一个可以交流的平台,当时并没有想到能够被广大观众所接受。但出乎意料的是,相关活动推出后,不仅获得了观众较高的评价,还吸引了一批专业表演艺术家和中国民族乐器表演艺术家的加盟,他们对新声音的追求和表演方式有着更专业的见解,还能站在表演的角度上提出宝贵的意见。

在将来,编码之夜将会集结更多的研究者,从多角度思考中国文化与电子音乐的结合方式,探索更多新的创作方式,综合多媒体与新媒体的概念,创作更多基于中国文化的作品。发挥众人之所长,弥补发展之不足,共同探索音乐的新边界。

6 结束语

通过“编码之夜”活动,既促进了音乐编程语言的教学活动,提高学生的学习兴趣,让学生能够有机会尝试不同的创作方式,同时更加直观地了解音乐编程语言能够实现的创作手法和作品形式。在“编码之夜”不同主题的创作中,教师和学生能够思考如何更好地将民族文化精华与新的创作技术和表现形式相结合,通过作品的创作与研究找到更好的结合点,促进民族文化的新发展与推广,让世界看到符合时代特点的中国文化与音乐。“编码之夜”系列活动的推广,使更多作曲家和研究者了解电子音乐创作的不同形式,并且为结合民族文化进行新音乐创作找到合理的范式。

综上所述,“编码之夜”系列活动在当前的历史条件下,为中国乃至东亚地区电子音乐的发展以及民族文化的融合起到了良好的促进作用。

猜你喜欢
编程技术电子音乐编程语言
浅谈电子音乐在电影配乐中的体现与运用
压力-体积转换在CFC编程语言中的实现解析
复杂零件的数控加工工艺及编程技术分析
Java编程语言的特点与应用
电子音乐视觉化分析的多元理论与视角
浅谈不同编程语言对计算机软件开发的影响
基于计算机软件工程的数据库编程技术
C语言编程技术的分析研究
电子音乐在舞台艺术中交互思维模式的应用
面向对象Web开发编程语言的的评估方法