乐音产生设备的制作方法

文档序号:2825307阅读:270来源:国知局
专利名称:乐音产生设备的制作方法
技术领域
本发明涉及一种即使乐音产生通道数量增加也能有效产生乐音的乐音产生设备。
背景技术
传统已知的乐音产生设备包括演奏信息输入部件,其从MIDI (乐器数字接口)、 键盘、音序器等中的任一个接收演奏信息;控制部件(CPU),其产生在乐音产生中使用的乐音产生器参数;以及乐音产生器部件,其基于乐音产生器参数来产生乐音。响应于输入演奏信息,控制部件(CPU)执行诸如通道分配和乐音产生器参数的产生之类的控制处理,并且将乐音产生开始指令和乐音参数供给乐音产生器部件。乐音产生器部件包括用于在其中存储在乐音产生中使用的乐音参数的乐音产生器寄存器,以及执行乐音产生处理的乐音产生处理部件。从控制部件(CPU)供给的乐音参数被存储到乐音产生器寄存器中,并且乐音产生处理部件基于存储在乐音产生器寄存器中的乐音参数来执行乐音产生处理。通过基于存储在乐音产生器寄存器中的乐音参数而如此执行的乐音产生处理,如控制部件(CPU)所指示的那样产生了乐音。作为乐音产生器部件,迄今为止已知的是波形存储器型乐音产生器, 其包括将实际乐音波形作为波形数据记录于其中的波形存储器。在这样的波形存储器型乐音产生器中针对各种音色的每一个和针对各种音高(pitch)范围的每一个来存储不同的波形数据(更具体地,不同的波形数据集),并且乐音产生处理部件读出与要产生的乐音的音色和音高相对应的波形数据,随后通过使用基于乐音产生器参数而产生的控制波形(比如音量控制包络)来控制所读出的波形数据的特性。此外,为了同时产生多个乐音,在乐音产生处理部件中形成了多个乐音产生通道,并且在各个乐音产生通道中分时地执行乐音产生处理。因此,每一采样周期中,在多个乐音产生通道中用算术方法产生乐音波形样本,从而产生了与乐音产生通道在数量上对应的乐音。一旦产生了新乐音产生命令(即音符打开(note-on)事件),就检测空闲乐音产生通道并分配其来产生乐音,并且在所分配的乐音产生通道中产生乐音。注意,空闲乐音产生通道表示当前未分配用于产生任何乐音的空闲通道。在这样的情况下,如果当前在所有乐音产生通道中正在执行乐音产生处理,即如果当前所有乐音产生通道都被分配来产生乐音,则选择乐音产生通道中当通道中的乐音产生即使被停止影响也最小的那个乐音产生通道。随后,对所选的乐音产生通道执行所谓的截断(truncate)处理,其中在所选乐音产生通道中正在产生的乐音的音量被迅速衰减(或切断),并且释放所选乐音产生通道以用于新的乐音产生。另外,在现有技术中一般惯例是将所有乐音产生通道之中当前正在产生的乐音的音量最小的那个通道作为要执行截断处理的通道(即截断通道)。通常,在这样的乐音产生设备中,输出部件是立体声结构,并且,为了产生高质量乐音,在波形存储器中预存储了立体声波形,从而从波形存储器读出与要产生的乐音对应的立体声波形数据来产生立体声乐音。为了执行一个立体声乐音产生,S卩,为了产生左通道和右通道的乐音,已知的乐音产生设备传统上使用两个乐音产生通道。即,控制部件(CPU)执行乐音产生分配处理用以分配两个乐音产生通道作为左通道和右通道,从而确保或保留两个乐音产生通道。此外,因为在乐音产生器存储器中存储了用于各个乐音产生通道的乐音产生器参数(即乐音产生通道专用乐音产生器参数),所以在乐音产生器寄存器中存储了针对左通道和右通道的乐音产生器参数。乐音产生处理部件基于乐音产生通道专用乐音产生器参数以对应于所指定的音高的速率来从波形存储器读出波形数据,并随后通过使用控制波形(比如音量控制包络)来控制读出的波形数据的乐音特性。即,在分配作为左通道的乐音产生通道中,基于针对左通道的乐音产生器参数从波形存储器读出左通道波形数据,并且控制读出的波形数据的乐音特性,以产生左通道的乐音波形数据。类似地,在分配作为右通道的乐音产生通道中,基于针对右通道的乐音产生器参数从波形存储器读出右通道波形数据,并且控制读出的波形数据的乐音特性,以产生右通道的乐音波形数据。利用前述传统已知的乐音产生设备,其中需要两个乐音产生通道来产生立体声乐音波形样本,存在增加乐音产生通道的数量的需要,并且存在增加能够由乐音产生集成电路(乐音产生器LSI)操纵的乐音产生通道的数量的趋势。然而,还遇到这样的问题,乐音产生器部件中乐音产生通道数量的增加会导致各种处理负担增大,比如乐音产生分配处理 (在该乐音产生分配处理中,响应于乐音产生指令,从作为由控制部件(CPU)执行的乐音产生器控制处理的对象的多个乐音产生通道之中分配一个乐音产生通道)、参数设置处理 (该参数设置处理用于将多个乐音产生通道的参数设置到乐音产生器寄存器中)等。并且, 乐音产生器部件中通道数量的增加将会导致乐音产生集成电路的尺寸或规模的增大。另外,为了控制乐音产生处理部件中当前正在产生立体声乐音的乐音产生通道的特性,不得不对左通道和右通道都执行控制处理,并因此将会增大乐音产生处理部件的负担。在这种情况中,尽管单声道乐音产生只需要控制一个通道的特性,但立体声乐音产生需要在相同的采样周期内同时控制左通道和右通道的特性,因为如果不这样,则根据乐音产生的定时将会不期望地产生在左通道和右通道之间产生乐音特性差异,其将会进一步增大乐音产生处理部件的负担。在日本专利No. 2671690, No. 3666346和No. 2915452中公开了这种传统已知的乐音产生设备的例子。

发明内容
考虑到上述问题,本发明的一个目的是提供一种改进的乐音产生设备,即使乐音产生通道的数量增加,该乐音产生设备也能够使乐音产生分配处理、参数设置处理等的负担增加最小化。本发明的另一目的是提供一种改进的乐音产生设备,即使乐音产生通道的数量增加,该乐音产生设备也能使乐音产生集成电路的尺寸增加最小化。为了实现上述目的,本发明提供了一种改进的乐音产生设备,其包括波形存储器 (21),其中存储了多个立体声波形数据,每个立体声波形数据均包括左通道波形的波形数据和右通道波形的波形数据;乐音产生器(111,112,113,116),其包括N(N是等于或大于 1的整数)个乐音产生单元(111,112,113,116),每个乐音产生单元从所述波形存储器读出左通道和右通道的波形数据,并基于读出的波形数据产生左通道和右通道的乐音波形; 寄存器(23),用于存储针对N个乐音产生单元的控制数据,针对每个乐音产生单元的控制数据包括左通道波形信息、右通道波形信息、控制乐音音高的频率数和用于控制乐音特性
7的特性控制参数,所述左通道波形信息指定所述波形存储器中的左通道波形的波形数据, 所述右通道波形信息指定所述波形存储器中的右通道波形的波形数据;以及控制器(122, 10),其将控制数据设置给所述寄存器以控制由所述乐音产生器进行的乐音产生,其中响应于指示产生新乐音的乐音产生命令,所述控制器(122,10)适用于(i)分配N个乐音产生单元之一用于产生由乐音产生指令所指示的新乐音(S11-S15) ; (ii)产生新乐音的控制数据(S17),所述控制数据包括要用于产生所述新乐音的左通道波形信息、右通道波形信息、 频率数以及特性控制参数,并且将产生的乐音控制数据设置到所述寄存器中,作为针对所分配的乐音产生单元的控制数据;以及(iii)对所分配的乐音产生单元给予乐音产生开始指令(S18),并且其中通过每一个乐音产生单元对由所述控制器给予所述一个乐音产生单元的乐音产生开始指令进行响应,所述乐音产生器(111,112,113,116)适用于(i)(lll, 112)以对应于存储在所述寄存器中的针对所述一个乐音产生单元的频率数的速率,从所述波形存储器读出分别由存储在所述寄存器中的针对所述一个乐音产生单元的左通道波形信息和右通道波形信息指定的左通道波形的波形数据和右通道波形的波形数据,从而根据频率数平移左通道波形的波形数据的乐音音高和右通道波形的波形数据的乐音音高;以及 ( ) (113,116)基于存储在所述寄存器中的针对所述一个乐音产生单元的特性控制参数, 控制读出的左通道波形的波形数据的乐音特性和读出的右通道波形的波形数据的乐音特性,从而产生左通道的乐音波形和右通道的乐音波形。根据本发明,乐音产生分配处理将包括了两个乐音产生通道的乐音产生单元分配用于乐音产生;即,在乐音产生设备中,对数量为乐音产生通道数量的一半的乐音产生单元执行乐音产生分配处理。因此,本发明能够减小控制部件的处理负担。另外,因为频率数和特性参数的每一个对于乐音产生单元的两个乐音产生通道而言都是共同的,所以对每个乐音产生单元仅需设置一个频率数和一个特性参数,从而本发明能够显著减小设置所需的总时间。在一个实施例中,所述乐音产生器包括相位产生器,该相位产生器针对N个乐音产生单元中的每一个乐音产生单元,对存储在所述寄存器中的针对所述乐音产生单元的频率数进行累积,从而在所述乐音产生单元中产生左通道和右通道共同的渐进相位 (progressive phase)。更具体地,响应于由所述控制器给予一个乐音产生单元的乐音产生开始指令,所述相位产生器开始对针对所述一个乐音产生单元的频率数进行累积。在一个实施例中,所述乐音产生器还包括波形读取器(112,20c, 20d, 20f),该波形读取器针对N个乐音产生单元中的每一个乐音产生单元,基于由所述相位产生器供给的针对所述乐音产生单元的渐进相位和存储在所述寄存器中的针对所述乐音产生单元的左通道波形信息来从所述波形存储器读出左通道波形的波形数据,并且基于针对所述乐音产生单元的渐进相位和存储在所述寄存器中的针对所述乐音产生单元的右通道波形信息来从所述波形存储器读出右通道波形的波形数据。在一个实施例中,所述乐音产生器还包括特性控制器(113,116,20g,20h,20k, 20m, 20η, 20ρ),该特性控制器针对N个乐音产生单元中的每一个乐音产生单元,基于存储在所述寄存器中的针对所述乐音产生单元的特性控制参数来控制由所述波形读取器所读出的左通道波形的波形数据的乐音特性和右通道波形的波形数据的乐音特性,从而产生针对所述乐音产生单元的左通道和右通道各自的乐音信号。
根据如上述方式构造的本发明,以对应于相同或共同的F数的速率来从波形存储器读出左通道波形数据和右通道波形数据,并且按照相同或共同的特性控制参数来控制左通道波形数据和右通道波形数据的乐音特性,从而形成了其音高和乐音特性已被控制得彼此相似的左通道乐音信号和右通道乐音信号。另外,由于左通道乐音信号和右通道乐音信号是基于左通道和右通道共同的相位信号形成的,所以要由相位产生器产生的渐进相位的数量等于乐音产生单元的数量,而该数量为可同时产生的乐音的数量的一半,即乐音产生通道的数量的一半,因此,可以显著减小相位产生器的处理量。另外,所述特性控制参数是控制波形参数,并且由于控制波形产生部件针对N个乐音产生单元中的每一个,基于控制波形参数来产生所述乐音产生单元的左通道和右通道共同的特性控制波形,所以要由控制波形产生部件产生的特性控制波形的数量等于乐音产生单元的数量,而该数量为可同时产生的乐音的数量的一半,从而可以显著减小控制波形产生部件的处理量。注意,特性控制波形对应于下文中将参考本发明实施例来描述的音高包络波形(音高EG波形)、音量包络波形(音量EG波形)、滤波器包络波形(滤波器EG波形)和低频波形(LF0波形)中的任一个。通过上述布置,即使乐音产生通道的数量增加,本发明也能够使乐音产生集成电路的尺寸或规模的增加最小化。根据本发明的另一方面,提供了一种改进的乐音产生设备,其包括波形存储器 (21),其中存储了多个立体声波形数据和多个单声道波形数据,每个立体声波形数据均包括左通道波形的波形数据和右通道波形的波形数据,每个单声道波形数据均包括单声道波形的波形数据;乐音产生器(111,112,113,116),其包括N(N是等于或大于1的整数)个乐音产生单元(时隙),每个乐音产生单元以通过针对所述乐音产生单元的模式标志所表示的立体声模式或单声道模式进行操作,以立体声模式操作的乐音产生单元从所述波形存储器读出左通道和右通道的波形数据并基于读出的波形数据产生左通道和右通道的乐音波形,以单声道模式操作的乐音产生单元从所述波形存储器读出一个通道的波形数据并基于读出的波形数据产生该一个通道的乐音波形;寄存器(23),用于存储针对N个乐音产生单元的控制数据,针对每个乐音产生单元的控制数据包括模式标志、第一波形信息、第二波形信息、频率数和特性参数;以及控制器(122,10),其将控制数据设置给所述寄存器以控制由所述乐音产生器进行的乐音产生,其中响应于指示产生新乐音的乐音产生命令,所述控制器(122,10)适用于(i)分配N个乐音产生单元之一用于产生由乐音产生命令所指示的新乐音(S11-S15) ; (ii)确定由乐音产生命令指示要产生的新乐音是立体声的还是单声道的(S16) ; (iii-a)如果新乐音是立体声的,则针对该新乐音产生控制数据(S17),该控制数据包括表示立体声模式的模式标志,要用于新乐音产生的第一波形信息、第二波形信息、 频率数和特性参数,并且将所产生的控制数据设置到所述寄存器中作为针对所分配的一个乐音产生单元的控制数据;(iii-b)如果新乐音是单声道的,则针对该新乐音产生控制数据(S17),该控制数据包括表示单声道模式的模式标志,要用于该新乐音产生的第一波形信息、频率数和特性参数,并且将所产生的控制数据设置到所述寄存器中作为针对所分配的一个乐音产生单元的控制数据;以及(iv)对所分配的一个乐音产生单元给予乐音产生开始指令(S18),并且其中通过每一个乐音产生单元对由所述控制器给予所述一个乐音产生单元的乐音产生开始指令进行响应,所述乐音产生器(111,112,113,116)适用于(a)如果存储在所述寄存器中的针对所述一个乐音产生单元的模式标志表示立体声模式,则(a_i) 以由所述寄存器中的针对所述一个乐音产生单元的频率数所表示的速率,从所述波形存储器读出由所述寄存器中的针对所述一个乐音产生单元的第一波形信息所指定的左通道或右通道波形的波形数据,以及由所述寄存器中的针对所述一个乐音产生单元的第二波形信息所指定的右通道或左通道波形的波形数据;(a-ii)基于所述寄存器中的针对所述一个乐音产生单元的特性控制参数,控制所读出的左通道波形的波形数据的乐音特性和所读出的右通道波形的波形数据的乐音特性,从而产生左通道的乐音波形和右通道的乐音波形; (b)如果存储在所述寄存器中的针对所述一个乐音产生单元的模式标志表示单声道模式, 则(b_i)以由所述寄存器中的针对所述一个乐音产生单元的频率数所表示的速率,从所述波形存储器读出由所述寄存器中的针对所述一个乐音产生单元的第一波形信息所指定的单声道波形数据;以及(b-ii)基于所述寄存器中的针对所述一个乐音产生单元的特性控制参数,控制所读出的单声道波形的波形数据的乐音特性,从而产生单声道乐音波形。根据如上述方式构造的本发明,当已经产生乐音产生指令时,仅需要分配一个乐音产生单元来进行乐音产生,而不管所指示的乐音产生是单声道乐音产生还是立体声乐音产生。另外,由于在一个乐音产生单元的左通道和右通道之间共享一些数据,因此要设置到乐音产生器寄存器中用于立体声乐音产生的数据的数量可以小于要设置到乐音产生器寄存器中用于单声道乐音产生的数据的数量的两倍。另外,当要开始乐音产生时,仅需要在已经将各种参数设置到乐音产生器寄存器中之后,将乐音产生开始指令给予所分配的乐音产生单元,而不管所指示的乐音产生是立体声乐音产生还是单声道乐音产生。即,即使在所指示的乐音产生是立体声乐音产生的情况下,也无需麻烦地执行控制来同时将左通道和右通道两者都设置在音符打开状态中。另外,由于在左通道和右通道之间共享F数和特性控制参数中的至少一个,因此即使所指示的乐音产生是立体声乐音产生,控制部件也仅需要实时改变存储在乐音产生器寄存器中的针对乐音产生单元两个通道中的一个通道的F数和特性控制参数中的至少一个的值,而不是实时改变针对乐音产生单元的两个乐音产生通道的两组参数值。尽管用于控制上述的音高包络波形(音高EG波形)、音量包络波形(音量 EG波形)、滤波器包络波形(滤波器EG波形)和低频波形(LF0波形)的参数中的任一个都对应于特性控制参数,然而除了上述以外的释放开始指令(音符关闭(note-off)指令) 也可以对应于特性控制参数。下面将描述本发明的实施例,但是应理解本发明不限于所描述的实施例,并且在不脱离基本原理的情况下,可以对本发明进行各种修改。因此本发明的范围仅由所附权利要求确定。


为了更好地理解本发明的目的和其它特征,下面将参照附图详细描述优选实施例,其中图1是示出本发明的乐音产生设备的一个实施例的示例总体结构的框图;图2是示出图1所示乐音产生设备的示例详细结构的框图;图3A和图:3B是示出在乐音产生设备的实施例中提供的乐音产生器寄存器中所存储的数据的示图4是示出在乐音产生设备的实施例中提供的波形存储器中所存储的波形数据的数据组织或格式的示图;图5A和图5B是示出在乐音产生设备的实施例中提供的闪速存储器中所存储的波形管理数据和音色数据的数据格式的示图;图6是示出在乐音产生设备的实施例中执行的音符打开事件处理的示例操作顺序的流程图;图7是示出在乐音产生设备的实施例中执行的音符关闭事件处理的示例操作顺序的流程图;和图8是示出在乐音产生设备的实施例中执行的音高折曲(bend)处理的示例操作顺序的流程图。
具体实施例方式图1是示出本发明的乐音产生设备的一个实施例的示例总体结构的框图。在图1 所示的由乐音产生集成电路实现的乐音产生设备1中,乐音产生器部件20包括N(其为等于或大于1的整数)个乐音产生单元,每个乐音产生单元包括两个立体声乐音产生通道,即左通道和右通道。例如,如果在乐音产生器部件20中提供的乐音产生通道的数量是256,那么乐音产生单元的数量是128,即乐音产生通道的数量的一半。另外,为了同时产生多个乐音,乐音产生设备1构造为每采样周期基于时分方式在多个乐音产生单元中执行乐音产生处理。另外,因为在每个乐音产生单元中基于时分方式算术地产生两个通道的乐音波形样本,所以每采样周期算术地产生数量为乐音产生单元数量的两倍的乐音波形样本。另外,在乐音产生设备1中,构成乐音产生单元的左通道和右通道之间共享一些参数。即,1型参数是要分别在左通道和右通道的每一个中单独使用的通道专用参数,并且针对左通道和右通道中的每一个被单独地存储在乐音产生器寄存器23中提供的乐音产生单元存储区域中。 另外,2型参数是要在左通道和右通道之间共享的参数,并且与左通道和右通道两者相关联地被存储在乐音产生单元存储区域中,即在左通道和右通道之间共用。也就是说,乐音产生寄存器23包括用于存储与N (等于或大于1的整数)个乐音产生单元对应的N个音色控制数据的乐音产生单元存储区域。每个音色控制数据包括左通道波形指定信息和右通道波形指定信息,其每一个都是要用于所考虑的音色的1型参数并且分别表示立体声左通道和右通道的波形数据;F(频率)数字,其是2型参数并且确定了对左通道和右通道两者而言共同的音高;以及特性控制参数,其也是2型参数。乐音产生设备1的波形存储器21已经在其中预存储了多对立体声采样的左通道和右通道波形数据(即左通道和右通道波形数据对)。针对各种音色的每一个和针对各种音高范围的每一个来预存储这样的左通道和右通道波形数据对。然而,对于不适于立体声乐音产生的音色,在波形存储器21中预存储了单声道采样的单声道波形数据。图4示出在波形存储器21中预存储的多个波形数据的示例数据组织或格式(存储分配图(memory map))。在图4所示的数据格式中,波形数据WDlm是单声道波形数据,波形数据WDkl和WD2sr是立体声波形数据对,其中波形数据WDkl是左通道波形数据,而波形数据WD2sr是右通道波形数据。类似地,波形数据WD3sl和WD3sr是立体声波形数据对, 其中波形数据WD3sl是左通道波形数据,而波形数据WD3sr是右通道波形数据。在波形存储器21中存储了多个这样的单声道波形数据和多个这样的立体声波形数据。左通道和右通道波形数据中的每一个与单声道波形数据本质上没有不同。因此,根据需要,可以仅读出左通道波形数据和右通道波形数据中的任一个作为单声道波形数据。另外,图1的相位产生部件111基于时分方式针对多个乐音产生单元的每一个产生渐进相位(progressive phase),此时,相位产生部件111通过对存储在乐音产生器寄存器23中的乐音产生单元的F数(频率数=音高信息)进行累积来对每个乐音产生单元产生乐音产生单元的左通道和右通道共同的渐进相位。响应于由控制部件122经由接收部件117a给予乐音产生单元的乐音产生开始指令,触发或开始每个乐音产生单元中的F数累积。注意,对于每个乐音产生单元,接收部件117a接收独立于其它乐音产生单元的乐音产生开始指令。另外,针对每个乐音产生单元,波形读出部件112从波形存储器21读出如下数据 左通道波形数据,其基于从相位产生部件111供给的乐音产生单元的相位和存储在乐音产生器部件23中的乐音产生单元的左通道波形指定信息;以及右通道波形数据,其基于从相位产生部件111供给的乐音产生单元的相位和存储在乐音产生器部件23中的乐音产生单元的右通道波形指定信息。波形读出部件112对左通道和右通道波形数据的这种读出操作是针对各个乐音产生单元基于时分方式而执行的。另外,针对每个乐音产生单元,控制波形产生部件116基于存储在乐音产生器部件23中的乐音产生单元的控制波形参数来产生左通道和右通道共同的并且其值随时间变化的特性控制波形。由控制波形产生部件116产生的特性控制波形被供给特性控制部件 113,并且特性控制部件113基于所供给的特性控制波形来控制左通道波形数据和右通道波形数据的乐音特性,从而形成乐音产生单元的左通道和右通道的乐音信号。针对各个乐音产生单元基于时分方式来执行这种特征控制波形产生和乐音信号形成。由控制波形产生部件116所产生的特征控制波形的示例包括用于控制乐音的音高变化的音高包络波形(音高EG波形)、用于控制乐音的音量变化的音量包络波形(音量EG波形)、用于控制乐音的频率特性变化的滤波器包络波形(滤波器EG波形)、和用于对乐音的音高和音量赋予低频调制的低频波形(LF0波形)。此外,可以通过由控制波形产生部件116产生的正在供给相位产生部件111的LFO波形为乐音信号赋予颤音(vibrato),并且可以通过正在供给特征控制部件113的LFO波形为乐音信号赋予wah-wah或者震音(tremolo)音效。一旦控制部件122通过从MIDI (乐器数字接口 )、键盘、音序器等中的任一个接收演奏信息而接收到指示新乐音产生的乐音产生命令(音符打开指令),控制部件122就执行在后面将描述的步骤Sll至S15中的用于为所指示的新乐音产生分配N个乐音产生单元的任一个的处理,而不管所指示的产生是立体声乐音产生还是单声道乐音产生。随后, 在后面将描述的步骤S16和S17,控制部件122形成在所指示的新乐音产生中使用的音色控制数据,该数据包括左通道波形指定信息和右通道波形指定信息、F数和特性控制参数, 并且将产生的音色控制数据设置(存储)到乐音产生器寄存器23的与所分配乐音产生单元对应的存储区域中。然后,控制部件12在后面所述步骤S18中指示接收部件117a开始所分配乐音产生单元的乐音产生。如果所指示的乐音产生是立体声乐音产生,则指示乐音产生单元的两个通道来开始乐音产生。从而,相位产生部件111响应于经由接收部件117a 所接收的乐音产生单元的乐音产生开始指令开始乐音产生单元的F数的累积,以产生乐音
12产生单元的左通道和右通道共同的渐进相位。随后,被提供了如此产生的渐进相位的波形读出部件112基于从相位产生部件111供给的乐音产生单元的相位和存储在乐音产生器寄存器23中的乐音产生单元的左通道波形指定信息来从波形存储器21读出一个左通道波形数据,并且基于从相位产生部件111供给的乐音产生单元的相位和存储在乐音产生器寄存器23中的乐音产生单元的右通道波形指定信息来从波形存储器21读出一个右通道波形数据。所读出的一个左通道波形数据和所读出的一个右通道波形数据中的每一个均具有根据存储在乐音产生器寄存器23中的F数从自各波形数据的基本音高(fundamental pitch) (稍后描述)平移的乐音音高。基于由控制波形产生部件116所产生的且在乐音产生期间随时间变化的特性控制波形来控制从波形读出部件112读出的左通道波形数据和右通道波形数据,从而形成了乐音产生单元的左通道和右通道各自的乐音波形样本。随后,将各个乐音产生单元的左通道乐音波形样本和右通道乐音波形样本以时分方式从特征控制部件113分别输出到立体声结构的累积(MIX)部件114的左通道部分和右通道部分,其中,在对一个采样周期内所分派并输出到左通道部分的乐音产生单元的左通道乐音波形样本进行累积的同时,对该一个采样周期内所分派并输出到右通道部分的乐音产生单元的右通道乐音波形样本进行累积。 从而,针对所有乐音产生单元而累积的左通道波形样本和右通道波形样本在等于一个采样周期的每个DAC (数字-模拟转换器)周期(即DAC 115的转换周期)从MIX部件114被输出到立体声结构的DAC 115。在立体声构造的DAC 115中,累积的左通道乐音波形样本和右通道乐音波形样本被分别转换成模拟的左通道乐音信号和右通道乐音信号。从而,从立体声结构的音响系统(放大器和扬声器)22可听地产生或发出立体声乐音信号。在图1和图2中,在相应方框内以带括号的数字表示出了乐音产生设备1中的相位产生部件111、波形读出部件112、控制波形产生部件116和特性控制部件113中各自的立体声乐音产生所需的处理时隙(即时分处理的时间间隙)的数量,其中乐音产生通道的数量设置为256,乐音产生单元的数量设置为128。即,对于相位产生部件111(其产生对于每个乐音产生单元的两个通道共同的渐进相位),相位产生所需的处理时隙的数量是128。 对于波形读出部件112 (其从波形存储器21读出针对每个乐音产生单元的两个通道的波形数据),波形数据读出所需的处理时隙的数量是256。另外,对于控制波形产生部件116(其产生对于每个乐音产生单元的两个通道共同的控制波形),控制波形产生所需的处理时隙的数量是128。对于特性控制部件113(其控制用于每个乐音产生单元的两个通道的波形数据的乐音特性),乐音特性控制所需的处理时隙的数量是256。注意,一旦对任一个乐音产生单元指示了单声道乐音产生,则波形读出部件112 基于左通道波形指定信息或者右通道波形指定信息从波形存储器21读出一个单声道波形数据。即,波形读出部件112从波形存储器21读出乐音产生单元的两个通道中仅一个通道的波形数据。在特性控制部件113中,按照由控制波形产生部件116所产生的且在乐音产生期间随时间变化的特性控制波形来控制由波形读出部件112所读出的单声道波形数据的乐音特性,从而将单声道乐音波形样本输出到MIX部件114的左通道部分和右通道部分。 如上所述,MIX部件114、DAC 115和音响系统22的每一个都以立体声方式来构造,并且特性控制部件113以基于声音平移(panning)参数的音量将来自乐音产生单元的通道之一的同一单声道乐音波形样本输出到MIX部件114的左通道部分和右通道部分。如此输出到MIX部件114的左通道部分和右通道部分的乐音波形样本与其它乐音产生单元的输出到MIX部件114的左通道部分和右通道部分的乐音波形样本一起被累积,并且得到的累积乐音波形样本从MIX部件114的左通道部分和右通道部分输出到DAC 115。随后,由立体声结构的 DAC 115在每DAC周期将左通道和右通道的累积乐音波形样本转换成经由立体声结构的音响系统22所发出或可听地产生的左通道和右通道的模拟乐音信号。在该情况下,从音响系统22以混合方式可听地产生用于立体声乐音产生的立体声信号和用于单声道乐音产生的单声道信号。如上所述,在乐音产生设备1的本实施例中,基于对于每个乐音产生单元的左通道和右通道共同的相位信号来形成两个乐音信号(即左通道乐音信号和右通道乐音信号),因此,要由相位产生部件111产生的渐进相位的数量等于乐音产生单元的数量,该数量为可同时产生的乐音的数量的一半。通过这种方式,可以减小处理量并因此减小了电路规模。由于乐音产生一般需要精确的音高控制,并且相位产生部件111产生位长度超过20 位的渐进相位,所以电路规模趋向于增大。另外,由于控制波形产生部件116基于乐音产生单元的特性控制参数产生每乐音产生单元的左通道和右通道共同的控制波形,所以要由控制波形产生部件116产生的控制波形的数量等于乐音产生单元的数量,该数量为可同时产生的乐音的数量的一半,从而,可以减小要由控制波形产生部件116执行的处理量并减小了电路规模。另外,由于用于乐音产生的通道分配是对数量为乐音产生通道数量一半的乐音产生单元(即,基于逐个乐音产生单元)而执行的,所以即使在执行截断处理的情况下, 本实施例也能减小控制部件122上的处理负担。在用于乐音产生的通道分配中,处理负担量将会根据要分配的乐音产生通道或乐音产生单元的数量而呈指数地增加。另外,由于F 数和特性控制参数也在每个乐音产生单元的两个通道之间共享,并且仅需为每个乐音产生单元设置相同的F数和特性控制参数,所以本实施例可以减少控制部件22将特性控制参数设置到乐音产生器寄存器23中所必需的时间,并从而减小乐音产生器寄存器23的尺寸或规模。另外,在乐音产生设备1的本实施例中,乐音产生设备既能执行立体声乐音产生又能执行单声道乐音产生,响应于乐音产生指令,仅需分配一个乐音产生单元,而不管所指示的乐音产生是立体声乐音产生还是单声道乐音产生。此外,对于要由其执行立体声乐音产生的每个乐音产生单元,波形读出部件112以对应于相同F数的速率从波形存储器21 读出左通道波形数据和右通道波形数据,并且由特性控制部件113按照相同特性控制参数 (或者按照基于特性控制参数的特性控制波形)来控制所读出的左通道波形数据和右通道波形数据的预定特性,从而形成了其音高和乐音特性已被控制得彼此相似的左通道乐音信号和右通道乐音信号。在该情况下,由于左通道乐音信号和右通道乐音信号是基于相同或共同的相位信号来形成的,所以要由相位产生部件111产生的渐进相位的数量等于乐音产生单元的数量,该数量为乐音产生通道的数量的一半,因此可以减小处理量,并从而减小了电路规模。另外,由于控制波形产生部件116基于每个乐音产生单元相同的特性控制参数来产生左通道和右通道共同的控制波形,因此要由控制波形产生部件116产生的控制波形的数量等于乐音产生单元的数量,该数量为可同时产生乐音的数量的一半,因此,可以减小要由控制波形产生部件116执行的处理量,从而减小了电路规模。注意,要由控制波形产生部件116产生的特性控制波形是音高包络波形(音高EG波形)、音量包络波形(音量EG波形)、滤波器包络波形(滤波器EG波形)、和低频波形(LF0波形)中的任一个。如上所述,由于在左通道和右通道之间共享F数和特性控制参数,所以要设置到乐音产生器寄存器23中用于立体声乐音产生的数据量能够小于要设置到乐音产生器寄存器23中用于单声道乐音产生的数据量的两倍。因此,可以显著减小控制部件122所需的设置时间。另外,在已经将各种参数设置到乐音产生器寄存器23中之后,仅需要对所分配的乐音产生单元给予乐音产生开始指令,而不管所指示的乐音产生是立体声乐音产生还是单声道乐音产生;即,即使在所指示的乐音产生是立体声乐音产生的情况中,也无需费心地执行控制来同时将左通道和右通道两者都置于音符打开状态下。此外,如上所述,由于在左通道和右通道之间共享F数和特性控制参数,所以,即使所指示的乐音产生是立体声乐音产生,控制部件122也仅需实时改变存储在乐音产生器寄存器23中的所考虑乐音产生单元的 F数和特性控制参数的值,而不用实时改变乐音产生单元的两个乐音产生通道的两组参数值,从而本实施例可以减小要由控制部件122执行的处理量。图1所示的本发明乐音产生设备1的本实施例是通过乐音产生集成电路来实现的。如上所述,由于可以减小一些部件(功能块)的处理量,所以即使乐音产生通道数量增加,也可以使产生乐音的乐音产生器部件20的集成电路的尺寸或规模最小化。图2是示出图1所示的乐音产生设备1的示例详细结构的框图。图2示出的乐音产生设备1执行与图1所示乐音产生设备1相同的乐音产生处理并实现相同行为和有益效果,并且由与图1相同的参考数字所表示的块通常代表与图1所示的相同的功能。在图2所示的乐音产生设备1中,如上文关于图1所述的那样,乐音产生器部件20 包括N(其是等于或大于1的整数)个乐音产生单元,每个乐音产生单元由用于执行立体声乐音产生的左通道和右通道构成。例如,如果在乐音产生器部件20中提供的乐音产生通道的数量是256,那么乐音产生单元的数量设置为乐音产生通道数量一半128。另外,为了同时产生多个乐音,乐音产生设备1构造为每采样周期基于时分方式在各个乐音产生单元中执行乐音产生处理。另外,因为在每一个乐音产生单元中的两个通道的各自一个中算术地产生乐音波形样本,所以每采样周期算术地产生数量为乐音产生单元数量的两倍的乐音波形样本。在图2所示的乐音产生设备1中,CPU(中央处理单元)10是控制部件,其执行各种有关乐音产生的程序以控制包括乐音产生设备1中的乐音产生处理在内的各种功能和处理。闪速ROM(只读存储器)11是可重写非易失性存储器,其中存储了由CPU 10执行的乐音产生处理程序和各种数据,比如音色数据。RAM(随机存取存储器)12是乐音产生设备 1中的易失性主存储器,并且在RAM 12中设置了由CPUlO使用的工作区以及其它存储区域。 控制单元13是演奏控制单元(比如键盘),并且包括各种开关,用户可以通过操作各种开关来对乐音产生设备1给出各种指令。另外,显示装置14在乐音产生之时显示各种信息。 通信I/O 15是能够从外部设备输入或接收演奏信息等的接口,并且该通信I/O 15例如具有MIDI接口的形式,用以向/从外部设备传输/接收MIDI消息。在CPU 10的控制下,乐音产生器部件20从波形存储器20读出乐音产生所需的波形数据,对所读出的波形数据执行诸如插值、包络赋予和通道累积(混合)之类的处理,并将如此处理后的波形数据输出为模拟乐音波形信号。在图2所示的示例中,从累积部件(MIX) 20i到音响系统22画出了两个箭头,以清楚地示出从累积部件(MIX) 20i传递两个立体声格式的数据到音响系统22。剩余的一个箭头表示基于时分方式传递多个信号,而不是表示仅传递一个数据。例如,对应于 1 个乐音产生单元的1 个数据基于时分方式从F数产生器(re) 20a提供到相位产生器 (PG) 20b。从乐音产生器部件20输出的乐音波形信号提供到音响系统22,从而通过音响系统22将会发出或可听地产生立体声乐音。注意,包括上述部件在内的各种部件经由总线16 相互连接。在乐音产生器20的乐音产生器寄存器23中设置了对应于1 个乐音产生单元的 1 个音色控制数据。音色控制数据每一个均由CPU 10执行响应于音符打开指令(乐音产生指令)的处理来形成,并且其被设置到乐音产生器寄存器23中与乐音产生单元相关地提供的各自的区域中。如此设置到乐音产生器寄存器23的区域中的音色控制数据包括如图 3A所示的与各个乐音产生单元有关的数据(即“乐音产生单元专用数据”)、和如图:3B所示的与乐音产生单元的左通道和右通道(即256个乐音产生通道)有关的数据(即“乐音产生通道专用数据”)。图3A中所示的乐音产生单元专用数据包括以音分(cent)值表示的音高移位数据(PQ ;包括LFO频率、PM深度、FM深度和AM深度的LFO参数(LFOPs);包括各个状态的 PEG速率和PEG水平在内的PEG参数(PEGPs);包括各个状态的FEG速率和FEG水平在内的 FEG参数(FEGPs);包括各种状态的AEG速率和AEG水平在内的AEG参数(AEGPs);包括左通道声音平移数据(PAN(L))和右通道声音平移数据(PAN(R))的声音平移数据(PANs);和表示立体声乐音产生模式和单声道乐音产生模式中的任一个的模式标志(模式(Mode))。上述的音高移位数据(PQ是用于对从波形存储器读出的波形数据的音高将要改变的量进行控制的数据,并且是以音分为度量的F数。尽管F数产生器(TO) 20a以下文将描述的与频率比成线性比例的方式来产生F数,然而音高移位数据(PQ是对要由F数产生器(re)20a 产生的F数的值进行确定的首要因素。音高移位数据(PQ具有一个音分的分辨率,并且提供插值器来平滑F数值的变化,以使得即使实时地改变F数的值也不会出现噪声。对于上述参数,附在每个参数的大写首字母缩略词末尾的小写“S”表示该参数不是单个参数,而是包括多个参数。另外,图;3B所示的与乐音产生单元的左通道或右通道有关的乐音产生通道专用数据包括包括开始地址(WQ (其为所考虑的通道的波形指定信息)、循环开始地址(LS) 和结束地址(WE)的波形地址参数(WAh);当波形数据为压缩形式时用于对波形数据的解压缩进行控制的压缩信息;以及包括用于控制循环读出的循环信息在内的其它参数。在单声道乐音产生模式下,由左通道波形指定信息来指定单声道波形数据;在单声道乐音产生模式下不使用右通道波形指定信息。在所示示例中,上述三个地址WS、LS和TO是波形存储器的绝对地址。作为替代, 可以仅使三个地址WS、LS和TO中任一个为波形存储器的绝对地址而使剩下两个地址为相对于该绝对地址的相对地址。例如,可以使循环开始地址LS为绝对地址,而使开始地址WS 和结束地址WE为相对于循环开始地址LS的相对地址。在这种情况下,可以使两个相对地址为所考虑的乐音产生单元的两个通道共同的地址,并被包括在图3A的乐音产生单元专用数据中。即,本发明采用的波形指定信息对应于三个地址WS、LS和TO中被作为波形存储器的绝对地址的至少一个地址。另外,除了对应于如图3A和图;3B所示的乐音产生单元的区域之外,乐音产生器寄存器23还包括指示每个乐音产生单元⑶开始乐音产生的乐音产生开始标志GT (⑶)的区域以及指示每个乐音产生单元GU开始释放的释放开始标志RT(GU)的区域。闪速ROM 11已经在其中存储了用于对记录在波形存储器21中的多个波形数据进行管理的多个波形管理数据,和作为乐音产生设备1中可选的多种音色的参数的多个音色数据。乐音产生设备1的本实施例是多组件(part)乐音产生器,其可以针对每个组件从多种音色之中选择一种音色并将所选音色设置为该组件的音色。随后,在乐音产生设备1中, 按照各个组件的演奏信息,利用为组件设置的各自的音色来产生乐音。图5A示出波形管理数据的数据组织或格式,图5B示出音色数据的数据组织或格式。在从波形存储器21读出的波形数据中,通过参考设置在乐音产生器组件中的音色的音色数据来选择任一个波形数据,并使用对应于所选波形数据的管理数据来从波形存储器读出所选的波形数据。图5A所示的波形管理数据是从波形存储器21读出波形数据所必须的数据,并且每个波形管理数据对应于存储在波形存储器21中的立体声波形数据对或者单声道波形数据。“WKD1”表示对应于单声道波形数据WDlm的波形管理数据,“WKD2”表示对应于包括波形数据WD2sl和波形数据WDkr的立体声波形数据对的波形管理数据。另外,“WKD3”表示对应于包括波形数据WD3s 1和波形数据WD3sr的立体声波形数据对的波形管理数据。每个波形管理数据具有相似的数据格式,而不管对应的波形数据是立体声波形数据对还是单声道波形数据,并且如关于波形管理数据WKD2详细示出的那样,每个波形管理数据包括立体声标志、第一波形地址信息(“波形地址信息1”)、第二波形地址信息(“波形地址信息 2”)、基本音高(fundamental pitch)、循环信息和压缩信息。立体声标志设置为值“ 1 ”表示相应的波形数据是立体声波形数据对,而立体声标志设置为值“0”表示相应波形数据是单声道波形数据。当为新乐音产生已经选择了其立体声标志被设置为值“1”的波形数据时,表示立体声乐音产生模式的模式标志被设置到与分配来进行该乐音产生的乐音产生单元相对应的乐音产生器寄存器区域中,而当为新乐音产生已经选择了其立体声标志被设置为值“0”的波形数据时,表示单声道乐音产生模式的模式标志被设置到与分配来进行该乐音产生的乐音产生单元相对应的乐音产生器寄存器区域中。上述第一波形地址信息(“波形地址信息1”)在立体声标志为“0”的情况下表示波形存储器21中的单声道波形数据的存储位置,而在立体声标志为“1”的情况下则表示波形存储器21中左通道波形数据的存储位置。第一波形地址信息包括单声道波形数据或者左通道波形数据的开始地址、循环开始地址和结束地址的信息。第二波形地址信息(“波形地址信息2” )在立体声标志设置为“0”的情况下是未使用信息,而在立体声标志设置为 “1”的情况下则表示右通道波形数据的存储位置的信息。第二波形地址信息包括右通道波形数据的开始地址、循环开始地址和结束地址的信息。上述的基本音高是表示在没有音高移位(即F数=1)时读出的波形数据的音高的信息。循环信息包括表示是否要执行循环读出的信息、用于校正循环部件的音高以便将循环波形的开始处的音高调节到起音(attack) 波形的结束处的音高的信息,等等。此外,压缩信息包括表示波形数据是否为压缩形式的信息、表示当波形数据为压缩形式时所使用的数据压缩方案的压缩方案信息、以及用于取消前导帧(leading frame)的压缩的压缩系数信息。在乐音产生单元的乐音产生开始时,CPU 10将这些信息设置到乐音产生器寄存器23的对应于或分派给该乐音产生单元的区域中。 通过如此设置的信息来控制波形地址产生器20c、读出及高速缓存部件20d、解码器20e等。
17
另外,如图5B所示,在闪速ROM 11中存储了多个音色的多个音色数据TD1、TD2、 TD3...。如关于音色数据TD2详细示出的那样,每个音色数据包括音色名、波形选择信息; 左通道和右通道共同的PEG参数、FEG参数、AEG参数和LFO参数;以及其它参数。上述波形选择信息是用于按照伴随乐音产生指令的音高(音符编号)和演奏强度 (速度)来选择出要用于产生与乐音产生指令对应的乐音的波形数据的信息(更具体地,用于读出波形数据的波形管理信息)。例如,响应于通过按下被提供作为控制单元13的键盘的键而产生的音符打开指令,按照伴随该音符打开指令的音符编号和速度来引用为该键盘组件设置的音色的音色数据的波形选择信息,从而选择了与一个立体声波形数据对或者单声道波形数据相对应的波形管理数据。上述的PEG参数、FEG参数和AEG参数是用于分别控制音高EG波形、滤波器EG波形和音量EG波形的参数,每个波形具有多种状态的虚线形状,并且PEG参数、FEG参数和 AEG参数中的每一个都包括各自状态的速率和电平(level)的参数以及用于按照音符编号和速度来调节一个或一些状态的速率和电平的参数。音量EG波形的多个状态例如包括五个状态,即起音(或延长(hold))、一次减弱、二次减弱、持续(sustain)和释放(release)。 根据速度来增加或降低起音(或延长)的电平。LFO参数包括以下信息用于对要产生的 LFO波形的频率进行控制的LFO频率、用于控制LFO波形的幅度以对乐音的音高进行调制的 PM深度(音高调制深度)、用于控制LFO波形的幅度以对乐音的频率特性进行调制的FM深度(滤波器调制深度)、以及用于控制LFO波形的幅度以对乐音的幅度进行调制的AM深度 (幅度调制深度)。—旦在乐音产生设备1中检测到指示乐音产生开始的新音符打开指令,CPU 10就执行在图6中以流程图示出的音符打开事件处理。在音符打开事件处理中,CPU 10首先执行乐音产生分配处理,用于分配乐音产生单元以产生对应于音符打开的新乐音,并将包括新音符打开的各种参数的音色控制数据设置到乐音产生器寄存器23 (见图3A和图;3B)的分派给该乐音产生单元的区域中。随后,响应于CPU 10对乐音产生单元的乐音产生开始标志GT的设置,乐音产生器部件20使用所分派的区域中设置的音色控制数据来在所分配的乐音产生单元中开始对应于新音符打开的乐音产生。如果此时模式标志表示立体声乐音产生模式,则从乐音产生器部件20产生立体声乐音信号并将其输出到音响系统22,而如果此时模式标志表示单声道乐音产生模式,则从乐音产生器部件20产生单声道乐音信号并将其输出到音响系统22。下面详细描述音符打开事件处理。“音符打开”是指示开始产生新乐音的指令 (MIDI消息),该音符打开具有如下参数组件编号,表示该音符打开是哪一个组件的指示 (即,该音符打开指令针对的是哪个组件);音符编号,表示要产生的乐音的音高;和速度, 表示乐音强度。例如,一旦在提供作为控制单元13的键盘上按下任一个键,则产生音符打开消息,其包括表示由键盘控制的组件的组件编号、按下的键的音符编号和表示键按下速度的速度。在多个组件的音乐片段(music piece)数据的自动演奏中,产生各个组件的音符打开消息。在一些情况下,经由通信I/O 15从外部设备接收音符打开消息。一旦检测到任一个这种音符打开消息,CPU 10就开始如图6所示的音符打开事件处理。首先,CPU 10在步骤SlO从产生的音符打开消息中取出组件编号、音符编号和速度, 并且将组件编号、音符编号和速度分别存储到RAM 12的工作区中固定的(secured)区域PT、NN和VL中。接下来,在步骤Sll执行检测操作,用于从所有乐音产生单元之中检测当前没有被分配用于乐音产生的空闲乐音产生单元,并在步骤S12对在检测操作中是否已经检测到任何空闲乐音产生单元进行确定。注意,空闲乐音产生单元表示当前未被分配用于产生任何乐音的空闲单元。如果在步骤S12确定已经检测到任何空闲乐音产生单元,则CPU 10前进到步骤S13,在此CPU 10将所检测到的空闲乐音产生单元的单元编号存储到RAM 12 的工作区中固定的区域AU中。另一方面,如果在步骤S12确定没有检测到任何空闲乐音产生单元,则CPU 10分支到步骤S14,在此CPU 10执行截断单元确定处理,以将所确定的截断乐音产生单元的单元编号存储到上述区域AU中。更具体地,在截断单元确定处理中,CPU 10从所有组件之中确定一个搜索对象组件(比如针对乐音产生具有低优先级的组件),通过该搜索对象组件来搜索截断乐音产生单元。RAM 12包括用于对在各个乐音产生单元中正在发出的乐音的组件编号、音符编号等进行记录的区域,并且CPU 10通过参考RAM 12的区域中记录的信息来检测所确定的组件中当前正在产生乐音的乐音产生单元。然后,CPU 10从检测到的乐音产生单元之中检测一个特定乐音产生单元,该特定乐音产生单元的左通道波形数据的幅度水平与音量EG波形水平之间的总和在检测到的乐音产生单元中当前可听地产生的两个通道乐音的音量水平中是最小的。这是因为,在单声道乐音产生模式下,在每个乐音产生单元的左通道中产生乐音。CPU 10将确定的截断乐音产生单元的单元编号存储到区域AU中,之后,该截断单元确定处理结束。一旦在步骤S14终止了截断单元确定处理,则CPU 10在步骤S15对在区域AU中所存储的单元编号的乐音产生单元中正在产生的左通道和右通道的乐音执行快速衰减处理(切断处理(dump process))。到目前为止,已经为新乐音的产生分配了一个乐音产生单元,并且所分配的乐音产生单元的编号已经存储在区域AU中。当步骤S13或S15的操作终止时,CPU 10前进到步骤S16,在此按照当前设置在由区域PT的组件编号所表示的组件中的音色的音色数据(图5B)的波形选择信息来选择波形数据。随后,CPU 10参考与所选波形数据对应的波形管理数据(图5A)的立体声标志,以使得如果波形数据是立体声波形数据对,则CPU 10将立体声乐音产生模式确定为乐音产生模式,而如果波形数据是单声道波形数据,则CPU 10将单声道乐音产生模式确定为乐音产生模式。然后,在步骤S17,CPU 10基于上述音色数据以及存储在区域PT、NN和VL中的组件编号、音符编号和速度来确定要用于产生新乐音的各种参数(乐音音色控制数据)的值。随后,CPU 10将所确定的参数设置到乐音产生器寄存器23的与存储在区域AU中的单元编号对应的存储区域中(图3A和图;3B)。由CPU 10设置的各种参数是除了其它参数以外还包括如下参数的音色控制数据表示确定的乐音产生模式的模式标志;在当前音色的音色数据、音符编号和速度值中按照波形选择信息而选择的波形数据的左通道波形指定信息和右通道波形指定信息;循环信息;压缩信息;包括在左通道和右通道共同的当前乐音的音色数据中、并且按照音符编号和速度值而被处理的LFO参数、PEG参数、FEG参数和AEG 参数;基于上述音符编号与基本音高之间的差的音高移位数据(以音分为度量的F数); 以及声音平移数据。然而,要注意右通道波形指定信息必须仅在立体声乐音产生模式下设置,而不需要在单声道乐音产生模式下设置(这是因为,在单声道乐音产生模式下,右通道波形指定信息没有要设置的信息)。在已经在步骤S17将音色数据设置到区域AU中之后,CPU 10进到步骤S18,在此CPU 10将值“1”写入乐音产生器寄存器23的乐音产生开始标志GT (AU)中,从而对由存储在区域AU中的单元编号所表示的乐音产生单元给出乐音产生开始指令。通过这种方式,音符打开事件处理结束,并且乐音产生器20响应于乐音产生开始指令(GT(AU) — 1)并基于所设置的音色数据来在所分配的乐音产生单元中开始产生左通道和右通道的乐音(立体声乐音产生模式)或者产生单声道乐音(单声道乐音产生模式)O本实施例特征在于,无论所指示的乐音产生是在立体声乐音产生模式中还是在单声道乐音产生模式中,在由“*”表示的步骤S12到S15的乐音产生分配处理以及步骤S18 的乐音产生开始处理中都执行实质上相同的操作;即,在立体声乐音产生模式和单声道乐音产生模式下乐音产生分配处理和乐音产生开始处理实质上是相同的。下面描述当要在乐音产生单元中产生乐音时,乐音产生器部件20的各个构件在其模式标志设置为表示立体声乐音产生模式的值的乐音产生单元(即,乐音产生单元被设置在立体声乐音产生模式下)的时隙中的行为。在乐音产生单元的时隙中,F数产生器(re) 20a被提供有来自LFO 20m的调制数据(以PM深度对幅度进行了调节的LFO波形)、来自乐音产生器寄存器23的音高移位数据 (PS)、和来自音高包络产生器(PEG) 20k的音高EG波形。在F数产生器(TO)20a中,将提供的三种数据加到一起并从音分度量转换成线性度量,从而产生乐音产生单元的左通道和右通道共同的F数。在这种情况下,上述三种数据每一个都是以音分值表示的数据,并且直接从乐音产生器寄存器23供给的音高移位数据(PQ是以音分值来对要从波形存储器21读出的波形数据被原始地记录的音高(图5A中所示的基本音高)与要产生的乐音的音高(音符编号)之间的差进行表示的数据。由F数产生器20a产生的F数是线性值数据,该数据的粗略值(rough value)由音高移位数据确定,并且基于调制数据和音高EG波形对该数据进行相对较小的调节。当要以与波形数据被原始地记录的音高相同的音高来产生乐音时, 例如,音高移位数据(PS)被设置为“0”,并且如果忽略来自LFO 20m和PEG 20k的被提供为调节值的数据,则在该情况下要由F数产生器20a产生的F数被设置为“1”。由F数产生器20a产生的F数被供给相位产生器(PG)20b。随后,在所考虑的乐音产生单元的时隙中, 相位产生器(PG) 20b对每采样周期所供给的F数进行累积,并将得到的累积值输出到波形地址产生器(WAG) 20c。更具体地,从相位产生器(PG) 20b输出到波形地址产生器(WAG) 20c 的累积值的高位构成了乐音产生单元的左通道和右通道共同的、并且设计来生成读取地址的相位的整数部分,而该累积值的低位构成该相位的小数部分。以零(“0”)为初始值,响应于经由乐音产生器寄存器23的接收部件给到乐音产生单元的乐音产生指令(GT),来开始在相位产生器20b中的F数的累积。所产生的相位的整数部分是对波形数据样本位置进行指定的数据,而小数部分是对波形数据两个相邻样本之间中间点进行指定的数据。另外,在所考虑乐音产生单元的时隙中,将包括每个状态的PEG速率和PEG水平在内的且左通道和右通道共同的PEG参数(PEGPs)从乐音产生器寄存器23供给PEG 20k。PEG 20k基于PEG参数来产生具有多个状态的、乐音产生单元的左通道和右通道共同的、并且在每个采样周期其值都发生变化的音高EG波形,并且将如此产生的音高EG波形供给TO 20a。 响应于从乐音产生器寄存器23供给的乐音产生单元的乐音产生指令(GT)来触发或开始音高EG波形的产生。通过被供给F数产生器(TO) 20a的音高EG波形,按照音高EG波形适当地对从波形存储器21读出的数据的速率进行调制,并且将音高调制效果赋予起音音高等。另外,在所考虑的乐音产生单元的时隙中,从乐音产生器寄存器23向波形地址产生器(WAG) 20c提供包括左通道波形指定信息、右通道波形指定信息、和循环信息的波形地址参数(WAPs),其中左通道波形指定信息包括左通道波形数据的开始地址、循环开始地址和结束地址,右通道波形指定信息包括右通道波形数据的开始地址、循环开始地址和结束地址。随后,波形地址产生器(WAG) 20c基于波形地址参数(WAPs)和相位的整数部分来产生用于乐音产生单元的左通道和右通道的波形地址。在已经对其设置了表示不执行循环读出的循环信息的乐音产生单元的每个通道中,产生的波形地址从由开始地址表示的样本位置到由结束地址表示的样本位置,以与相位整数部分的逐采样周期的递增(increment)速率相同的速率前进。另一方面,在已经对其设置了表示要执行循环读出的循环信息的乐音产生单元的每个通道中,产生的波形地址首先从由开始地址表示的样本位置到由结束地址表示的样本位置,以与相位整数部分的逐采样周期的递增速率相同的速率前进,并随后重复地从由循环开始地址表示的样本位置到由结束地址表示的样本位置前进。将左通道和右通道的相位的波形地址(整数部分)供给读出及高速缓存部件20d,而将左通道和右通道的相位的小数部分供给样本间插值部件(INT) 20f。波形存储器21中已经记录了压缩波形数据和未压缩(即线性)波形数据,并且,在所考虑的乐音产生单元的左通道和右通道的时隙中,读出及高速缓存部件20d读出左通道和右通道各自的波形数据的样本。如果读出的左通道波形数据和右通道波形数据是压缩波形数据,则由解码器(DEC)20e在所考虑的乐音产生单元的左通道和右通道的时隙中对其进行扩展,使得从解码器(DEC)20e输出原始的左通道波形数据样本和原始的右通道波形数据样本。另一方面,如果读出的左通道波形数据和右通道波形数据是线性波形数据,则它们在左通道和右通道的时隙中经过解码器 (DEC)20e以从解码器(DEC) 20e输出为左通道波形数据样本和右通道波形数据样本。下面描述在波形存储器21中记录的压缩波形数据。将包括连续样本的波形数据分割成多个帧,并基于逐帧的方式对波形数据执行长度可变的压缩处理。以波形存储器21 的预定数量j的连续地址来存储每个帧的压缩波形数据,其中在每个地址处可以存储η位数据。在j个连续地址的每一个处,在η个位中的m个位处连续地存储压缩波形数据的k 个样本(其位数在帧内被固定为常数),而在剩下的即(n-m)个位处存储包括压缩信息在内的辅助信息。因此,当要从波形存储器21读出波形数据时,读出及高速缓存部件20d在所考虑乐音产生单元左通道和右通道的每个时隙中产生存储器地址,该存储器地址随着从波形地址产生器(WAG) 20c供给的波形地址每采样周期前进k而递增或前进一个地址,读出及高速缓存部件20d以产生的存储器地址对波形存储器21进行访问来读出η位数据,并且从所读出的η位数据取出(n-m)位数据,从而输出包括压缩信息在内的辅助信息。另外,读出及高速缓存部件20d从读出的η位数据取出m位数据并将读出的m位数据临时存储到高速缓冲存储器中。随后,在所考虑乐音产生单元的左通道和右通道的时隙中,解码器(DEC)20e 利用波形地址对高速缓冲存储器进行访问来顺序地读出压缩波形数据的k个样本,并基于压缩信息来对顺序读出的压缩波形数据的样本执行扩展处理,从而恢复原始波形数据。要用来扩展压缩波形数据的压缩信息是恰在当前读出的帧之前读出的帧中先前存储的压缩信息。因此,在还没有这种压缩信息的初始阶段,利用从乐音产生器寄存器23 供给的初始解码器值来扩展压缩波形数据。参见日本专利No. 3912304对压缩波形数据的详细描述。在乐音产生单 元的左通道和右通道的时隙的相应的一个中,从解码器(DEC)20e 输出的、没有从线性数据形式转换的或者已经扩展之后的、左通道和右通道中的每一个的波形数据的最新两个样本被供给样本间插值部件(INT) 20f。在乐音产生单元的左通道和右通道的每个时隙中,样本间插值部件(INT) 20f基于已经从波形地址产生器(WAG)20c供给的乐音产生单元的相位的小数部分来对左通道或者右通道的两个样本执行插值处理,从而提供左通道或右通道的插值波形数据。注意,在要由样本间插值部件(INT) 20f执行的四点插值的情况下,从解码器(DEC)20e供给左通道和右通道中的每一个的最新四个样本,并且样本间插值部件(INT) 20f基于相位的小数部分对左通道和右通道中的每一个的这四个样本执行插值处理,从而提供了左通道和右通道中的每一个的插值波形数据。将从样本间插值部件(INT) 20f输出的左通道和右通道的插值波形数据供给数字控制滤波器(DCF) 20g,其中插值波形数据的高频成分被衰减。即,在乐音产生单元的左通道和右通道的时隙中,数字控制滤波器(DCF) 20g被提供有来自LFO 20m的调制数据(以FM 深度对幅度进行了调节的LFO波形)和来自滤波器包络产生器(FEG) 20η的滤波器EG波形,并且按照所供给的这两个数据来控制数字控制滤波器(DCF) 20g的截止频率和Q (选择性),从而左通道和右通道的波形数据各自的高频成分被衰减。另外,在乐音产生单元的时隙中,向滤波器包络产生器(FEG)20n提供有左通道和右通道共同的包括各个状态的FEG速率和FEG水平在内的FEG参数(FEGPs)。滤波器包络产生器(FEG) 20η基于所供给的FEG参数(FEGPs)来产生左通道和右通道共同的、其值每采样周期都变化的、多个状态的滤波器 EG波形,并且将如此产生的滤波器EG波形供给数字控制滤波器(DCF) 20g。响应于从乐音产生器寄存器23供给的乐音产生指令(GT)来触发或开始滤波器EG波形产生。将从数字控制滤波器(DCF) 20g输出的左通道和右通道的处理后的波形数据供给数字控制放大器(DCA) 20h,其中对左通道和右通道各自的波形数据的音量进行了控制。 更具体地说,在所考虑的乐音产生单元的左通道和右通道的时隙中,向数字控制放大器 (DCA) 20h提供有来自LFO 20m的调制数据(以AM深度对幅度进行了调节的LFO波形)、来自音量包络产生器(AEG) 20p的音量EG波形、和来自乐音产生器寄存器23的声像定位声音平移数据(PANs)。因此,按照从LFO 20m供给的调制数据、音量EG波形和左通道声音平移数据(PAN(L))来控制左通道波形数据的音量,从而将所得的音量受控的左通道波形数据输出到MIX 20i的左通道部分中。类似地,按照从LFO 20m供给的调制数据、音量EG波形和右通道声音平移数据(PAN(R))来控制右通道波形数据的音量,从而将所得的音量受控的右通道波形数据输出到MIX 20i的右通道部分中。通过该方式,在所考虑的乐音产生单元的时隙中,已经按照声音平移数据(PANs)进行了声像定位的左通道波形数据(即左通道的乐音数据)和右通道波形数据(即右通道的乐音数据)被输出到MIX 20i的左通道和右通道部分中。另外,在乐音产生单元的时隙中,向音量包络产生器(AEG) 20p供给了来自乐音产生器寄存器23的、左通道和右通道共同的、包括各个状态的AEG速率和AEG水平在内的AEG参数(AEGPs)。因此,音量包络产生器(AEG) 20p基于所供给的AEG参数(AEGPs)产生了左通道和右通道共同的、其值每个采样周期都发生改变的、多个状态的音量EG波形, 并且将如此产生的音量EG波形供给数字控制放大器(DCA) 20h。响应于从乐音产生器寄存器23供给的乐音产生指令(GT)来触发或开始音量EG波形产生。
在一个DAC周期内,在各个乐音产生单元的时隙中将波形数据的样本输出到MIX 20i的左通道部分和右通道部分。因此,在一个DAC周期内各个乐音产生单元的时隙中,MIX 20i在左通道和右通道之间独立地将供给左通道部分的波形数据的样本进行累积以及将供给右通道部分的波形数据的样本进行累积。随后,每个DAC周期都将包括左通道样本和右通道样本的立体声波形数据(其是针对所有乐音产生单元的累积结果)从MIX 20i输出到 DAC 20J0每个DAC周期,DAC 20 j都将供给的波形数据转换成模拟立体声波形信号,并将如此转换后的左通道和右通道的模拟立体声波形信号供给立体音响系统22,从而经由音响系统22发出或可听地产生立体声波形信号。另外,在乐音产生单元的时隙中,从乐音产生器寄存器23向LF020m供给左通道和右通道共同的包括LFO频率、PM深度、FM深度和AM深度在内的LFO参数(LFOPs)。因此, LFO 20m产生了左通道和右通道共同的、其频率由LFO频率表示的LFO波形,并按照PM深度、FM深度和AM深度对如此产生的LFO波形进行幅度控制,随后将其供给TO 20a、DCF 20g 和DCA 20h。响应于从乐音产生器寄存器23供给的乐音产生指令(GT)来触发或开始LFO 波形产生。可以通过正在供给DCF 20g的LFO波形来对乐音信号赋予wah-wah效果,并且可以通过正供给DCA 20h的LFO波形对乐音信号赋予震音效果。如从前文可看出,在图1的构造中的相位产生部件111相当于F数产生器(re) 20a 和相位产生器(PG)20b,波形读出部件112相当于波形地址产生器(WAG) 20c、读出及高速缓存部件20d、解码器(DEC) 20e和样本间插值部件(INT) 20f,特性控制部件113相当于数字控制滤波器(DCF) 20g和数字控制放大器(DCA) 20h,并且控制波形产生部件116相当于PEG 20k、LFO 20m、滤波器包络产生器(FEG) 20η和音量包络产生器(AEG) 20ρ,它们在图2中示出为被虚线矩形框围绕,并且在乐音产生期间产生随时间变化的控制波形。另外,控制部件 122相当于CPU 10。上面已经针对在乐音产生单元的时隙中产生立体声乐音的情况给出了关于乐音产生器部件20的各种构件的行为的描述,其中乐音产生单元的模式标志表示立体声乐音产生模式(即,乐音产生单元设置在立体声乐音产生模式下)。注意,波形存储器21已经在其中记录了针对各种音色的每一个和针对各种音高范围的每一个的单声道波形数据和立体声波形数据。因此,当要在乐音产生设备1的给定乐音产生单元中产生乐音,并且如果已经选择了立体声波形数据作为要从波形存储器21输出的波形数据时,那么对该乐音产生单元设置表示立体声乐音产生模式的模式标志,从而将在乐音产生单元的时隙中产生立体声乐音。当要在乐音产生设备1的给定乐音产生单元中产生乐音,并且如果已经选择了单声道波形数据作为要从波形存储器21输出的波形数据时,那么对该乐音产生单元设置表示单声道乐音产生模式的模式标志,从而将在乐音产生单元的时隙中产生单声道乐音。要从波形存储器21读出的波形数据是按照设置的音色、音符编号、速度等选择的波形数据, 并且考虑各种因素将这样的波形数据准备为立体声波形数据对或者单声道波形数据,各种因素比如有关于音色是否为允许听众感知或识别立体声效果的音色的因素;针对该音色的音高范围和强度的演奏频率;和由于波形存储器的总容量造成的限制。下面描述在给定乐音产生单元中的乐音产生器部件20的各个构件的行为,其中该给定乐音产生单元的模式标志被设置为表示单声道乐音产生模式的值。—旦在乐音产生设备1中检测到新音符打开事件指令,CPU 10执行乐音产生分配处理,用于分配乐音产生单元以产生对应于音符打开的新乐音,并将图3A和图:3B所示的新音符打开的各种参数设置到乐音产生器寄存器23中的被分派给该乐音产生单元的区域中。尽管在该情况中模式标志表示单声道乐音产生模式并且音符打开指示单声道乐音产生,但还是分配了两个通道的乐音产生单元。虽然已经在上文将本实施例描述为通过使用乐音产生器部件20中提供的各个乐音产生单元的两个通道中的左通道的各种资源来执行单声道乐音产生,但是,也可以使用右通道的各种资源来执行单声道乐音产生。—旦将各种参数设置到乐音产生器寄存器23中被分派给分配了新音符打开的那个乐音产生单元的区域中,并且向所分配的乐音产生单元指示乐音产生开始,F数产生器 (FG) 20a就如要产生立体声乐音的情况那样在乐音产生单元的时隙中产生F数,并且相位产生器(PG) 20b如要产生立体声乐音的情况那样在乐音产生单元的时隙中每采样周期累积F数并产生包括整数部分和小数部分的渐进相位,以用于产生读取地址,从而将所产生的相位输出到波形地址产生器20c。在乐音产生单元的左通道的时隙中,波形地址产生器(WAG) 20c基于波形地址参数(WAPs)的左通道波形指定信息和循环信息以及相位的整数部分来产生乐音产生单元的左通道的波形地址。从波形地址产生器(WAG) 20c输出的左通道的波形地址(整数部分) 被供给读出及高速缓存部件20d,从而从波形存储器21读出单声道波形数据的样本。将如此读出的单声道波形数据供给解码器20e,其中在乐音产生单元的左通道的时隙中对该单声道波形数据进行扩展,从而从解码器20e输出原始单声道波形数据的样本。将从解码器(DEC) 20e输出的单声道波形数据最新两个样本供给样本间插值部件(INT) 20f。在乐音产生单元的左通道的时隙中,样本间插值部件(INT) 20f基于已经从波形地址产生器 (WAG) 20c供给的乐音产生单元的相位的小数部分来对这两个样本执行插值处理,从而提供插值波形数据。从样本间插值部件(INT) 20f输出的单声道乐音产生单元的插值后的单声道波形数据被供给数字控制滤波器(DCF) 20g,其中在插值波形数据的时隙中按照与来自 LFO 20m的单声道数据和来自滤波器包络产生器(FEG) 20η的滤波器EG波形相对应的截止频率和Q(选择性)来衰减插值波形数据的高频率成分。因此,输出了其高频成分已被调节的单声道波形数据。如在立体声乐音产生中那样,PEG 20k、FEG 20n、AEG 20ρ和LFO 20m 在乐音产生单元的时隙中产生音高EG波形、滤波器EG波形、幅度EG波形和LFO波形。从数字控制滤波器(DCF) 20g输出的单声道波形数据被供给数字控制放大器 (DCA) 20h,其中在乐音产生单元的左通道和右通道的时隙中控制单声道波形数据的音量。 对数字控制放大器(DCA) 20h供给来自LFO 20m的调制数据、来自音量包络产生器(AEG) 20p 的音量EG波形和来自乐音产生寄存器23的声音平移数据(PANs)。在该情况下,按照来自 LFO 20m的调制数据、音量EG波形和左通道的声音平移数据(PAN(L))来控制单声道波形数据的音量,并随后将单声道波形数据输出到MIX 20i的左通道部分;同时,按照来自LFO 20m的调制数据、音量EG波形和右通道的声音平移数据(PAN(R))来控制单声道波形数据的音量,并随后将单声道波形数据输出到MIX 20i的右通道部分。通过这种方式,在所考虑的乐音产生单元的时隙中,将已经按照声音平移数据(PANs)进行了声像定位的单声道波形数据作为左通道乐音数据和右通道乐音数据输出到MIX 20i的左通道部分和右通道部分。在MIX 20i中,在该乐音产生单元的时隙中供给MIX 20i的左通道部分的单声道波形数据样本与在其它乐音产生单元的时隙中供给左通道部分的波形数据样本相累积,而
24在该乐音产生单元的时隙中供给MIX 20i的右通道部分的单声道波形数据样本与在其它乐音产生单元的时隙中供给右通道部分的波形数据样本相累积。从而,在一个DAC周期内针对所有乐音产生单元而累积的左通道和右通道的波形数据样本被从MIX 20i输出到DAC 20J0每一 DAC周期,DAC 20j都将所供给的波形数据样本转换成模拟立体声波形信号,并将左通道和右通道的如此转换后的模拟立体声波形信号供给音响系统22。因此,经由音响系统22可听地产生或发出这样的立体声波形信号,该立体声波形信号是已经按照声音平移数据(PANs)进行了声像定位的立体声乐音产生单元的立体声信号和单声道乐音产生单元的单声道信号的混合。在设置在单声道乐音产生模式下的乐音产生单元中,如前所述,波形地址产生器 20c、读出及高速缓存部件20d和解码器20e (每一个都具有可用于两个(左和右)通道的资源)仅用于两个通道中之一的处理中,因而可用于剩下一个通道的资源没有被使用。因此,如果布置来使得所有这些资源都被转用来在乐音产生单元的每个采样周期读出单声道波形数据样本,那么每采样周期就可以读出并解码样本数量两倍的样本,并因此在单声道乐音产生中,在单声道乐音产生期间可以执行普通向上音高移位两倍的向上音高移位。图7是示出CPU 10响应于指示乐音衰减开始的音符关闭指令而执行的音符关闭事件处理的示例操作顺序的流程图。音符关闭指令是指示乐音衰减开始的MIDI消息,并且伴随着如下参数表示该音符关闭指令是哪个组件的指令(即该音符关闭指令针对哪个组件)的组件编号,和表示要开始衰减的乐音的音高的音符编号。例如,一旦在提供为控制单元13的键盘上释放了到目前为止一直被按下的键中的任一个时,就产生了音符关闭消息, 该信息包括表示由键盘控制的组件的组件编号和释放的键的音符编号。在一些情况中,经由通信接口 15从外部设备接收音符关闭指令。一旦检测到音符关闭指令,CPU 10启动图7所示的音符关闭事件处理。首先,在步骤S20将已经被指示了音符关闭的乐音的组件编号存储到RAM 12的工作区中固定的区域PT中,并且将乐音的音符编号存储到工作区中固定的区域NN中。在下一步骤S21,执行操作来从乐音产生器部件20中当前正在产生乐音数据的所有乐音产生单元之中检测一个特定乐音产生单元,该特定乐音产生单元当前正在产生由区域PT的组件编号所指示的组件中的区域NN的音符编号所指示的音高的乐音。一旦检测到这样的特定乐音产生单元,则将检测到的乐音产生单元的单元编号存储到RAM 12的工作区中固定的区域DU中。随后, 在步骤S22,CPU 10确定是否已经检测到当前正在产生由区域PT的组件编号所指示的组件中的区域NN的音符编号所指示的音高的乐音的这样一个特定乐音产生单元。如果确定已经检测到这样一个特定乐音产生单元,则CPU 10前进到步骤S23。在步骤S23,CPU 10将值“1”写入衰减开始标志RT(DU),从而对由区域DU中存储的单元编号所指示的乐音产生单元发送释放开始指令。通过该方式,音符关闭事件处理结束,从而乐音产生器部件20的音高包络产生器(PEG) 20k、滤波器包络产生器(FEG) 20η和音量包络产生器(AEG) 20ρ响应于释放开始指令(RT(DU) — 1)来将当前正在所考虑乐音产生单元的时隙中产生的音高EG 波形、滤波器EG波形和幅度EG波形全部切换到释放状态。已经切换到释放状态的幅度EG 波形以从乐音产生器寄存器23供给的释放状态AEG速率从当前水平逐渐向零水平(--) 减小,从而当前正在左通道和右通道的时隙中产生的左通道和右通道的乐音数据的音量逐渐向零水平衰减。如果在步骤S22确定没有检测到当前正在产生由区域PT的组件编号所指示的组件中的区域NN的音符编号所指示的音高的乐音的乐音产生单元,则CPU 10在没有执行任何其它操作的情况下终止音符关闭事件处理。另外,如果已经检测到已经被充分衰减的任何乐音产生单元,则CPU 10执行释放操作用以将所检测到的乐音产生单元释放为前文所述的“空闲乐音产生单元”。注意,本实施例特征在于,在步骤S23执行的衰减开始指令操作(以标记“*”表示)对于立体声乐音产生模式和单声道乐音产生模式实质上是相同的。图8是在乐音产生期间CPU 10响应于音高折曲命令的检测而执行的音高折曲处理的流程图。音高折曲命令是使得一个组件中正在产生的一个或多个乐音的音高实时地变化的命令(MIDI消息),并且音高折曲命令伴随着如下参数表示该音高折曲命令针对的是组件中的哪一个的组件编号,和表示音高改变量的折曲量。例如,一旦操作了被提供为演奏控制单元13的音高折曲操纵轮,就产生表示由音高折曲操纵轮控制的组件的组件编号和包含了与操作量对应的折曲量的音高折曲命令。在一些情况中,经由通信接口 15从外部设备接收音高折曲命令。一旦检测到这样的音高折曲命令,就开始图8的音高折曲处理。首先,在步骤S30, 将伴随该音高折曲命令的组件编号和折曲量分别存储到RAM 12的工作区中固定的区域PT 和PV中。随后,在步骤S31,指定1 个乐音产生单元中的第一或者前端(leading-end) 乐音产生单元,并且将所指定的乐音产生单元的单元编号存储到区域CU中。随后,在步骤S32,CPU 10执行操作来用于以存储在区域CU中的单元编号开始(即,以从存储在区域 CU中的单元编号的乐音产生单元到最末或后端乐音产生单元的方向)从乐音产生单元之中检测出当前正在形成存储在区域PT中的组件编号的乐音数据的特定乐音产生单元。如果检测到了当前正在形成存储在区域PT中的组件编号的乐音数据的这样一个乐音产生单元,则将所检测到的乐音产生单元的单元编号存储到RAM 12的工作区中固定的区域DU中。 随后,在步骤S33对是否已经检测到当前正在形成存储在区域PT中的组件编号的乐音数据的乐音产生单元作出确定,并且,当在步骤S33作出肯定(是)的确定时,CPU 10继续前进到步骤S34。在步骤S34,基于在由乐音产生器寄存器23的区域DU中存储的单元编号所指示的乐音产生单元中正在产生的乐音的音符编号和存储在区域PV中的折曲量,来改变该乐音产生单元的左通道和右通道共同的音高移位的值PS(DU)。一旦完成步骤S34的操作,CPU 10进到步骤S35以将存储在区域DU中的单元编号增加1,并将增加后的单元编号存储到区域⑶中,之后返回步骤S32。在步骤S32,CPU 10又执行如下检测操作以存储在区域⑶ 中的增加1后的单元编号的乐音产生单元开始,从乐音产生单元之中检测出当前正在形成存储在区域PT中的组件编号的乐音数据的特定乐音产生单元。如果检测到了当前正在形成存储在区域PT中的组件编号的乐音数据的这样一个乐音产生单元,则将所检测到的乐音产生单元的单元编号存储到区域DU中,并随后执行步骤S33及其后的操作。通过重复执行从步骤S32至步骤S35的操作,检测出了当前正在形成存储在区域PT中的组件编号的乐音数据的所有乐音产生单元,并且基于存储在区域PV中的折曲量改变了所检测到的每个乐音产生单元的左通道和右通道共同的音高移位的值PS(DU)。当已经检测出当前正在形成存储在区域PT中的组件编号的乐音数据的所有乐音产生单元,并且在步骤S33已经确定当前不存在更多的正在形成存储在区域PT中的组件编号的乐音数据的乐音产生单元时,音高折曲时间处理结束。作为上述音高折曲事件处理的结果,按照音高折曲命令所指示的折曲量来改变(折曲)由音高折曲命令指示的组件编号的所有乐音数据的音高。注意,本实施例特征在于,在步骤S34执行的音高变化操作(以标记“*”表示)对于立体声乐音产生模式和单声道乐音产生模式实质上是相同的。如上所述,不管受控乐音数据是以单声道方式还是立体声方式产生,对产生受控乐音数据的乐音产生单元都执行音符打开事件处理、音符关闭事件处理和音高折曲事件处理。因为乐音产生单元的部分资源保持未使用,所以单声道乐音产生表面上看起来涉及大量浪费。但是,考虑到正在增加的使用高质量立体声乐音的音色的当前趋势,实际上资源并没有太大浪费,因此,减小了 CPU 10的负担的优点大大超过了资源浪费的缺点。另外,在乐音产生设备的上述实施例中,单独地针对乐音产生单元的每一个来设置立体声乐音产生模式或者单声道乐音产生模式。通过这种布置,使得设置在立体声乐音产生模式下的乐音产生单元和设置在单声道乐音产生模式下的乐音产生单元能够以并行的方式产生乐音数据。尽管上面已经关于其中在波形存储器中还已记录了压缩波形数据的情况而描述了本发明的乐音产生设备的实施例,然而本发明不限于此,波形存储器还可以仅记录非压缩波形数据。在这样的情况下,可以省却执行波形扩展处理的解码器20e。另外,尽管上面已经关于其中在乐音产生设备中采用的乐音产生通道数量为256的情况而描述了本发明的乐音产生设备的实施例,然而本发明不限于此,乐音产生通道的数量可以是多于或少于 256。无论哪种情况,重要的是乐音产生单元的数量为乐音产生通道数量的一半。另外,在上述实施例中,具有可用于立体声二通道的资源的构件(功能块)的每一个,比如波形地址产生器(WAG) 20c、读出及高速缓存部件20d、解码器(DEC)20e、样本间插值部件(INT) 20f、数字控制滤波器(DCF) 20g等,都被构造成在设置为单声道乐音产生模式下的乐音产生单元的时隙中使用左通道资源来对单声道波形数据执行处理。然而,具有可用于立体声二通道的资源的上述构件(功能块)的每一个还可以被修改为使用右通道资源来对单声道波形数据执行处理。另外,在乐音产生设备的实施例中执行的截断单元确定处理被描述为基于当前正在产生搜索对象组件的乐音的乐音产生单元的左通道音量水平来确定要被截断的乐音产生单元。作为替代,可以基于左通道和右通道中任一个的音量水平比左通道和右通道中另一个的音量水平大的那个通道的音量水平来确定要被截断的乐音产生单元。此外,在实施例中执行的截断单元确定处理被描述为以不管所考虑的乐音产生单元是处于释放开始之前的阶段还是处于释放开始之后的阶段的方式来确定要被截断的乐音产生单元。作为替代,可以将其中已经开始了释放的乐音产生单元确定为具有更高优先级的要被截断的乐音产生单元。另外,虽然乐音产生设备的实施例被描述为首先将搜索范围缩小到特定的组件, 然后基于当前正在产生特定组件的乐音的乐音产生单元的音量水平来确定要被截断的乐音产生单元,但是,可以省却该缩小搜索范围的操作,并且可以基于当前正在产生所有组件的乐音的乐音产生单元的音量水平来确定要被截断的乐音产生单元。尽管在上述实施例中CPU 10被构造成将音高移位数据(PQ (其为以音分度量表示的F数)设置到乐音产生器寄存器23中,然而CPUlO可以构造成将以线性度量表示的F 数设置到乐音产生器寄存器23中。在这样的情况下,F数产生器20a无需将CPU 10设置的F数从音分度量转换成线性度量。但是,由于在F数产生器20a中采用的用于将来自CPU 10的F数、来自音高包络产生器(PEG) 20k的音高EG和来自LFO 20m的调制数据进行合成的结构将会很复杂,所以从设备设计角度看,存储以线性度量代表的F数是不合适的。另外,尽管上面将响应于音高折曲命令的控制描述为用于对控制参数的值进行实时控制的控制示例,然而本发明中执行的实时控制不限于此。例如,可以响应于用于实时控制音量的表达(expression)命令、用于通过LFO对幅度之类的调制深度进行实时控制的调制深度命令、用于实时控制截止频率的参数改变命令等来执行实时控制。本申请基于如下文献并要求其优先权2010年8月3日提交的JP PA 2010-174517、2010 年 8 月 3 日提交的 JP PA 2010-174518、和 2010 年 8 月 3 日提交的 JP PA 2010-174519。优先权申请的公开(包括其附图、权利要求及其说明书)整体通过引用结合于此。
权利要求
1.一种乐音产生设备,包括波形存储器(21),其中存储了多个立体声波形数据,每个立体声波形数据均包括左通道波形的波形数据和右通道波形的波形数据;乐音产生器(111,112,113,116),其包括N个乐音产生单元(111,112,113,116),N是等于或大于1的整数,每个乐音产生单元从所述波形存储器读出左通道和右通道的波形数据,并基于读出的波形数据产生左通道和右通道的乐音波形;寄存器,用于存储针对N个乐音产生单元的控制数据,针对每个乐音产生单元的控制数据包括左通道波形信息、右通道波形信息、控制乐音音高的频率数和用于控制乐音特性的特性控制参数,所述左通道波形信息指定所述波形存储器中的左通道波形的波形数据,所述右通道波形信息指定所述波形存储器中的右通道波形的波形数据;以及控制器(122,10),其将控制数据设置给所述寄存器以控制由所述乐音产生器进行的乐音产生,其中响应于指示产生新乐音的乐音产生命令,所述控制器(122,10)适用于 (i)分配N个乐音产生单元之一用于产生由乐音产生命令所指示的新乐音(S11-S15);( )产生新乐音的控制数据(S17),所述控制数据包括要用于产生所述新乐音的左通道波形信息、右通道波形信息、频率数以及特性控制参数,并且将产生的乐音控制数据设置到所述寄存器中,作为针对所分配的乐音产生单元的控制数据;以及(iii)对所分配的乐音产生单元给予乐音产生开始指令(S18),并且其中通过每一个乐音产生单元对由所述控制器给予所述一个乐音产生单元的乐音产生开始指令进行响应,所述乐音产生器(111,112,113,116)适用于(i)以对应于存储在所述寄存器中的针对所述一个乐音产生单元的频率数的速率,从所述波形存储器读出分别由存储在所述寄存器中的针对所述一个乐音产生单元的左通道波形信息和右通道波形信息指定的左通道波形的波形数据和右通道波形的波形数据,从而根据频率数平移左通道波形的波形数据的乐音音高和右通道波形的波形数据的乐音音高; 以及( )基于存储在所述寄存器中的针对所述一个乐音产生单元的特性控制参数,控制读出的左通道波形的波形数据的乐音特性和读出的右通道波形的波形数据的乐音特性,从而产生左通道的乐音波形和右通道的乐音波形。
2.根据权利要求1所述的乐音产生设备,其中所述乐音产生器包括相位产生器(111, 20b),该相位产生器针对N个乐音产生单元中的每一个乐音产生单元,对存储在所述寄存器中的针对所述乐音产生单元的频率数进行累积,从而在所述乐音产生单元中产生左通道和右通道共同的渐进相位,并且其中,响应于由所述控制器给予一个乐音产生单元的乐音产生开始指令,所述相位产生器开始对针对所述一个乐音产生单元的频率数进行累积。
3.根据权利要求2所述的乐音产生设备,其中所述乐音产生器还包括波形读取器 (112,20c, 20d, 20f),该波形读取器针对N个乐音产生单元中的每一个乐音产生单元,基于由所述相位产生器供给的针对所述乐音产生单元的渐进相位和存储在所述寄存器中的针对所述乐音产生单元的左通道波形信息来从所述波形存储器读出左通道波形的波形数据,并且基于针对所述乐音产生单元的渐进相位和存储在所述寄存器中的针对所述乐音产生单元的右通道波形信息来从所述波形存储器读出右通道波形的波形数据。
4.根据权利要求3所述的乐音产生设备,其中所述乐音产生器还包括特性控制器 (113,116,20g, 20h, 20k, 20m, 20n, 20p),该特性控制器针对N个乐音产生单元中的每一个乐音产生单元,基于存储在所述寄存器中的针对所述乐音产生单元的特性控制参数来控制由所述波形读取器所读出的左通道波形的波形数据的乐音特性和右通道波形的波形数据的乐音特性,从而产生针对所述乐音产生单元的左通道和右通道各自的乐音信号。
5.根据权利要求1-4中任一项所述的乐音产生设备,其中所述特性控制参数是用于产生控制波形的参数,并且所述乐音产生器包括控制波形产生器(116,20k, 20m, 20η, 20ρ),该控制波形产生器针对N个乐音产生单元中的每一个乐音产生单元,基于存储在所述寄存器中的针对所述乐音产生单元的特性控制参数来产生所述乐音产生单元中的左通道和右通道共同的、且其值随时间变化的控制波形,并且其中所述乐音产生器针对N个乐音产生单元的每一个乐音产生单元,基于由所述控制波形产生器针对所述乐音产生单元所产生的控制波形,来控制左通道波形的波形数据的乐音特性和右通道波形的波形数据的乐音特性。
6.一种乐音产生设备,包括波形存储器(21),其中存储了多个立体声波形数据和多个单声道波形数据,每个立体声波形数据均包括左通道波形的波形数据和右通道波形的波形数据,每个单声道波形数据均包括单声道波形的波形数据;乐音产生器(111,112,113,116),其包括N个乐音产生单元(时隙),Ν是等于或大于1 的整数,每个乐音产生单元以通过针对所述乐音产生单元的模式标志所表示的立体声模式或单声道模式进行操作,以立体声模式操作的乐音产生单元从所述波形存储器读出左通道和右通道的波形数据并基于读出的波形数据产生左通道和右通道的乐音波形,以单声道模式操作的乐音产生单元从所述波形存储器读出一个通道的波形数据并基于读出的波形数据产生该一个通道的乐音波形;寄存器(23),用于存储针对N个乐音产生单元的控制数据,针对每个乐音产生单元的控制数据包括模式标志、第一波形信息、第二波形信息、频率数和特性参数;以及控制器(122,10),其将控制数据设置给所述寄存器以控制由所述乐音产生器进行的乐音产生,其中响应于指示产生新乐音的乐音产生命令,所述控制器(122,10)适用于 (i)分配N个乐音产生单元之一用于产生由乐音产生命令所指示的新乐音 (S11-S15);( )确定由乐音产生命令指示要产生的新乐音是立体声的还是单声道的(S16); (iii-a)如果新乐音是立体声的,则针对该新乐音产生控制数据(S17),该控制数据包括表示立体声模式的模式标志、要用于新乐音产生的第一波形信息、第二波形信息、频率数和特性参数,并且将所产生的控制数据设置到所述寄存器中作为针对所分配的一个乐音产生单元的控制数据;(iii-b)如果新乐音是单声道的,则针对该新乐音产生控制数据(S17),该控制数据包括表示单声道模式的模式标志,要用于该新乐音产生的第一波形信息、频率数和特性参数,并且将所产生的控制数据设置到所述寄存器中作为针对所分配的一个乐音产生单元的控制数据;以及(iv)对所分配的一个乐音产生单元给予乐音产生开始指令(S18),并且其中通过每一个乐音产生单元对由所述控制器给予所述一个乐音产生单元的乐音产生开始指令进行响应,所述乐音产生器(111,112,113,116)适用于(a)如果存储在所述寄存器中的针对所述一个乐音产生单元的模式标志表示立体声模式,则(a-i)以由所述寄存器中的针对所述一个乐音产生单元的频率数所表示的速率,从所述波形存储器读出由所述寄存器中的针对所述一个乐音产生单元的第一波形信息所指定的左通道或右通道波形的波形数据,以及由所述寄存器中的针对所述一个乐音产生单元的第二波形信息所指定的右通道或左通道波形的波形数据;(a-ii)基于所述寄存器中的针对所述一个乐音产生单元的特性控制参数,控制所读出的左通道波形的波形数据的乐音特性和所读出的右通道波形的波形数据的乐音特性,从而产生左通道的乐音波形和右通道的乐音波形;(b)如果存储在所述寄存器中的针对所述一个乐音产生单元的模式标志表示单声道模式,则(b-i)以由所述寄存器中的针对所述一个乐音产生单元的频率数所表示的速率,从所述波形存储器读出由所述寄存器中的针对所述一个乐音产生单元的第一波形信息所指定的单声道波形数据;以及(b-ii)基于所述寄存器中的针对所述一个乐音产生单元的特性控制参数,控制所读出的单声道波形的波形数据的乐音特性,从而产生单声道乐音波形。
7.根据权利要求6所述的乐音产生设备,其中响应于指定正在产生的乐音的频率数的值改变的控制命令,所述控制器(122,10)还适用于从所述N个乐音产生单元中识别出当前正在产生要按照控制指令来控制的乐音的一个乐音产生单元(S31-S33,S35);以及将存储在所述寄存器中的针对被识别出的乐音产生单元的频率数的值改变为由控制命令所指定的值(S34),并且其中响应于由所述控制器对频率数的值的改变,所述乐音产生器(111,112,113,116)还适用于(a)如果存储在所述寄存器中的针对被识别出的乐音产生单元的模式标志表示立体声模式,则按照改变后的频率数的值来控制正在从所述波形存储器读出的左通道波形的波形数据和右通道波形的波形数据的读出速率;以及(b)如果存储在所述寄存器中的针对被识别出的乐音产生单元的模式标志表示单声道模式,则按照改变后的频率数的值来控制正在从所述波形存储器读出的单声道波形的波形数据的读出速率。
8.根据权利要求6所述的乐音产生设备,其中响应于指定正在产生的乐音的控制参数的值改变的控制命令,所述控制器(122,10) 还适用于从所述N个乐音产生单元中识别出当前正在产生要按照控制指令来控制的乐音的一个乐音产生单元(S31-S33,S35);以及将存储在所述寄存器中的针对被识别出的乐音产生单元的控制参数的值改变为由控制命令所指定的值(S34),并且其中响应于由所述控制器对控制参数的值的改变,所述乐音产生器(111,112,113,116)还适用于(a)如果存储在所述寄存器中的针对被识别出的乐音产生单元的模式标志表示立体声模式,则按照改变后的控制参数的值来控制所读出的左通道波形的波形数据的乐音特性和所读出的右通道波形的波形数据的乐音特性;以及(b)如果存储在所述寄存器中的针对被识别出的乐音产生单元的模式标志表示单声道模式,则按照改变后的控制参数的值来控制所读出的单声道波形的波形数据的乐音特性。
全文摘要
本发明提供了一种乐音产生设备。响应于音符打开指令的检测,CPU(10)分配了包括两个乐音产生通道的乐音产生单元并且将所分配的乐音产生单元的音色控制数据设置到乐音产生器寄存器(23)中。音色控制数据包括两个通道共同的参数。一旦CPU对乐音产生器(20)给出乐音产生开始指令,乐音产生器就累积两个通道共同的频率数以便产生两个通道共同的渐进相位。波形读出部件(112)基于左通道和右通道的相位和波形选择信息从波形存储器(21)读出左通道和右通道波形数据。由特性控制部件基于两个通道共同的特性控制参数来控制读出的左通道和右通道波形数据的乐音特性。
文档编号G10H7/02GK102347023SQ20111022129
公开日2012年2月8日 申请日期2011年8月3日 优先权日2010年8月3日
发明者伊藤一之, 土屋博之, 岩濑裕之, 柏崎纮一, 长谷部雅彦 申请人:雅马哈株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1