具体实施方式
下面参照附图,说明本发明的第一实施方式。图1是表示本发明实施方式的电子乐器的概要的框图。如图1所示,电子乐器具有微计算机1、ROM(Read Only Memory)2、RAM(Random Access Memory)3、开关组4、接触检测电路5、键盘6、乐音发生电路7、波形ROM 8、D/A转换器(DAC)9、放大电路10以及扬声器11、12。微计算机1、ROM 2、RAM 3、接触检测电路5以及乐音发生电路7与数据总线13连接。
微计算机1控制整个电子乐器,从存储程序、数据的ROM 2中读出程序、数据,来执行程序。在程序的执行中生成的数据等被存储在作为工作区的RAM3中。开关组4配置在电子乐器的控制台面板上。微计算机1检测由演奏者进行的开关组4的操作。接触检测电路5在规定的定时对键盘6发送扫描信号,对配置在键盘6各键上的两个开关的接通进行响应,生成演奏操作数据(音高以及接触响应数据),并向微计算机1输出。在本实施方式中,键盘6有88个键,在各键上在其长度方向上配置有两个开关,通过按下键,首先接通第一开关,通过进一步按下键接通第二开关。
微计算机1根据通过操作开关组4指定的音色、以及包含从接触检测电路5输出的接触响应以及音高的演奏操作数据,控制乐音发生电路7,发生规定的乐音。乐音发生电路7从波形ROM 8中读出指定的音色的波形数据,生成遵照演奏操作数据的音高以及音量(速度)的乐音,向DAC 9输出。DAC 9把从乐音发生电路7输出的数字数据变换为模拟信号。模拟信号通过放大电路10从扬声器11、12发音。
图2是更详细表示本实施方式的乐音发生电路的框图。如图2所示,乐音发生电路7具有接口20、波形发生电路21、滤波电路22、乘法电路23、混频器24、第一包络线发生电路25、滤波系数计算电路26、第二包络线发生电路27。接口20、波形发生电路21、滤波电路22、混频器24、第一包络线发生电路25、滤波系数计算电路26以及第二包络线发生电路27与内部总线28连接。
接口20和图1所示的数据总线13连接,通过内部总线28向乐音发生电路7内的波形发生电路21、滤波电路22等运算单元写入设定数据等。波形发生电路21和波形ROM 8连接,从波形ROM 8的规定的地址读出PCM数据,生成与演奏操作数据中的音高对应的频率的乐音波形数据。
滤波系数计算电路26按照基于经由接口20从微计算机1给予的演奏操作信号的参数、和从第一包络线发生电路25输出的、随时间变化的第一包络线信号计算滤波系数。通过第一包络线信号,对其频率特性施加变化,滤波系数随时间的经过变化。滤波电路22遵照滤波系数对乐音波形数据施行滤波处理。
乘法器23把乐音波形数据和从第二包络线发生电路27输出的随时间变化的第二包络线信号相乘。由此,控制基于键盘6的开·关的乐音的上升、下降,以及基于接触响应数据的音量。此外,波形发生电路21、滤波电路22、第一包络线发生电路25、滤波系数计算电路26、乘法器23以及第二包络线发生电路27分时地进行最大同时发音数的处理,由此能够在键盘演奏中生成充分的通道数的乐音。混频器24把生成的最大同时发音数的通道的乐音分别以规定的加权进行累加,最终分配为左右两个通道的乐音。混频器24的输出被输出给DAC 9。
下面说明本发明的滤波电路22以及滤波系数计算电路26的概要。图3说明用于实现基于演奏强弱的声学钢琴的音色滤波器的理想的滤波特性。图3中纵轴表示增益,横轴表示线性的频率。
如图3所示,在理想的滤波特性中,根据图13所示的声学钢琴的频谱包络线进行类推,对于基波的倍音成分从基于基波的一定的点大体线性地衰减。另外,其倾斜度在音量小时变小(即向右下降的程度大:倾斜度小),并随着音量变大而变大(即向右下降的程度变小、更接近水平:倾斜度变大)。
下面把基于基波以线性开始衰减或增强的点(频率)称为基准频率,把采样频率fs的1/2频率中的衰减量(dB)称为增益,把对于增益成为规定的比率的频率(在本实施方式中,成为fs/2中的衰减量的1/2的频率)称为迁移频率。另外,把从基准频率线性衰减或者增强的程度称为倾斜度。倾斜度把频率轴作为x轴,把衰减量作为y轴。因此,负的衰减量越大,频率特性中的倾斜度越小,随着负的衰减量接近0,其倾斜度变大接近0。正的衰减量越大,频率特性中的倾斜度越大。
另外,在本实施方式中,通过基波变化基准频率变化。另外,伴随基准频率的变化迁移频率也以一定的规则变化。
在本实施方式中,如后所述,根据基于基波变化的迁移频率和表示滤波器深度的增益控制滤波电路。由此,实现几乎和声学钢琴的实际的音色变化相同的、针对基波的高次谐波成分的控制。
此外,在本实施方式中,不仅考虑衰减高次谐波成分,还考虑增强高次谐波成分的情况。这是为了在更广的范围内使基于波形ROM 8的PCM数据的音色变化。为实现这样的特性,FIR(Finite Impulse Response:有限脉冲响应)滤波器较适合。但是,FIR滤波器运算量大,需要大规模的硬件。因此,在本实施方式中,使用低次IIR(Infinite Impulse Response:无限脉冲响应)滤波器实现近似图3所示的理想的滤波特性的特性,并进行控制使滤波系数大体和理想的滤波特性相同。
为得到具有上述那样的滤波特性的滤波器,可以考虑各种方法,但是为使运算量成为最小限度,尝试使用一次IIR滤波器进行近似,并对其进行扩展,得到接近理想的频率特性。首先,考虑一次IIR滤波器的传递函数为(2)式。
【数学式2】
在(2)式中,当设最大增益时(即,把采样频率fs的1/2的频率下的最大增益作为A),A可以用(3)式表示。
【数学式3】
∴
另外,假设在为迁移频率f0时,成为最大增益的1/2的增益时,导出(4)式。
【数学式4】
∴
当解上述(3)式以及(4)式时,系数b、c如(5)式以及(6)式所示。
【数学式5】
【数学式6】
因此,(2)式表示的一次IIR滤波器的系数b、c可以根据最大增益A以及迁移频率f0,如(5)式以及(6)式所示的那样求出。此外,根据上述(5)式在滤波系数中存在两组,可以根据其系数范围选择容易控制的一方。
一次IIR滤波器其衰减特性过于平缓。因此,在本实施方式中,串联迁移频率不同的两个一次IIR滤波器,形成二次IIR滤波器,由此得到更加近似理想滤波器的滤波特性。(7)式表示串联连接一次IIR滤波器的二次IIR滤波器的传递函数。
【数学式7】
图4表示在某迁移频率下变更了增益时的二次IIR滤波器的特性。可以理解图4所示的特性近似于图3所示的理想的特性。此外,在本实施方式中,通过二次IIR滤波器近似理想滤波器,通过增加滤波器的次数,能够使其特性进一步近似理想滤波器的特性。
图5是表示用于实现图4所示的滤波特性的、二次的滤波系数的图表。此外,横轴表示负的增益的等级。等级1表示负的等级最大(即倾斜度最小)的增益,等级0表示负的等级最小(即倾斜度为0)的增益。如此,在本实施方式中,在各个等级1~9中,决定滤波系数b、c、d、e以及f。
针对正增益的滤波系数,可以通过替换上述(7)式的分母和分子来计算(参照(8)式)。
【数学式8】
因此,通过把负的增益的系数b~f分别替换为b:e/d、c:f/d、d:1/d、e:b/d、f:c/d,可以得到正的增益特性的滤波系数。
在本实施方式中,不是通过运算得到该滤波系数,而是通过在滤波系数计算电路26中设置把迁移频率以及增益的等级作为地址的表(参数表),从表中取出数据值,进而插补该数据值,由此来计算适当的滤波系数。
图11用于说明本实施方式中的滤波特性以及参数表。图11a表示基于某基准频率f1的迁移频率F1时的滤波特性。如上所述,按照基波的频率决定基准频率f1。例如,基准频率可以和基波大体相同,也可以设为基波的规定倍数的频率。如图11a所示,考虑对于单一的迁移频率F1具有多个倾斜度的滤波特性。在图11a的例子中,作为负的特性(衰减的特性),从小到大表示了增益的等级G11、G12、...G1i(=衰减“0”),作为正的特性,表示了G1(i+1)、...G1(2i-1)。另外,当考虑到伴随基波的不同,基准频率从f1变化到f2(f1<f2)的情况时,如图11b所示,随着基准频率的变更,迁移频率F2被变更。另外,增益的等级G21、G22、...G2i、...G2(2i-1)也能够被变更。
例如,在图11a中,对于单一的迁移频率F1,存在2i-1个等级。因此,在该例中,关于迁移频率F1和某个等级的组合,存在一个滤波系数的组合(b、c、d、e、f)。即,如果存在2i-1个等级,则存在2i-1个滤波系数的组合。对于图11b也相同。因此,如果存在n种迁移频率,则可以存在n×(等级数(在图11的例子中(2i-1)))个滤波系数的组合。
当对每个迁移频率保持各增益的滤波系数的组合时,必须准备庞大(迁移频率的设定数×增益的设定数×滤波系数的种类(5))的表。因此,限定迁移频率的设定数以及增益的设定数,仅准备存储了与这些组合相应的一系列滤波系数的表,对迁移频率以及增益双方实现插补(二维插补),由此来减小表的大小,实现滤波系数的适当化。
图16表示在Q=2中,使截止频率fc以指数方式变化为3000Hz、1765Hz、1038Hz、611Hz、359Hz、211Hz、124Hz、73Hz、43Hz时的各个滤波特性。
另外,图17表示截止频率fc的各个状态下的滤波系数b~d。此外,现有的二次IIR滤波器的传递函数由(9)式表示。
H(z)=f2/(1+(-2+f2+f/Q)z-1+(1-f/Q)z-2) ...(9)
因此,滤波系数e以及f为e=0,f=0,成为固定。
下面更详细说明本实施方式的滤波系数计算电路26以及滤波电路22的结构。
图6是表示本实施方式的滤波系数计算电路的结构的框图。如图6所示,滤波系数计算电路26具有接口31、加法器32~34、参数表35、插补电路36以及寄存器37~41。另外,虽然在图6中未表示,但滤波系数计算电路26具有在规定的定时,输出向参数表35的地址信号的增量信号X1、Y1以及参数表35的选择信号SEL的控制电路。
接口31与乐音发生电路7的内部总线28连接,接收并保存从微计算机1通过接口20发送的两种参数,即迁移频率数据F[15:0]以及增益数据G[15:0],并输出到滤波计算电路26内。迁移频率数据F与上述迁移频率相当,增益数据G与上述增益相当。将增益数据G[15:0]给予加法器32。作为另一个输入,还从第一包络线发生电路25对加法器32给予随时间变化的第一包络线信号。因此,从加法器输出的增益数据G[15:0]根据第一包络线信号,其值伴随时间的经过而变化。
将增益数据G[15:0]中的G[15:12]给予加法器33。另外,将迁移频率数据F[15:0]中的F[15:13]给予加法器45。在加法器33、34中,根据需要在规定的定时相加增量信号“1”,作为参数表35的地址输出。在加法器33中,通过在G[15:12]的下一输出定时相加增量信号X1,能够输出连续的地址(G[15:12]+1)。另外,在加法器34中,通过在F[15:13]的下一输出定时相加增量信号Y1,也能够输出连续的地址(F[15:13]+1)。
在参数表35的下位地址A[4:0]上给予来自加法器33的信号,其次在上位地址A[8:5]上给予来自加法器34的信号。进而在最上位地址A[11:9]上给予来自控制电路(未图示)的选择信号SEL。
在本实施方式中,在参数表35中存储9种迁移频率×17种增益(8种负增益、增益“0”、以及9种正增益)×5种滤波系数。因此,在参数表35中存储了9×17×5=765字的滤波数。
对于迁移频率,因为用下位13比特插补上位3比特(8种)的值,所以准备9种地址。另外,对于增益,因为用下位12比特补足上位4比特(16种)的值,所以准备17种地址。另外选择信号SEL用于选择5种系数b~f的某一个。
对插补电路36给予参数表35的输出、即插补前的滤波系数的组合。另外,对插补电路36还给予迁移频率数据的下位数据F[12:0]以及增益数据的下位数据G[11:0]。在插补电路36中,计算5种插补后的滤波系数b~f然后输出。寄存器37~41分别保存顺序输出的插补后的滤波系数b~f。
图7是更详细表示本实施方式的插补电路的框图。如图7所示,插补电路36具有寄存器51~54、减法器55、乘法器56、加法器57、寄存器58、减法器65、乘法器66、加法器67、寄存器68、减法器70、乘法器71、以及加法器72。
通过减法器55计算从寄存器51的输出中减去寄存器52的输出的差分值,把该差分值在乘法器56中与增益数据的下位数据G[11:0]相乘,将乘积向加法器57输出。加法器57将该乘积和来自寄存器51的输出进行相加,将相加后的值存储在寄存器58中。
同样,通过减法器65计算从寄存器53的输出中减去寄存器54的输出的差分值,把该差分值在乘法器66中与增益数据的下位数据G[11:0]相乘,将乘积向加法器67输出。加法器67将该乘积和来自寄存器53的输出相加,将相加后的值存储在寄存器68中。
进而,在减法器70中计算从寄存器58的输出中减去寄存器68的输出的差分值,把该差分值在乘法器71中与迁移频率数据的下位数据F[12:0]相乘,将乘积向加法器72输出。加法器72将该乘积和来自寄存器58的输出进行相加。来自加法器72的输出成为插补后的滤波系数。
图8表示本实施方式的滤波电路的概要。如图8所示,滤波电路22具有加法器80、88、乘法器81、82、85、86、87、以及延迟电路83、84。向各个乘法器81、82、85、86、87给予在滤波系数计算电路22中计算出的滤波系数b、c、d、e、f,把对乘法器的各个输入施加的信号和滤波系数相乘。
下面说明本实施方式的二维插补。图9说明本实施方式的二维插补。为说明方便,假定x=G[15:12]、dx=G[11:0]、y=F[15:13]、dy=F[12:0]。在图7的寄存器5 1~54中存储以下的值。
寄存器51:o[x,y](式中,o[x,y]表示在地址xy的参数表35的输出)
寄存器52:o[x+1,y]
寄存器53:o[x,y+1]
寄存器54:o[x+1,y+1]
通过减法器55从寄存器52的输出o[x+1,y]中减去寄存器51的输出o[x,y],而且通过乘法器56将差值与dx相乘。之后,通过加法器57把乘积和o[x,y]相加,然后存储在寄存器58中。因此,在寄存器58中存储以下那样的值。
寄存器58:o[x,y]+(o[x+1,y]-o[x,y])*dx
=o[x+dx,y]
如图9所示,这相当于根据dx对o[x,y]和o[x+1,y]之间进行了直线插补的值。
另外,通过减法器65从寄存器54的输出o[x+1,y+1]中减去寄存器53的输出o[x,y+1],而且通过乘法器66把差值和dx相乘。其后,通过加法器67将乘积和o[x,y+1]相加,之后存储在寄存器68中。因此,在寄存器68中存储以下那样的值。
寄存器68:o[x,y+1]+(o[x+1,y+1]-o[x,y+1])*dx
=o[x+dx,y+1]
如图9所示,这相当于根据dx对o[x,y+1]和o[x+1,y+1]之间进行了直线插补的值。
进而,通过减法器70从寄存器68的输出o[x+dx,y+1]中减去寄存器58的输出o[x+dx,y],而且通过乘法器71把差值和dx相乘。其后,通过加法器72将乘积和o[x+dx,y]相加,然后输出。因此,输出值成为以下那样的值。
输出值:o[x+dx,y]+(o[x+dx,y+1]-o[x+dx,y])*dy
=o[x+dx,y+dy]
如图9所示,输出值相当于根据dy对o[x+dx,y]和o[x+dx,y+1]之间进行了插补的值。因此,得到的输出值成为根据dx、dy的二维的插补值。
在本实施方式中,顺序变更选择信号SEL,从参数表35输出滤波系数b、c、d、e、f的插补前的值,在插补电路36中生成并输出b、c、d、e、f的插补值。
图10是滤波系数计算时的定时图。在图10中,R0~R5分别与图7的寄存器51~54、58、68对应,B~F分别与图6的寄存器37~41相当。
在图10中,通过信号X1,把地址A[4:0]切换为“x”或者“x+1”,另外,通过信号Y1,把地址A[8:5]切换为“y”或者“y+1”。另外,通过选择信号SEL,变更地址A[9:11]。在最初的Y1的一个周期(参照符号1001)中,选择信号SEL表示“b”,因此,通过在最初的Y1的周期中对参数表35基于的4种地址,输出与滤波系数b相关的o[x,y]、o[x+1,y]、o[x,y+1]以及o[x+1,y+1],将它们存储在R0~R3中。
根据分别在R0、R1中存储的o[x,y]、o[x+1,y]计算o[x+dx,y],将其存储在R4中。另外,根据分别在R2、R3中存储的o[x,y+1]以及o[x+1,y+1]计算o[x+dx,y+1],将其存储在R5中。根据在R4以及R5中存储的o[x+dx,y]以及o[x+dx,y+1],计算关于滤波系数b的插补后的值o[x+dx,y+dy],将其存储在B中。
同样,在选择信号SEL表示“c”、“d”、“e”以及“f”时,最终计算滤波系数c~f各自插补后的值c[x+dx,y+dy]、d[x+dx,y+dy]、e[x+dx,y+dy]以及f[x+dx,y+dy],并将计算出的值分别存储在C~F中。
根据本实施方式,设置根据迁移频率以及增益输出滤波系数的参数表,通过利用参数表的滤波系数控制滤波电路。迁移频率是基于应该发音的乐音的基波频率的频率,而且,增益表示其衰减的程度(或者增强的程度)。因此,通过直观上容易理解的参数,另外无需进行复杂的运算,能够实现具有极为近似声学乐器特别是声学钢琴的滤波特性的滤波特性的数字滤波器。
另外,根据本实施方式,从第一包络线发生电路输出时间变化的包络线数据,该包络线数据在滤波系数计算电路中与增益数据相加。因此,在此也能够用简单的电路结构实现通过滤波器的增益衰减(或者增强)随时间的变化,实现所希望的音色的变化。
再有,根据本实施方式,把迁移频率数据的上位比特以及增益数据的上位比特作为地址,输出参数表粗略的滤波系数,而且通过迁移频率数据的下位比特以及增益数据的下位比特,二维修正粗略的滤波系数,取得修正后的滤波系数。由此,无需使参数表存储的数据(系数)的数目那样大,就能够得到精度良好的恰当的滤波系数。
下面说明本发明的第二实施方式。
在电子乐器中,不仅需要生成钢琴等的自然乐器音,还需要生成所谓合成器的用自然乐器无法发出的音色。因此,存在电子乐器的数字滤波器仅具有适合自然乐器音的音色变化的频率特性,而无法应对各种音乐种类的问题。
在本实施方式中,提供一种不仅能够实现和自然乐器的音色变化同等的音色变化、还能够实现所谓合成器的音色变化的滤波装置以及电子乐器。
图18是表示本实施方式的滤波系数计算电路的结构的框图。如图18所示,滤波系数计算电路26a具有接口31a、加法器32~34、参数表35、插补电路36以及寄存器37~41。另外,虽然在图1 8中未表示,但滤波系数计算电路26a具有在规定的定时,输出向参数表35a的地址信号的增量信号X1、Y1以及参数表35a的选择信号SEL的控制电路。
接口31a与乐音发生电路7的内部总线28连接,接收并保持从微计算机1通过接口20发送的两种参数,并输出给滤波计算电路26。在本实施方式中,从微计算机1对接口给予由作为与声学乐器用滤波特性相关的第一参数的迁移频率数据F[15:0]以及作为第二参数的增益数据G[15:0]组成的参数组、以及作为与合成器用滤波特性相关的第一参数的带宽数据Q[15:0]以及作为第二参数的截止数据fc[15:0]组成的参数组。
另外,在本实施方式中,接口31a接收对来自微计算机1的声学乐器用滤波特性或合成器用滤波特性进行选择的滤波方式选择信号A/S,把滤波方式选择信号A/S输出给参数表35a。在本实施方式中,在滤波方式选择信号A/S为“0”时,滤波系数计算电路26根据声学乐器用滤波特性进行动作。因此,从微计算机1向接口31a,作为第一参数P1给予迁移频率数据F,作为第二参数P2给予增益数据G。
另一方面,在滤波方式选择信号A/S是“1”时,滤波系数计算电路26根据合成器用滤波特性进行动作。因此从微计算机1向接口31,作为第一参数P1给予带宽数据Q,作为第二参数P2给予截止数据fc。
而且,在本实施方式中,接口31a从微计算机1接收用于改写参数表35的数据、地址以及各种控制信号,把它们输出给参数表35a。在图18中,WRB是向参数表的写入许可信号,S是地址的切换信号。另外,在图18中,D是参数表35的写入用数据,AD是参数表35a的写入用地址。
如图18所示,对加法器32给予第二参数P2[15:0]。作为另一个输入,还从第一包络线发生电路25对加法器32给予随时间变化的第一包络线信号。因此,从加法器输出的第二参数P2[15:0]根据第一包络线信号,其值随时间的经过而变化。
在第二参数P2[15:0]中,对加法器33给予P2[15:12]。另外,在第一参数P1[15:0]中,把P1[15:13]给予加法器34。在加法器33、34中,根据需要在规定的定时相加增量信号“1”,作为参数表35的地址输出。在加法器33中,在P2 [15:12]的下一输出定时相加增量信号X1,由此能够输出连续的地址(P2[15:12]+1)。另外,在加法器34中,通过在P1[15:13]的下一输出定时相加增量信号Y1,能够输出连续的地址(P1[15:13]+1)。
在参数表35的下位地址A[4:0]给予来自加法器33的信号。然后在上位地址A[8:5]给予来自加法器34的信号。进而,在最上位地址A[11:9],给予来自控制电路(未图示)的选择信号SEL。
图19表示本实施方式的参数表的例子。如图19所示,参数表35具有选择器101、“或”电路102、104、反相器(inverter)103、存储器105、106以及选择器107。在本实施方式中,在存储器105(RAMA)中存储基于声学用滤波特性的第一参数(迁移频率数据)以及第二参数(增益数据)的滤波系数。另外,在存储器106(RAMB)中存储基于合成器用滤波特性的第一参数(带宽数据)以及第二参数(截止数据)的滤波系数。
在本实施方式中,例如在存储器105中存储9种迁移频率×17种增益(8种负增益、增益“0”以及8种正增益)×5种滤波系数。因此,存储器105存储9×17×5=765字的滤波数。
同样,在存储器105中对于各个9种带宽×8种截止,存储5种滤波系数。
例如,对于迁移频率,因为用下位13比特插补上位3比特(8种)的值,所以准备9种地址。另外,对于增益,因为用下位12比特补足上位4比特(16种)的值,所以准备17种地址。另外,选择信号SEL用于选择5种系数b~f种的某一种。
如图19所示,对“或”电路102给予WRB信号和A/S信号,作为存储器105的写入许可,输入“或”电路102的输出。另一方面,对“或”电路104给予WRB信号和A/S信号通过反相器103的反转信号,作为存储器106的写入许可,输入“或”电路104的输出。设在输入该写入许可“0”时可对存储器进行写入。
另外,选择器101在S信号是“0”时,选择接口31a给予的写入用地址AD[11:0],在S信号是“1”时,选择从接口31a给予的参数A[11:0]。
在向存储器105、106输入数据时,微计算机1向接口31a输出规定的控制信号(WRB信号,A/S信号,S信号),并且输出地址AD以及数据D。
通过从微计算机1经由接口31给予WRB信号“0”、A/S信号“0”以及S信号“0”,在存储器105中,在从微计算机1通过接口31a给予的写入用地址AD[11:0]中,写入作为基于声学用滤波特性的滤波系数的数据D[19:0]。
另外,从微计算机1通过接口31a给予WRB信号“0”、A/S信号“1”以及S信号“0”,由此在存储器106中,在从微计算机1通过接口31a给予的写入用地址AD[11:0]中,写入作为基于合成器用滤波特性的滤波系数的数据D[19:0]。
另外,在WRB信号是“1”时,存储器105、106用于读出。微计算机1对参数表35输出控制信号以及参数,以便如果在开关4中指定的音色属于声学乐器的音色,则从存储器105中读出滤波系数,另外,如果属于所谓的合成器音色,则从存储器106中读出滤波系数。
当从微计算机1通过接口31a给予WRB信号“1”、A/S信号“0”以及S信号“1”时,在存储器105中,把SEL信号作为A[11:9],把第一参数的规定的上位地址P1[15:13]作为A[8:5],把第二参数的规定的上位地址P2[15:12]作为A[4:0],读出数据。因为还对选择器107给予了A/S信号“0”,所以选择来自存储器105的输出。因此,从参数表35输出基于迁移频率以及增益的、插补前的滤波系数。
当从微计算机1通过接口31a给予了WRB信号“1”、A/S信号“1”以及S信号“1”时,在存储器106中,把SEL信号作为A[11:9],把第一参数的规定的上位地址P1[15:13]作为A[8:5]、把第二参数的规定的上位地址P2[15:12]作为A[4:0],读出数据。因为还对选择器107给予了A/S信号“1”,所以选择存储器106的输出。因此,从参数表35输出基于带宽以及截止的、插补前的滤波系数。
把参数表35a的输出,即插补前的滤波系数的组合给予插补电路36。另外,把迁移频率数据的下位数据F[12:0](P1[12:0])以及增益数据的下位数据G[11:0](P2[12:0])也给予插补电路36。在插补电路36中,计算5种插补后的滤波系数b~f,然后输出。寄存器37~41分别保存顺序输出的插补后的滤波系数b~f。
根据第二实施方式,设置根据迁移频率以及增益输出滤波系数的第一存储器,以及根据带宽以及截止输出滤波系数的第二存储器,按照所指定的音色从某个存储器输出滤波系数。
迁移频率基于应该使发音的乐音的基波频率,而且,增益表示其衰减的程度(或者增强的程度)。因此,通过直观上容易理解的参数,另外无需进行复杂的运算,能够实现具有与声学乐器特别是声学钢琴的滤波特性极为近似的滤波特性的数字滤波器,能够输出几乎和声学乐器同等音色的乐音。
另一方面,使用第二存储器,输出现有的基于带宽以及截止的滤波系数,能够实现具有现有的滤波特性的数字滤波器,还可以输出所谓合成器的音色的乐音。
下面说明第二实施方式的变形例。
在本实施方式中,具有两个存储器(RAMA以及RAMB),在一方的存储器(RAMA)中存储基于声学乐器用滤波特性的滤波系数,把迁移频率数据以及增益数据作为地址输出滤波系数,在另一方的存储器(RAMB)中存储基于合成器用滤波特性的滤波系数,把带宽数据以及截止数据作为地址输出滤波系数。
当然,在物理上无需设置两个存储器,可以包含以下的情况:把单一存储器的地址空间分成两个,在一方中作为RAMA存储基于声学乐器用滤波特性的滤波系数,在另一方中作为RAMB存储基于合成器用滤波特性的滤波系数。
对此,在变形例中,使用可改写的单一存储器,通过来自微计算机1的控制,存储基于声学乐器用滤波特性的滤波系数,或基于合成器用滤波特性的滤波系数中的某一个。
图20是表示本实施方式的变形例的参数表的例子的框图。
如图20所示,参数表具有选择器111以及存储器112。作为控制信号,从接口31a对参数表给予WRB信号、S信号。因为不需要像上述实施方式那样切换存储器,所以省略A/S信号。除此之外的地址、数据和上述实施方式相同。
在向存储器112写入数据时,微计算机1向接口31输出规定的控制信号(WRB信号,S信号),并且输出地址AD以及D。
从微计算机1经由接口31a给予WRB信号“0”以及S信号“0”,由此在存储器112中,在从微计算机1通过接口31a给予的写入用地址AD[11:0]写入相当于滤波系数的数据D[19:0]。
例如,如果在开关4指定的音色属于声学乐器的音色,则作为数据D在存储器112中写入基于声学乐器用滤波特性的滤波系数。其后,微计算机1通过接口31a给予WRB信号“1”以及S信号“1”,由此从存储器112输出与基于迁移频率数据以及增益数据的地址A[11:0]对应的滤波系数。
如果在开关4指定的音色属于所谓的合成器的音色,则作为数据D在存储器112中写入基于合成器用滤波特性的滤波系数。其后,微计算机1通过接口31给予WRB信号“1”以及S信号“1”,由此从存储器11 2输出与基于带宽数据以及截止数据的地址A[11:0]对应的滤波系数。
下面说明本发明的第三实施方式。
目前,在电子乐器中,多采用PCM方式。在该PCM方式中,为减小波形存储器(波形ROM)的容量,不是存储与全部键的音高对应的频率的波形数据,而是仅以规定的间隔(例如每8度)保存多个频率的原始波形数据。因此,在生成原始波形数据的频率的波形数据时,通过读出更接近该频率的频率的原始波形数据,并变更其音调来实现。
但是,在从原始波形数据变更音调时,产生高次谐波对于基波的比率变化的问题。
图21a、图21b表示原始波形数据的例子及其频谱。图22a、图22b表示将频率作为原始频率的1/2倍读出原始波形数据时的波形数据及其频谱。当看图22b表示的频谱时,可知成为在横方向(频率轴的方向)上对图21b表示的频谱进行了压缩的状态,高次倍音对于基波的比率变小。
图23a、图23b表示将频率作为原始频率的2倍读出原始波形数据时的波形数据及其频谱。当看图23b表示的频谱时,可知成为在横方向(频率轴的方向)上对图21b的频谱进行了拉伸的状态,高次倍音对于基波的比率变大。
目前,自然乐器具有由乐器的材质、形状引起的共振峰,它规定高次倍音对于基波的比率。因此,存在以下的问题:伴随上述那样的音调(频率)的变更,频谱发生变化,特别是高次倍音的比率的变化引起不像自然乐器的不自然的音色变化。
在本实施方式中,提供能够实现和自然乐器的音色变化同等的音色变化的滤波装置。
在本实施方式中,微计算机1根据按下键时来自接触检测电路5的演奏操作数据,检测键开启执行音符开启处理,控制乐音发生电路7,发出乐音。另外,接触检测电路5根据键的开关的关闭,向微计算机1输出包含所离开的键的音高的离键数据。微计算机1当接收到离键数据时,执行音符关闭处理,控制乐音发生电路7,使正在发音的乐音衰减。图24是表示本实施方式的微计算机中的音符开启处理的流程图,图25是表示音符关闭处理的流程图。在此,对处理的概要进行说明,关于包络线修正处理后面详细进行说明。
如图24、25所示,在系统(整个电子乐器)以及乐音发生电路7初始化之后(步骤201),微计算机1监视音符开启以及音符关闭(步骤202,图25的步骤301)。在具有音符开启时(在步骤202为Y),微计算机1检测可发音的空通道(步骤203)。此外,在本实施方式中,可同时发出“n”个乐音,在乐音发生电路7中,具有时分为“n”的通道,在各个通道中生成了乐音波形数据。
然后,微计算机1计算关于音符开启的音高(音符号码)所属的键域(步骤204)。在本实施方式中,如图26所示,在波形ROM 8中,对于多个键中的每一个,准备了由多个键形成的键域大体中心的音符号码的原始波形数据,对于该键域中包含的音符号码,变更其原始波形数据的音调来得到波形数据。例如,把键分割为N个键域。在键域i中包含多个键F4~A4,G4的音高的波形数据作为该键域的原始波形数据存储在波形ROM 8中(参照符号401)。
微计算机1把在步骤1804中计算出的键域的原始波形数据在波形ROM8中的地址、表示向后述的混频器24中的左右通道的加权的平移(panning)信息等各种参数传输给乐音发生电路7(步骤205)。然后,微计算机1执行音调处理(步骤206)。在音调处理中,微计算机1计算应发音的乐音的音符号码和原始波形数据的音符号码的差分,将该差分作为频率变更数据传输给乐音发生电路7。
另外,微计算机1执行滤波修正处理(步骤207)。大体上说,在滤波修正处理中,微计算机1根据应发音的音符号码,计算后述的迁移频率,而且根据速度数据计算后述的增益包络线(第一包络线)。另外,微计算机1根据应发音的乐音的音符号码和原始波形数据的音符号码的差分,修正增益包络线,把修正后的增益包络线传输给乐音发生电路7。
此外,在本实施方式中,微计算机1把增益包络线的目标值(Target)和与包络线的速度(倾斜度)相当的速率(rate)给予乐音发生电路7。目标值以及速率按需要进行重复,由微计算机1给予乐音发生电路7。
而且,微计算机1执行放大器修正处理(步骤208)。大体上说,在放大器修正处理中,微计算机1根据速度数据计算放大器包络线(第二包络线)。另外,微计算机1根据应发音的乐音的音符号码和原始波形数据的音符号码的差分,修正放大器包络线,把修正后的放大器包络线传输给乐音发生电路7。
和增益包络线相同,把放大器包络线的目标值(Target)和与包络线的速度(倾斜度)相当的速率(rate)给予乐音发生电路7。
在存在音符关闭时(在步骤301为Y),微计算机1检索以和音符关闭的音符号码相同的音符号码发音的发音通道(步骤302)。然后,微计算机1执行键关闭用滤波处理(步骤303)。这里,微计算机1计算键关闭用增益包络线,根据应音符关闭的音符号码和原始波形数据的音符号码的差分,对键关闭用增益包络线进行修正,把修正后的键关闭用增益包络线传输给乐音发生电路7。
另外,微计算机1执行键关闭用放大器修正处理(步骤304)。在键关闭用放大器修正处理中,微计算机1计算键关闭用放大器包络线,根据应音符关闭的音符号码和原始波形数据的音符号码的差分,修正键关闭用放大器包络线,把修正后的放大器包络线传输给乐音发生电路7。
图27是更详细表示第三实施方式的乐音发生电路的框图。如图27所示,乐音发生电路7具有接口20、波形发生电路21、滤波电路22、乘法电路23、混频器24、以及滤波系数计算电路26。接口20、波形发生电路21、滤波电路22、混频器24、以及滤波系数计算电路26与内部总线28连接。
接口20与图1所示的数据总线13连接,通过内部总线28向乐音发生电路7内的波形发生电路21、滤波电路22等各运算单元写入设定数据等。
波形发生电路21与波形ROM 8连接。波形发生电路21接收在微计算机1中生成的频率变更数据,从波形ROM 8的规定的地址读出PCM波形数据(原始波形数据),而且,根据频率变更数据进行音调的变更,生成应发音的乐音的音高(音符号码)的乐音波形数据。
滤波系数计算电路26按照基于经由接口20从微计算机1给予的演奏操作信号的参数、和从微计算机1给予的随时间变化的修正后的增益包络线(第一包络线)计算滤波系数。
此外,现有的增益包络线只要达不到目标值,可以通过对上次处理时的增益包络线加上从微计算机1给予的速率来得到。
因为通过第一包络线对其频率特性给予了变化,所以滤波系数随时间的经过变化。滤波电路22按照滤波系数对乐音波形数据施行滤波处理。
乘法器23将乐音波形数据和微计算机1给予的随时间变化的修正后的放大器包络线(第二包络线)相乘。
放大器包络线也和增益包络线相同,只要达不到目标值,可以通过对上次处理时的放大器包络线加上从微计算机1给予的速率来得到。
由此,控制基于键盘6的键的开·关的乐音上升、下降,以及基于接触响应数据的音量。此外,波形发生电路21、滤波电路22、滤波系数计算电路26以及乘法电路23通过时分方式进行最大同时发音数的处理,能够在键盘演奏中生成充分通道数(N个通道)的乐音。
混频器24把生成的最大同时发音数的通道的乐音分别按照平移信息,以规定的加权进行累加,最终分配为左右两个通道的乐音。将混频器24的输出输出给DAC 9。
下面更详细地说明参照图24以及图25说明的滤波修正处理(步骤207)以及放大器修正处理(步骤208)。如上所述,在本实施方式中,根据音高(音符号码)决定迁移频率,而且根据速度数据决定等级。并且,在滤波系数计算电路26中,对等级相加了随时间的经过变化的修正后的增益包络线(第一包络线)。
以下,当把修正后的增益包络线的目标值设为GainEnvelopeTarget’,把基于速度数据的增益包络线的目标值设为GainEnvelopeTarget,把原始波形数据的音符号码设为OriginalKey,把应该音符开启的音符号码设为NoteNo时,GainEnvelopeTarget’如下表示。
GainEnvelopeTarget’=GainEnvelopeTarget-Gsense×(NoteNo-OriginalKey)
这里,Gsense是修正灵敏度数据,表示以何种程度使包络线变化,被设定为适当的值。
根据上述修正式,如果应发音的乐音的音符号码比原始波形数据的音符号码高,则通过进行修正,增益包络线的等级变小。即,因为Gsense以后是正值,所以从GainEnvelopeTarget中减去。另一方面,如果应发音的乐音的音符号码比原始波形数据的音符号码低,则增益包络线的等级变大。即,因为Gsense以后是负值,所以对GainEnvelopeTarget进行相加。
这样,在本实施方式中,在应发音的乐音的音符号码比原始波形数据的音符号码高时,即不进行修正,通过音调的变更频谱成为图23(b)那样时,计算修正后的增益包络线GainEnvelopeTarget’,以使高次倍音的等级变得更低。与此相对,在应发音的乐音的音符号码比原始波形数据的音符号码低时,即不进行修正,通过音调变更频谱成为图22(b)那样时,计算修正后的增益包络线GainEnvelopeTarget’,使高次倍音的等级变得更高。
此外,增益包络线因为随时间的经过变化,所以修正后的增益包络线数据也成为随时间的经过变化的时间序列数据。
在本实施方式中,通过调整增益包络线调整作为滤波器的参数之一的增益,来修正音色(滤波修正处理),另一方面,通过放大器包络线的修正调整伴随音调变更的音量变化(放大器修正处理)。
下面,当把修正后的放大器包络线的目标值设为AmpEnvelopeTarget’,把基于速度数据的放大器包络线的目标值设为AmpEnvelopeTarget,将原始波形数据的音符号码设为OriginalKey,将应该音符开启的音符号码设为NoteNo时,AmpEnvelopeTarget’如下表示。
AmpEnvelopeTarget’=AmpEnvelopeTarget-Asense×(NoteNo-OriginalKey)
这里,Asense和Gsense相同,是修正灵敏度数据,表示以何种程度使包络线变化,被设定为适当的值。
这样,在放大器包络线的修正中,如果应发音的乐音的音符号码比原始波形数据的音符号码高,则通过修正,使放大器包络线的等级变小,使音量更小。另一方面,如果应发音的乐音的音符号码比原始波形数据的音符号码低,则进行修正,使放大器包络线的等级变大,使音量变得更大。
关于音符关闭时的滤波器修正处理(步骤303)以及放大器修正处理(步骤304)也同样。在滤波器修正处理中,作为GainEnvelopeTarget可以使用键关闭用增益包络线。在放大器处理中,作为AmpEnvelopeTarget可以使用键关闭用放大器包络线。
根据第三实施方式,设置根据迁移频率以及增益输出滤波系数的参数表,通过利用参数表的滤波系数控制滤波电路。迁移频率基于应发音的乐音的基波频率,而且,增益表示其衰减的程度(或者增强的程度)。因此,通过直观上容易理解的参数,另外无需进行复杂的运算,能够实现具有与声学乐器特别是声学钢琴的滤波特性极为近似的滤波特性的数字滤波器。
另外,根据本实施方式,根据应发音的乐音的音高(音符号码)和从波形ROM读出的原始波形数据的音高(音符号码)的差分增大或减小增益,由此调整高次倍音对于基波的等级。根据本实施方式,对原始波形数据的音调变更时的共振峰进行修正,即使在音调已变更的情况下也可以使共振峰不发生变化。
此外,在上述第三实施方式中,为了计算修正后的增益包络线,对原来的增益包络线相加(减去)应发音的乐音的音符号码和原始波形数据的音符号码的差分。但是,不限于这样的运算,还可以计算应发音的乐音的音符号码和原始波形数据的音符号码的比、或者基于差分的比,根据比(例如相乘)使增益包络线变化。关于放大器包络线的修正也相同。
另外,在上述实施方式中,从微计算机关于乐音发生电路给予了增益包络线(第一包络线)的目标值以及速率,另外给予了放大器包络线(第二包络线)的目标值以及速率。因此,在乐音发生电路7中,在达到目标值之前按照速率插补各个包络线。但不限于这样的结构。
下面说明本发明的第四实施方式。如图28所示,第四实施方式的电子乐器在第三实施方式的结构之外,具有弯音音量器14。弯音音量器14与内置于微计算机1内的A/D转换器(未图示)的输入端子连接,其音量值通过A/D转换器转换为数字值,微计算机1根据数字化了的音量值执行用于变更发音中的乐音的音调的处理。此外,基于音量值的发音中的乐音的音调变更处理(以下称“弯音处理”),以感觉不到音调变更导致的不连续感程度的周期执行。
图29是表示第四实施方式的弯音处理的流程图。如上所述,弯音处理是按照规定的周期执行的中断处理。如图29所示,取入弯音音量器的音量值(步骤1601),与上次处理时的值比较,判断是否有变化(步骤1602)。在有变化时(在步骤1602为Y),根据音量值和弯音范围数据计算音调变化量,按照计算出的音调变化量生成音调数据传输给乐音发生电路7(步骤1603)。此外,所谓弯音范围数据表示全程移动弯音器时的音调的变更范围的数据,存储在RAM 3中。
然后,微计算机1根据之前计算出的音调变化量修正增益包络线(第一包络线),把修正后的增益包络线连同速率一起传输给乐音发生电路7(步骤1604)。
当把修正后的增益包络线的目标值设为GainEnvelopeTarget’,将基于速度数据的增益包络线的目标值设为GainEnvelopeTarget,将音调变化量设为PitchChange时,GainEnvelopeTarget’如下表示。
GainEnvelopeTarget’=GainEnvelopeTarget-Gsense×PitchChange
这里,Gsense是修正的灵敏度数据,表示以何种程度使包络线变化,对应音调变化量被设定为适当的值。此外,音调变化量是从音调变化后的新的频率(新的音调数据的频率)中减去发音中的乐音的频率的差分值,在所述新的频率比所述发音中的乐音的频率高时为正。因此,此时,修正后的增益包络线从原来的包络线减小。另一方面,音调变化量在新的频率比发音中的乐音的频率低时为负。因此,此时,修正后的增益包络线比原来的包络线增大。
另外,微计算机1根据音调变化量修正放大器包络线(第二包络线),把修正后的放大器包络线连同速率一起传输给乐音发生电路7(步骤1605)。
下面,当把修正后的放大器包络线的目标值为AmpEnvelopeTarget’,把基于速度数据的放大器包络线的目标值设为AmpEnvelopeTarget,将音调变化量设为PitchChange时,AmpEnvelopeTarget’如下表示。
AmpEnvelopeTarget’=AmpEnvelopeTarget-Asense×PitchChange
这里,Asense和Gsense相同,是修正灵敏度数据,表示以何种程度使包络线变化,对应音调变化量被设定为适当的值。
如此,在伴随弯音音量器的操作变更发音中的乐音的音调时,还根据音调变化量修正增益包络线以及放大器包络线。因此,即使在变更发音中的乐音的音调时,也可以不改变共振峰,可以防止不自然的音色等的变化。
本发明不限于以上的实施方式,在本发明说明书和权利要求记载的范围内可以进行各种变更,它们理所当然也包含在本发明的范围内。