张昕怡
(武汉音乐学院 音乐学系,湖北 武汉 430060)
古老乐器如何与现代科技相结合,是当前音乐学理论研究的重要课题。曾侯乙编钟出土以后,研究编钟科技的学者和机构越来越多。作为最为知名的青铜乐器,曾侯乙编钟高达数吨的体量及其卓越的音乐性能,体现了古代中国高超的青铜铸造水平及娴熟的加工技艺,为声学、音律学、冶金技术和精密铸造技艺等学科的研究提供了方向[1]。曾侯乙编钟出土至今,一共奏响过3次,编钟的3次原钟演奏让全世界聆听到中国古代乐器的音律之美,在众多曾侯乙编钟的科学研究中,如何仿造曾侯乙编钟,实现曾侯乙编钟的现场演奏成为学者们关注的热点。为解决曾侯乙编钟仿制与演奏的问题,本文提出借助电子智能控制技术,选择STC89C51单片机嵌入式控制方法和Python编程软件,完成电子编钟演奏系统的设计与开发。
当前,为了实现曾侯乙编钟的现场演奏,众多文物学家、音乐学家、精密铸造科研人员都投入同比例复制编钟的研究之中,但要复制一套能够演奏的编钟,就要从材质到制作方式,都要严格按照原来的编钟去做,这不仅涉及精密铸造技术,也涉及更为复杂的编钟定音技术,曾侯乙编钟一钟双音的铸造技法对现代人而言依然难以轻易实现[2]。另外,按照曾侯乙编钟的演奏规范,编钟音乐曲目需要10~18位专业演奏人员协同作业,才能完成一套完整编钟乐器的完美演奏,这些限制直接导致了编钟演奏无法普及到非专业演出团体。如何让更多的音乐人能够轻松演奏编钟乐器,成为学界关切的焦点。
为了解决编钟演奏的难题,2017年2月,武汉音乐学院、湖北省博物馆与烟台豪特乐器有限公司联手,以仿制曾侯乙编钟为文化元素,设计制作了智能新编钟。智能新编钟的设计,解决了曾侯乙编钟需要多人协同演奏的问题,但是,由于智能编钟制作工艺和成本限制,钟体的铸造与调律依然制约编钟音乐的传播,智能新编钟依然无法满足音乐人随时随地演奏、民众随心所欲聆听编钟音乐的需求。
曾侯乙编钟作为敲打型乐器,其仿制的难点是编钟铸造和定音极为复杂,难以批量生产。为了解决编钟铸造和定音的难题,本文提出借助电子智能控制技术,让规模庞大的编钟转变成为电子编钟,进而借助键盘进行编钟演奏的设计理念。这样设计的电子编钟不仅可以轻松完成编钟曲谱的演奏,而且可以大批量生产与推广,实现编钟音乐的传播与普及。该设计理念主要包括3项核心内容:
(1)曾侯乙编钟音律的原音采集,这为电子编钟音乐演奏的发声提供基本的音源支持。
(2)电子编钟演奏键盘的设计,这一设计要参考编钟音源的特征,结合演奏人员的演奏习惯进行设计。
(3)电子编钟演奏控制元件的设计,为实现电子编钟的演奏控制提供技术支撑。
为了保证电子编钟音律的原生态,电子编钟的设计需要保持编钟音色的纯正性、音律的准确性和音域的全面性,同时也要具备乐器演奏的便捷性、制造的批量性等特征。
电子编钟是利用电子电路产生各种音阶的半音来推动扬声器演奏乐曲的电子乐器。电子编钟由琴键,优先编码器,程控半音音阶发生器,最高、高、中、低音阶组别选择器,低通滤波器,音量控制器,功率放大器和扬声器组成。琴键把乐曲音阶的半音送进编码器进行编码,以区别12个不同的半音。编码器输出到译码器译码,译码器可分别输出12个控制信号。这些控制信号对半音音阶发生器进行程控,最后音频信号通过功率放大器放大,推动扬声器产生乐曲,乐曲音符借助编钟原音采集获取。
电子编钟的设计参考现行电子琴或电钢琴的发声原理,按照技术流程,电子编钟设计主要包括以下关键步骤:
3.2.1 编钟音源采集
为了保证电子编钟音色的纯正性,首先需要完成曾侯乙编钟音律的采集,对64件编钟(曾侯乙编钟共有65座单体钟组成,其中64件具有音律属性,大镈钟没有音律属性)的每一件钟体的正音和侧音进行逐一采集编号,按照音律的高低和属性分布存储。编钟64座钟体音律的高质量采集是该设计的基础,只有保证音源的纯正,才能保证后续电子编钟发音合成的质量。
3.2.2 演奏键盘设计
根据编钟的音域设计演奏键盘,每个按键对应一个音符,并按照音高序列排列,构成电子编钟的演奏键盘。电子编钟的演奏键盘实际是一些开关,按下键盘的一只键就等于接通一只开关,扬声器就发出与该键对应的钟声。这样,按照一定的演奏技法和编钟曲谱,就可弹奏出优美的编钟之曲。
3.2.3 电子编钟的发声和控制元件设计
在编钟控制电子元件的设计中,可以使用PCM采集音源,将其数字化后存入ROM或FLASH,然后按下演奏键盘,CPU或DSP芯片接到指令后会发出ROM或FLASH里预先存储的钟声,这与现场敲击编钟乐器的音色完全一致。
另外,在电子编钟设计的过程中,键盘的演奏力度感应控制与处理也是影响电子编钟设计品质的关键。
根据编钟演奏的市场需求,电子编钟产品设计包括2种类型:
针对专业音乐演奏人员和音乐爱好者对传统乐器的需求,设计音域覆盖全面、音色准确、做工精良的专业演奏级电子编钟。该类产品需要满足音乐演奏人员和音乐爱好者专业演奏的市场需求,在设计和制造过程中,需要建立全面的技术工艺标准。无论产品外形设计、生产工艺控制,还是电子元件的加工与调试,音色、音准、音域的检验都需要由专业人员按照要求严格控制[3]。专业演奏级电子编钟产品研发的技术难点是曾侯乙编钟中64座钟体的音源采集,由于编钟敲击位置、角度、敲击方式和力度的不同,所采集到的音源都会有一定的差异,所以必须由专业的人员完成曾侯乙编钟音源的采集和录音处理工作[4]。
针对当前手机、平板等电子设备普及的情况,按照电子编钟设计的方法,借助网络编程设计电子编钟网络版演奏系统软件。软件分为PC端和移动端2种类型,网络用户下载安装后,可以借助平板、手机或者电脑触摸屏,完成电子编钟的演奏。网络版电子编钟演奏软件系统开发的技术难点主要集中在软件编码和软件系统的集成,为了保证电子编钟演奏软件系统的兼容性,在开发软件的选择上,选择功能强大、集成性高的主流开发工具Python作为系统开发软件。电子编钟演奏软件开发包括编钟音源数据库开发、编钟演奏控制的内核开发和软件外观界面的开发3部分,其中软件外观界面开发主要完成电子编钟演奏琴键的样式设计和弹奏控制的设计工作;数据库开发主要解决音频的存储与调用问题;内核开发主要是完成琴键演奏输入后乐谱音律的生成工作,解决编钟音源的集成、音高的协同控制、音响的调节和杂音的过滤等问题。
在专业演奏级电子编钟产品的设计中,可以选择STC89C51单片机完成。STC89C51是一种低功耗、高性能CMOS 8位微控制器。在电子编钟的设计中,STC89C51为电子编钟的嵌入式控制应用系统提供较为高效的解决方案[5]。
在网络版电子编钟演奏系统的设计中,为了完成网络版电子编钟的界面和音频控制,可以选择Python创建界面与按钮,并给每个按钮绑定播放音阶的函数,在此借助playsound库来实现相关功能。
fromplaysoundimportplaysound
playsound('bianzhong.wav')
上面代码完成了编钟音符的播放,但无法指定播放时长等功能,如果一个音阶时长8 s,必须要等上一个播放完毕才能播放下一个,这样输出的声音就不能连贯。为此,需要借助pygame实现音频播放的控制处理,配合time库可以音符播放时长,例如每个音阶只播放 1 s。编码如下:
frompygameimportmixer
pygame.mixer.music.play()
time.sleep(10)
pygame.mixer.music.stop()
按照以上控制流程,在两个音阶之间切换时会有一个爆音,于是可以使用fadeout(time)进行淡出,在指定时间内音量由初始值渐变为0,最后停止播放。当然也是使用mixer.Sound方法来播放编钟音符,且可以同时按下多个按键形成和声效果,编码如下:
frompygameimportmixer
mixer.Sound("mp3/bianzhong.wav").play()
另外,为了在电子编钟演奏过程中,能对演奏者按键的力度和时间进行自动化控制,需要系统实时监听系统键盘按下(press)与释放(release)的速度和延续的时长,借此智能化控制演奏的音节与音高。至此,网络版电子编钟控制编码的关键性问题可以得到解决。
Python作为面向对象编程语言,被广泛应用于人工智能等领域,在电子编钟的设计中,使用MIDI库开发电子编钟具有较强的适用性,是一个非常高效的音乐类软件编程工具。在电子编钟硬件设计上,选择STC89C51单片机完成电子编钟的嵌入式控制设计,可以实现编钟电子演奏的智能化控制,具有良好的实验效果和较强的可行性。本文运用音乐学原理、电子技术、智能技术等多个交叉学科知识,完成曾侯乙编钟的电子化设计,为我国编钟音乐的键盘化演奏设计提供了一条新的路径,具有一定的科学价值和实践参考意义。