电子表格音乐合成器 参考论文
电子合成器是一种音乐设备,它能生成简单的振荡波,然后通过叠加、过滤等操作对波的形态进行修改,从而创造出某种独特的声音效果,合成器有硬件、软件之分,在计算机里运行的合成器称为软件合成器。至于电子表格,是用来存储、统计、分析数据的,常用的有MS Excel或WPS表格。电子合成器和电子表格看似风马牛不相及,而这篇文章要讲的却是怎么拿电子表格代替电子合成器来使用,虽然说任务有点奇怪,但涉及的操作无非是公式自动填充、插入图表、复制、粘贴等,整个过程实施一遍后,计算机存储、编辑、播放声音的最基本原理也就很清晰了。
● 生成不同的波形
电子合成器中最常用的波形有方波、三角波、锯齿波、正弦波等,形状如图1所示。
图1中各波形的横轴“t”均为时间,纵轴“A”为幅度。用电子表格生成这些波形很容易,以锯齿波为例,电子表格的第一列中,用拖曳功能自动填充从0开始逐渐增大的整数,可以填充几百到数千行,然后在第二列写入公式“=MOD(A1,200)”,再利用拖曳功能自动填充几百到数千行。选中整个第二列后插入图表,选折线图,就可以看到若干锯齿波了(如图2)。公式中的“200”是波的振动幅度,如果声波的量化级数为8位,那么幅度不应该大于2的8次方减1,即255。
锯齿波的特点是先以一定斜率上升,然后陡然落下。若将公式“=MOD(A1,200)”换成其他公式,就可以生成三角波和方波,具体公式怎么写,就留给大家思考了。
生成正弦波的公式为“=SIN(A1*3.14/180)*120+120”,略复杂些,因为三角函数的计算结果小于1并且有负数,所以先乘上120再加上120来控制振动的幅度,注意在“设置单元格格式”中,将小数位数设置为0(如图3)。
● 增波合成
增波合成指的是将不同形状的波叠加起来,使得声波的形态发生变化,从而改变音色。这里举一个简单的例子,将刚才的正弦波频率设为原来的三倍,再将这个波与原来的波叠加起来,电子表格中改变频率的操作也很简单,只要另增一列,使自动填充的数字由每次加1改为每次加3即可(如下页图4)。
然后,将频率变化后的波与原始的波叠加,所做的数学运算其实就是取两个波的振幅的平均值,用自动填充功能填充完取平均数的公式后,就可得到合成后的波(如下页图5)。
这个波与原有的波有很大的不同,怎么把这个波播放出来以观察音色的变化呢?这就需要将电子表格中的数据以二进制形式存储到计算机中。
● 生成波形数据文件
生成波形数据文件需要两个步骤:首先,将十进制的数据转为十六进制(实际上是用相对容易表达的十六进制来表示二进制),在电子表格中使用“DEC2HEX”函数就可以轻松实现(如图6)。其次,以二进制形式存储电子表格中的波形数据,最简单的方法是使用在线的二进制文件编辑器(网址为https://hexed.it)。
选中电子表格中存储有十六进制数据的那一列,直接粘贴到在线编辑器中,注意要选中“Hexadecimial Values”(如图7)。为了使声波能持续一段时间,可以反复多次粘贴操作。粘贴完成后,不用进行任何编辑操作,直接点“Export”,给文件命名,将文件保存在硬盘中就可以了。保存好的文件称为音频裸数据,也就是没有任何格式说明的音频数据,可以利用音频编辑工具,如Audacity、Cool Edit等软件播放这段声音,或将其转为其他格式音频文件。以Audacity為例,选中菜单“文件—导入—原始数据”,然后选中“Unsigned 8 bit PCM”(由于先前波的振动幅度都在0到255之间,所以量化极数为8bit)以及“单声道”,就可以听到先前用电子表格编辑的声音了,原始的正弦波播放出来是纯净的低音,在叠加后有了毛毛的类似管乐的效果。参考论文
● 挑战任务
最后,列一些值得挑战的任务供有兴趣的读者进行实验,难度由低到高:
☆用电子表格生成一段噪音并播放。
☆用电子表格生成一段逐渐从小到大的方波数据并播放。
☆用电子表格生成“DoSoDoSoDoSo”简单鸣笛声的波形数据并播放,注意音符“So”的频率约为“Do”的1.5倍,为了让声音持续一段时间,需要在电子表格中自动填充数千行的数据,当然也有偷懒的办法,就是在播放声音时调低导入数据的采样频率。