论文部分内容阅读
有一种理论认为,自宇宙诞生以来,所有的音乐作品都已存在,人们要做的只是发现那些好的作品。设想一下,每一首音乐作品其实都是一个符号的序列,如果让一台超级计算机一刻不停、永不厌倦地对所有音符的音级、持续时间以及其他各种参数进行排列组合,那么理论上说,它迟早能创作出或者说重新谱出贝多芬的《命运》。
然而,理想和现实之间距离遥远,这里先迈出很小的一步,下面展示的是一个非常简单的例子。
第一步:用程序设计语言编写一个随机数发生器。例如,Print Int(Rnd(1) * 10),反复执行该语句以得到一串随机数。笔者在Visual Basic环境中,未使用Randomize变换随机序列时,获得的数字序列是7、5、5、2、3、7、0、7、8、7、0。
第二步:将数字转换为音级。例如,0到4分别对应Do、Re、Mi、So、La,5到9也分别对应Do、Re、Mi、So、La,这样就可以把7、5、5、2、3、7、0、7、8、7、0转换为mi、do、do、mi、so、mi、do、mi、so、mi、do。当然,假如读者对调式有点了解,转换规则也可以是其他的样子。
第三步:将以上音级序列写成五线谱。为了使乐曲织体更丰富些,可以将该序列在高音部重复两次,然后将音符序列的时值延长一倍作为低音部,如下图所示。
借助MusicXML,以上步骤中的第二步和第三步也可以做成软件自动转换和导出,以实现“自动谱曲”。假如这本杂志会发出声音,并为旋律配上合成器弦乐音色(SynthStrings)的话,那么这段曲子就颇有些氛围音乐的味道了。
自动作曲就这么简单吗?是,也不是。虽然可以用随机发生器写音乐,但几乎没办法写出好听的音乐。假设有一台超级计算机时时刻刻都在做着随机生成乐谱的工作,那么即便能凑巧写出一部《命运》交响乐,这部交响乐的命运也必然是淹没在比宇宙还要浩瀚的庸俗作品之中。回到本文开始的问题,自宇宙诞生以来,所有的音乐作品都已存在吗?这个问题的答案,取决于人们怎么看待宇宙本身,它自己究竟是一个充满着庸俗作品的大仓库,还是一整部发人深思的《命运》交响曲呢?也许两者都不是。
想挑战吗?
1.想用不确定的随机序列把“音乐”做得更好听些,要有超越专业的勇气。例如,一边是调式、调性、音程之类的乐理知识,另一边是Markov链、Stochastic过程等数学知识,当然,还要懂得程序设计,但这并不妨碍普通用户将已有的研究成果直接拿来使用,不妨找几个现成的随机旋律生成软件来玩玩音乐创作吧!
2.不确定常常出人意料地隐藏在确定之中,素数在自然数轴上的间隔、圆周率的每一位后续小数数字、Fibonacci兔子序列…
然而,理想和现实之间距离遥远,这里先迈出很小的一步,下面展示的是一个非常简单的例子。
第一步:用程序设计语言编写一个随机数发生器。例如,Print Int(Rnd(1) * 10),反复执行该语句以得到一串随机数。笔者在Visual Basic环境中,未使用Randomize变换随机序列时,获得的数字序列是7、5、5、2、3、7、0、7、8、7、0。
第二步:将数字转换为音级。例如,0到4分别对应Do、Re、Mi、So、La,5到9也分别对应Do、Re、Mi、So、La,这样就可以把7、5、5、2、3、7、0、7、8、7、0转换为mi、do、do、mi、so、mi、do、mi、so、mi、do。当然,假如读者对调式有点了解,转换规则也可以是其他的样子。
第三步:将以上音级序列写成五线谱。为了使乐曲织体更丰富些,可以将该序列在高音部重复两次,然后将音符序列的时值延长一倍作为低音部,如下图所示。
借助MusicXML,以上步骤中的第二步和第三步也可以做成软件自动转换和导出,以实现“自动谱曲”。假如这本杂志会发出声音,并为旋律配上合成器弦乐音色(SynthStrings)的话,那么这段曲子就颇有些氛围音乐的味道了。
自动作曲就这么简单吗?是,也不是。虽然可以用随机发生器写音乐,但几乎没办法写出好听的音乐。假设有一台超级计算机时时刻刻都在做着随机生成乐谱的工作,那么即便能凑巧写出一部《命运》交响乐,这部交响乐的命运也必然是淹没在比宇宙还要浩瀚的庸俗作品之中。回到本文开始的问题,自宇宙诞生以来,所有的音乐作品都已存在吗?这个问题的答案,取决于人们怎么看待宇宙本身,它自己究竟是一个充满着庸俗作品的大仓库,还是一整部发人深思的《命运》交响曲呢?也许两者都不是。
想挑战吗?
1.想用不确定的随机序列把“音乐”做得更好听些,要有超越专业的勇气。例如,一边是调式、调性、音程之类的乐理知识,另一边是Markov链、Stochastic过程等数学知识,当然,还要懂得程序设计,但这并不妨碍普通用户将已有的研究成果直接拿来使用,不妨找几个现成的随机旋律生成软件来玩玩音乐创作吧!
2.不确定常常出人意料地隐藏在确定之中,素数在自然数轴上的间隔、圆周率的每一位后续小数数字、Fibonacci兔子序列…