基于勋伯格十二音体系的作曲算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0引言

进入21世纪,计算机成为了先进的音乐创造工具。人们运用计算机可以对音乐进行创作、演奏、录制、欣赏等,计算机对音乐已经产生了广泛而深刻的影响。计算机作曲是计算机最为人所知的主题之一,计算机作曲,或称自动作曲,是计算

机模仿人脑进行的一种创造活动,以使人(或作曲家)在利用计算进行音乐创作的介入程度达到最小的研究[1]。20世纪50年代初,Iannis Xenakis 就利用随机过程手工(不用计算机)生成音乐片段,那时,数字计算机已经存在,它们开始被作为音乐创作过程中的工具而使用。最先完全由计算机生成的音乐作品的是由Lejaren Hiller 在1956年出版的弦乐四重奏Illiac 组曲[1]。另外由著名的算法作曲家,音乐教授David Cope 设计和开发的作曲程序能够继承已故作曲家的风格,并创作出同样风格的音乐作品[2]

。目前计算机作曲已经取得一些进展计算机作曲、随机作曲、逻辑作曲、智能作曲、计算机辅助作曲等[3-5]。

音乐创作的形式化技术除了被计算机专家使用外,古往今来的音乐家们也一直在使用,比如,天才作曲家莫扎特创作了一套被后世称之为“莫扎特的音乐骰子游戏”的随机乐曲生成系统。进入20世纪以来,勋伯格在继承前人成果的基础上,引入了音列技术,也就是十二音作曲技法,而本文试图以勋伯格十二音体系[6-7]的作曲理念为基础来实行一种新的计算机作曲的算法实现。这种算法主要是对通过随机序列、魔方阵和

图像阵列3方面所提取的12个数据,将这些数据先进行一些复杂的数学运算后,依靠计算机算法将这12个数据音乐化,进行重奏,扩展变奏等,生成一个完整MIDI 文件后,输出这个MIDI 文件从而完成一首完整的音乐。这正是感性与理性相结合的产物,是音乐创作思想与技法上的进步。

1十二音作曲理论

十二音音乐的基本单位是“音列”,它由12个半音音阶中

选出的一列音符组成。在这个音列中,每一个音只与同它邻近的音联系;这构成了一个“型”。在同一个型的音列中,任何一音在本序列其它音全部出现之前不能重复。这避免了个别音的特殊地位,从而瓦解了调性的感觉。

(1)在一个八度之内,互为半音关系的12个音同等重要。传统的大调、小调音阶被完全放弃,而运用“半音阶”,也就无所谓“调性”了。

(2)这12个音符,可以按照任意顺序排成一个序列,但不能存在重复现象。

(3)一个序列进行完毕之后,下一个序列不是对上一个序列的简单重复,而是通过复杂而严格的顺序原则再次出现。

(4)和声用音也依照上述排列原则。传统的“三和弦”被彻底摒弃。

“十二音列体系”不仅在构成方面复杂、理解起来晦涩,而且对传统的记谱法提出了挑战。传统的五线谱都是以乐

收稿日期:2010-01-25;修订日期:2010-03-30。

开发与应用

曲所在的“本调”为基础的,这样就避免了繁杂的升降记号。但“十二音列体系”是无调性的,它无论以12种调性中的哪一种调作为本调,都无法避免经常使用“升半音记号”、“降半音记号”和“还原记号”。这种音乐的优劣完全取决于作曲者的水平。

2十二音作曲理论的计算机实现

在MATLAB中,本文使用了MIDI Toolbox[8]来处理MIDI 文件的输入与输出。MIDI Toolbox工具箱使MATLAB具有了分析和编辑MIDI的功能。MIDI Toolbox工具箱除了简单的操作和过滤功能,还包含认知启发分析技术,适合视情况而定

的音乐分析、处理等。

本文的作曲算法是基于12音作曲理论的。而12音作曲体系中所需要的由12个半音都处于平等的地位,一个音出现以后,其它11个音尚未出现之前不能重复使用,以免形成某个音的中心。本文从随机序列,魔方阵和图像3方面来提取信息。

2.1以随机序列为主题句的计算机实现

本算法是先用计算机生成一个1至12的一个随机序列,然后将这1至12这12个数字映射到一个八度中的12个音,这样就能产生一段由12个音组成的音乐片段,遂将这12个音加以随机的重奏、变奏扩展,使之成为一首完整的音乐。

本算法的具体实现流程为:

(1)由计算机生成一个1至12的随机序列,作为这首音乐的主题。

(2)对这12个音的序列进行重奏。重奏的时候以一个八度为单位,可随机的升高或者降低2个八度。整个重奏的部分将主题句以不同的方式来重奏4次。

(3)对主题句进行变奏。

(4)完成对主题句的一系列变奏后,重新回到主题句,演奏主题句。

2.2以魔方阵为主题句的计算机实现

接下来,本文又对主题句的来源问题进行了研究,上面采用的是随机序列,结果发现,利用魔方阵,将魔方阵的数据进行处理后能产生出更加具有规律性的音乐。

由于魔方阵其横、竖、斜3个方向上的数字相加以后就是一个常数,所以魔方阵其本身就具有一定的音乐性,所以可以用魔方阵加以处理后的数据来作为主题句。

本文采用对魔方阵内的数据除12取余,由此得到的数字徘徊在0到11之间,然后从头开始向后遍历读取数据,如果遇到和前面重复的数据就继续往后遍历,直到取到12个0到11之间不重复的数字为止。最后以读取到的12个音作为主题句。经过上述的处理后,原本呆板的魔方阵显得活灵活现,非常具有音乐性。此算法的流程图参见图1。

2.3以图像为主题句的计算机实现

图像的数据同样具有内在固有的音乐性。图画是美丽的,那美丽的图画是能与音乐结合起来呢?

本文通过MATLAB读取一个图像,形成一个三维矩阵。将其变成一维矩阵后,进行除12取余,由此得到0到11这12个数的一个序列。再将这些数加上60,遂定义了音高。由于12音体系是由12个不同的数组成的,因此将这些数据进行处理,使其满足12音的要求后,最终形成音乐。

本算法的具体实现流程为:

(1)定义一个具有12个数的一维数组;

(2)任取图像序列中的某个数作为起点;

(3)将这个数后面12个不重复的数取出,放入数组中;

(4)输出12个互不相同的数;

(5)用12音体系的编译方法将其转换成音乐

3实验与结果分析

3.1十二音作品的算法生成过程

3.1.1以随机序列为主题句的实验

首先,在MATLAB中用randperm(12)函数产生一个1-12的随机序列,如:

121836921157104

为了让它满足MIDI的要求,将其移至中音区,所以要将所有的数字加上59,变成从60到72的数字,代表的是中音区的do至si中的各个音。以下是加上59后的数据:716067626568617064666963

其次,对前面产生的这12个音进行重奏。先新生成2个音轨,分别代表高音和低音,然后将前面产生的这个音轨中的数据分别复制到这2个新音轨当中,最后随机的提升(对于高音)和降低(对于低音)0-2个八度。

以下是高音音轨中的数据:

71606762656861706466696383 7279747780738276788175837279 7477807382767881757160676265 6861706466696371606762656861 7064666963716067626568617064 666963

以下是低音轨中的数据:

59485550535649585254575147 3643384144374640424539473643 3841443746404245394736433841 4437464042453959485550535649 5852545751352431262932253428 303327

接着,用MIDItoolbox中的creatnmat函数把这个序列创建成一个标准的MIDI形式,一部分数据如下:

0.00000.83331711270.00.5

图1使用魔方阵作为主题句流程

产生一个12阶魔方阵,把它除以12取余

将2维的魔方阵转为1维

判断数据是否唯一

输出这12个不同的数,然后

进行和前面相同的处理

Y

N

相关文档
最新文档