具体实施方式
在图1中,号码1相应于电子手风琴的总体,它的外观非常相似于普通手风琴:它有两个键盘2,它们分别由演奏用的若干键/按钮3以及两组选择器4构成,每组选择器4包括若干用来修饰声音特色的音栓5。在电子手风琴1的内部装有风箱,它的构造与普通手风琴的风箱相同;风箱向机电压力传感器7(它基本上是通用传感器)抽吸空气,传感器7能实时产生信号A,这种信号以标准方式编码,并正比于由风箱6抽吸的空气压力P。
每个键/按钮3与能产生相应T信号的相应传感器8相连,这种信号以标准方式编码,并表示这个键/按钮的位置;根据两个不同的可供选择的实施例,每个T信号既可以是只指示键/按钮3压下/松开的二进制信号,也可以是同时指示相应的键/按钮3的动态压下/松开的更复杂的信号。
键/按钮3的压下/松开的动态特性通常被定义压下/松开速度,即压下/松开动作的整个时间持续期。
每个音栓5与能产生相应信号R的相应传感器9相连,这种信号被以标准方式编码,并借助于二进制信号表示精密音栓5的位置。
如在图2中所示,传感器7、传感器8和传感器9与控制单元10相连,控制单元10利用MIDI(电子乐器数字化接口)接口11实时地向声模块12发送A,T和R信号,因此这种模块有它自己的MIDI接口13;声模块12能产生有特色的手风琴电声,它装在电子手风琴1的内部。根据这里未示出的不同实施例,声模块12位于电子手风琴1的外部,并通过它自己的MIDI接口13与电子手风琴1相连;在这种情况下,声模块12也能从电子手风琴1以外的其他来源接收A,T和R信号;例如,A信号可能来自踏板,T信号可能来自标准键盘,R信号可能来自共用的选择器。显然,声模块12不但有MIDI接口13,也有控制声放大器(未示)的标准的、未放大的音频输出14。
如果电子手风琴1是普通手风琴,在键盘2上的每个键/按钮3就能打开一个阀,这个阀将风箱6抽吸的空气向若干舌簧运送,这些舌簧全部与同一阀因而与同一键/按钮3相连;所以,不同膜片属于同一键/按钮,它们实际上一起产生振动,以便产生与键/按钮3有关联的音调。如果电子手风琴1是普通手风琴的话,选择器4的音栓5就能改变声音特色,因此抑制或允许某些舌簧与某些膜片振动关联。
声模块12包括存储器15,处理器16和一系列声发生器17,声发生器17能被处理器16单独控制,从而按照由这个处理器16提供的规范发声音。在存储器15中,存储一系列声音,它们是对普通手风琴的各种部件产生声音取样而得的,特别是,在存储器15中,存储有由每个单独的舌簧在阀开和阀闭两种情况下振动所发出的特征声,还有每当每个单独的键/按钮3被松开,和随之而来的相应阀被阻塞所引起的全部噪声。另外,在存储器15中,存储有一个表格,用来给每个键/按钮3(它是与普通手风琴上的键/按钮3有关的)分配所有那些舌簧;借助于这个表格,处理器16能快速选择与每个单独的键/按钮3有关的特征舌簧声。
当演奏时,使用者选择选择器4中的音栓5的位置,压下和松开键盘2中的键/按钮3,并操作风箱6;由于这些动作,控制单元10实时地从传感器7,8和9接收到相应信号A,T和R的时间变化。信号A,T和R通过MIDI接口11和13从控制单元10传送到声模块12。
根据音栓5的位置所产生的信号R,声模块中的处理器16设置一些控制变量值VC,它们被存储在存储器15中并被使用,按照前面已经解释的详细的流程,以便确定由声模块12产生的声的某些特征。
根据A和T信号,声模块12中的处理器16控制声发生器17,以便重现电子手风琴1的声音。特别是,处理器16检测出现在T信号中的所有变化,也就是检测所有由使用者给予键盘2中的键/按钮3的命令(两种类型,当压下键/按钮3时,以及当松开键/按钮3时),以便使一个或多个声发生器17根据某些参数启动或者断开,这些参数不仅依赖于T信号,而且也依赖于A信号以及VC控制变量(这些也依赖于R信号)。
当使用者压下键盘2中的一个键/按钮3时,在有关T信号中产生相应的变化;在有关T信号中这个变化被处理器16检测到,它从存储器15获得那些舌簧(它们与在普通手风琴中压下的键/按钮3是有关联的)在阀开时的特征声,根据VC控制变量(即音栓5的位置)的值排除不活动的舌簧,并驱动与每个正在操作的舌簧相应的声发生器17,以便使声发生器17重现这个舌簧的特征声。这样,通过调整与被压下的键/按钮3组合的舌簧的全部特征声,由压下一个键/按钮3产生的声音被重现,那些特征声是单独产生的。显然,因操作阀打开时的舌簧所产生的特征声的幅度(音量)不是恒定的,它与涉及风箱抽吸的空气压力的P值有关,P值取决于存储在存储器15中并通过实验方法获得的双射函数。
当键盘2中的一个键/按钮3被松开时,在有关T信号中产生了相应的变化;在有关T信号中的这个变化被处理器16检测到,按照前面解释的详细流程,它切断声发生器17,而它们正重现那些舌簧(它们与在普通手风琴中松开的键/按钮3是有关联的)的特征声。
在重现普通手风琴的声音时,为获得可能的最高保真水平,声模块12中的处理器16考虑实际舌簧会有机械惯性,这个机械惯性要求由风箱6抽吸的空气有一定的压力值P,以便使舌簧振动,这个机械惯性还在键/按钮3被压下/松开的瞬时使相应的舌簧开始/停止振动的瞬时之间引起某些延迟。在组合由单个舌簧的振动产生的特征声时,一些涉及这个舌簧惯性的数据被存储在存储器15;特别是,这些数据就是:涉及风箱6抽吸的空气的压力P的值Pon这是舌簧开始振动时的值,涉及风箱6抽吸的空气的压力P的值Poff,这是舌簧停止振动时的值(Pon值通常高于Poff值),和上升/下降声音斜坡(ramp)S的参数,其范围从0到极小值和反向值。
当然,每个舌簧的特征是涉及它自己的惯性的数据,它们通常是相互不同的。
每个斜坡S正是归一化为0和1之间的函数,它被用作由声发生器17的音量的乘法器,从而实现由这个声发生器17发生的声音的逐步提升/下降。每个斜坡S最好是一阶指数函数,由它的时间常数确定;另外,每个斜坡S是对称的,即它能在上升和下降两者中使用同一时间常数,或者是非对称的,即上升用的时间常数和下降用的时间常数不同。
如图3中所示,在瞬时t0,使用者压下键盘2上的键/按钮3,所以在有关的T信号中随之发生相应的变化;在有关的T信号中的这种变化被处理器16检测到,它从存储器15获得阀打开时的相应声音,相应的Pon和Poff值,和相应的斜坡S的所有特征,所有这些是每个与普通手风琴中被按压的键/按钮3连接的舌簧所特有的(而未操作的阀则被忽略对这些给予VC控制变量的值的依赖关系)。
对每个与被按压的键/按钮3连接的舌簧,和键/按钮3保持压下的整个时间周期,处理器16操作相应的声发生器17,以便产生那个舌簧在阀打开时的特征声;声发生器17的产生音量被归一化为0至1之间的信号调制(图3中以符号N指示),只要实际压力P低于相应的Pon值,这个信号就保持0值,如果实际压力P变成高于相应的Pon值(瞬时t1),那么按有关的上升斜坡S逐渐上升至1值,只要实际压力P超过相应的Poff值,它就保持为1值,如果实际压力P变成低于相应的Poff值(瞬时t3),它就按有关的下降斜坡S逐渐下降为0值。
根据优选实施例,涉及每个舌簧的上升斜坡S被不断地根据涉及风箱6抽吸的空气的实际压力值P(即根据P值和相应的Pon和/或Poff值之间的比率)和根据与那个舌簧连接的键/按钮3的最近一次松开后经过的时间而修正;特别是,上升斜坡S的持续时间可以这样的方法减少,即直接根据值P,反之,根据键/按钮3的最近一次松开后经过的时间。通过上述动作,模拟的是这种事实,即如果由风箱抽吸的空气压力高,并且如果那个舌簧仍在运动,普通手风琴中的舌簧就会在较短时间内开始振动。另一种方法,替代键/按钮3的最近一次松开后经过的时间,键/按钮3的压力强度也能使用,即键/按钮3已被压入某个瞬时窗的次数。
在传统的手风琴中,当键/按钮被松开相应的阀被关闭时,与那个阀有关联的每个舌簧并不立即停止振动,这是由于它自己的机械惯性;另外,当阀被阻塞时,振动着的舌簧已不再给出任何像它的阀开着时那样和谐的声音,而是发射出一种金属撞击似的和部分失真的声音,它的幅度(音量)逐渐减弱以至消失。舌簧越大,它的金属撞击似的声音越响;这种金属撞击音的幅度和持续时间取决于阀关闭瞬时的空气压力值和舌簧因阀打开而振动的时间间隔两者。
当键盘2中的一个键/按钮3被松开时,相应的变化在T信号中产生;在有关的T信号中的这个变化被处理器16检测到,它切断声发生器17,而这些声发生器正在重现可能与普通手风琴中的这个键/按钮3连接的舌簧的特征声。为切断当前正在重现有关舌簧在阀开时的特征声的每个声发生器17,处理器16从存储器15获得由同一相应舌簧在阀阻塞时的特征声,并驱动声发生器17,使它产生阀阻塞时的那种特征声,其幅度和持续时间取取决于松开键/按钮3时风箱6中的空气压力瞬时值,以及键/按钮3已保持被压下的时间间隔;特别是,阀关闭时的特征声被产生,其音量被指数斜坡调制而渐渐消失。
在传统的手风琴中,当一个键被松开时,有关的阀随之被关闭而产生和谐的关闭噪声,它能被有经验的听者的耳朵清楚地觉察,尽管它是相当的低。
当键盘2中的一个键/按钮3被松开时,随之而来的变化在有关的T信号中产生;有关T信号中的这种变化被处理器16检测到,它获得被松开的键/按钮3的号码,以及松开动态特性(那就是松开速度)两者。
为了重现阀的关闭噪声,当键/按钮3被松开时,处理器16从存储器15获得有关阀的特征关闭声,并操作声发生器17,从而重现这种关闭声,其幅度(即音量)和持续时间取决于松开动态特性;特别是,关闭声的由幅度持续时间随松开速度的增加而增加。根据优选的实施例,每个关闭声以这样的幅度即音量被重现,即它总是在一个时间周期内从最大值按指数斜坡减小至零值(这时相应的声发生器17被切断)。
为更好地模拟普通于手风琴的行为,在规定的时间间隔内,处理器16获得与风箱6抽吸的空气有关的压力值P,并将这个值存储在存储器15中的预定阈值Ps比较;当值P超过值Ps时,因每次操作声发生器17重现的相应舌簧的振动所引起的声音被改变,即用存储在存储器15中的相应参量I减少这个声音的强度,这个参量是每个舌簧所特有的,并且或者是常数或者是变量,直接取决于压力P的值。每个参量I是相应舌簧的特征,并且通常是由舌簧引起的声音越低,参量值越高(对最高的音调,参量值甚至可以是零)。显然,当P值变得小于Ps时,强度不再被降低,因每次操作声发生器17重现的相应舌簧的振动所引起的声音被给回其原始强度。当音量增加时,即当由风箱抽吸的空气的压力P增加时,通过每个操作的舌簧的参量I使强度减小,引起更丰富的声音,这是由于可能的节拍或不调谐的效果。
普通手风琴能被调音,以获得所谓“缪赛特笛(musette)”音调,它要求对同一膜片中的舌簧之间的差异作某些轻微的调整,从而引起在其声音中出现节拍,激发声音的“颤音”效果。当使用者在电子手风琴1中的相应音栓5上动作,以选择“缪赛特笛”音调时,处理器16改变存储器15中的有关控制变量VC的值,以便起动“缪赛特笛”功能;这个功能稍微改变作为某些舌簧的特征的一些声音的调子,当这些特征声被从存储器15中检索到,而将要被相应的一些声发生器17重现时,以便对差异调整进行模拟。每个舌簧的特征声被相应的参量修正,这些参量通常是每个舌簧所特有的,它们的值由使用者通过调节参量调节。
如上所述,很清楚,由声模块12产生的电子手风琴1的声音的特色在于两个方面,即音品差异,也就是说声音是由风箱6抽吸的空气压力形成的,以及清晰度,也就是说,声音的修正考虑了普通手风琴的全部特征。
由于这些特征,由声模块12产生的电子手风琴1的声音以高质量水平为特征,并能用于专业性演奏。