CN101656067A - 形成乐音波形的方法和装置 - Google Patents
形成乐音波形的方法和装置 Download PDFInfo
- Publication number
- CN101656067A CN101656067A CN200910163309A CN200910163309A CN101656067A CN 101656067 A CN101656067 A CN 101656067A CN 200910163309 A CN200910163309 A CN 200910163309A CN 200910163309 A CN200910163309 A CN 200910163309A CN 101656067 A CN101656067 A CN 101656067A
- Authority
- CN
- China
- Prior art keywords
- waveform
- sampling
- data
- musical sound
- musical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
本发明涉及一种形成乐音波形的方法和装置。其中,根据所要产生的乐音的特性(诸如乐音中的谐波分量的构成),使每单位时间的波形取样的数目即波形取样形成分辨率得到可变的设定。对于包含较多高次谐波分量的乐音或乐音部分,增加每单位时间的波形取样数目。相反地,对于包含较少高次谐波分量的乐音或乐音部分,减少每单位时间的波形取样数目。通过如此变化地设定波形取样分辨率,可以在不产生显著浪费的情况下进行用算术方法形成波形取样数据的处理。
Description
本分案申请是基于申请号为96102313.9,申请日为1996年6月18日,发明名称为“形成乐音波形的方法和装置”的中国专利申请的分案申请。更具体说,本分案申请是基于申请号为200410061672.X,申请日为1996年6月18日,发明名称为“形成乐音波形的方法和装置”的分案申请的再次分案申请。
技术领域
本发明涉及用于根据借助算术处法装置进行的波形形成计算而形成乐音波形取样的方法。
本发明还涉及用于压缩波形数据的方法,该数据将被存储在电子乐器的存储器或带有基于波形存储器的乐音发生器的其他乐音再现装置中。
背景技术
在传统的能够同时在多个通道中产生乐音的乐音发生器中,乐音波形取样是通过采用算术处理装置而借助算术方法产生的,且在各个乐音发生通道中每一个预定单位时间里借助算术方法形成的波形取样的数目(以下称为“波形取样形成分辨率”)对于每一个通道都是保持固定的。另外,波形取样形成分辨率从每个乐音的开始至结束都是保持固定的,且传统的已知乐音发生器都不允许在乐音的算法形成期间改变波形取样形成分辨率。
术语“波形取样形成分辨率”在这里被作为描述本发明的特征概念中的一个基本量度,且每预定单位时间里借助于算术方法所形成的波形取样的数目的改变将导致由所产生的乐音覆盖的频带的上限频率的改变。
如果用每秒所要形成的取样的数目(等价取样频率)来表示波形取样形成分辨率,根据已知的取样理论,该上限频率将大约等于取样频率的1/2。例如,如果每1/375秒的单位时间算法形成128个取样,等价取样频率将为128×375=48(kHz),因而产生的乐音将包合上限至24kHz的频率分量。一般地,乐音的质量取决于波形取样形成分辨率,因为取样频率是确定数字乐音的质量的一个因素。
波形取样形成分辨率将直接确定每单位时间的乐音波形形成计算量,且所需的计算量将与每单位时间的取样数成正比地增大,因为每个取样的计算对不同的取样是没有显著的不同的。即,如果为了提高乐音的质量提高了波形取样形成分辨率,则所需的计算量将增大,且有时如果没有大规模的电路计算将是不可能的。因此,波形取样形成分辨率与电路规模之同的平衡在设计乐音发生器中是一个重要的因素。
然而,如乐音已知的,各个乐音发生通道中形成的乐音波形的各个频带,通常根据所要产生的音色而有所不同。因此,如果在这些通道中采用固定的共同波形取样形成分辨率,将会产生一个问题,即对于每个形成不需要宽频带的乐音波形的通道,直到一个不需要的频带都进行了无用的计算。如果将波形取样形成分辨率设定为对应于不需要宽频带的乐音波形,将产生另一个问题,即不能形成需要宽频带的乐音波形取样。
另外,在从衰减乐音的开始至结束的波形(开始至结束波形)的情况下,升高部分(attack portion)覆盖了包含很多谐波分量的宽频带,而发生了相当大程度衰减的延音部分(sustain portion)只覆盖了包含很少谐波分量的较窄频带。如果在此情况下,采用了固定的波形取样形成分辨率以形成乐音,则对于这种不需要宽频带的部分,直到一个不需要的频带都进行了无用的计算。另外,如果将波形取样形成分辨率设定为对应于不需要宽频带的波形的部分,则将产生另一个问题,即不能为需要宽频带的另一部分形成乐音波形取样。
另外,在采用基于波形存储器的乐音发生器(其中在波形存储器中预记录了多个乐音波形)中,如果希望高质量的乐音的话,通常需要记录很多乐音波形,从而要求大的波形存储器容量。为了克服这种不便,已经提出了各种方法,以降低存储乐音波形所需的存储器容量,一个例子是根据不同的乐音波形通常具有不同的频率分量这一事实。具体地,提出了在由低频分量组成的乐音波形的情况下,为了减少取样数据量应该在记录期间以低取样频率对乐音波形进行取样,从而减小所需的波形存储器容量。然而,记录取样频率有时对于不同的乐音波形是变化的,在此情况下,如果根据预定的、只由所要发声的音符数(note number)确定的频率数(即限定再现乐音的音高(Pitch)的数字,以下称为“F数”)来从波形存储器中读出任何一个乐音波形,则在乐音波形中取样频率与读取时序之间的关系将显著不同,从而产生不能获得具有希望的音高的乐音的问题。
另外,借助基于波形存储器的乐音发生器-其中F数的采用使得能够对再现频率进行精细的控制,可以根据任何记录取样频率,通过只控制F数来以所希望的音高读出乐音波形,从而补偿记录取样频率的不同。
以上述方式,可以在减小所需的波形存储器容量方面进行努力。另外,由于这样的事实,尽管在衰减乐音的波形的升高部分中包含诸如基波的谐波分量的高频分量,但延音部分使这些谐波分量几乎完全衰减了,在延音部分中没有被衰减的几乎只有基波,因而维持部分的频率分量低于升高部分。另外,在能够延音逐渐增大的亮度的音色的情况下,波形的频率分量变得更高,虽然它在开始发出相应的乐音时不一定具有那样高的频率分量。
然而,在过去,在记录乐音的开始至结束波形中所用的取样频率是固定在这样的频率上的,即能够在不涉及不希望的混淆噪声的情况下进行适当的最高频分量的取样,虽然对于不同的乐音波形取样频率是变化的。借助这种固定的记录取样频率,甚至可能将不需要频带的波形数据无用地记录在波形存储器中,其结果是不能对波形存储器进行有效的利用。
发明内容
因此,本发明的第一个目的是,提供一个乐音发生方法,用于根据借助算法处理装置进行的波形形成计算来形成乐音波形取样,该方法能够在不涉及无用计算的情况下有效地形成宽频带的乐音波形取样。
本发明的第二个目的是,提供一种波形数据压缩方法,该方法可应用于带有基于波形存储器的乐音发生器或其他乐音再现装置的电子乐器中,该方法能够对将要记录到波形存储器中的波形数据进行有效的压缩。
为了实现第一个目的,本发明提供了一种乐音发生方法,该方法用于根据借助算法处理装置的波形形成计算来形成乐音波形取样,其特征在于对于多个乐音发生通道中的每一个通道,波形形成计算的分辨率是根据在该通道中所要形成的波形的特性和该通道相对于其他通道的重要性,而独立地确定的。
本发明还提供了一种乐音发生方法,用于根据借助算法处理装置的波形形成计算来形成乐音波形取样,其特征在于波形形成计算的分辨率在计算期间是根据乐音中的谐波成分的随时间变化的比值而变化的。
本发明还提供了一种乐音发生方法,其中为多个乐音发生信道进行乐音形成计算,以形成对应于这些通道的多个乐音的波形数据,且该方法包括:产生第一控制数据的乐音控制步骤,该第一控制数据用于为每一个乐音发生通道指定将要在通道中形成的波形数据的一个乐音特性;计算控制步骤,用于产生第二控制数据,该第二控制数据用于为每一个乐音发生通道指定将要在该通道中每单位时间里形成的乐音取样的具体数目;乐音形成步骤,用于根据第一控制数据指定的乐音特性并以第二控制数据指定的取样形成速率,为每一个乐音发生通道,以算术方法形成相应于该通道的乐音波形数据;以及,根据在乐音形成步骤中形成的波形数据为多个乐音发生通过产生乐音的步骤。
在上述乐音发生方法中,计算控制步骤产生与各个通道中所要形成的波形数据的随时间变化的乐音特性相应的第二控制数据。该计算控制步骤与在各个乐音发生通道中所要形成的波形数据的乐音特性的时间变化相对应地改变所要产生的第二控制数据。另外,第一控制数据包括指定在各个乐音发生通道中所要产生的乐音的音高的音高信息,且乐音形成步骤根据第二控制数据指定的取样形成速率,将各个通道的音高信息转换成所要产生的乐音的相位变化速率。
本发明还提供了用于同时产生至少两个乐音的乐音发生方法,它包括:第一形成步骤,用于以每单位时间N个取样的形成速率形成包合大量高频分量的第一乐音波形的取样;第二形成步骤,用于以每单位时间M(M小于N)个取样的形成速率形成包含少量高频分量的第二乐音波形的取样;使第二乐音波形的M个取样受到插值操作以提供第二乐音波形的N个取样的步骤;混合步骤,用于将第一第二乐音波形的N个取样和第二第二乐音波形的N个取样一个取样一个取样地依次加起来,以提供混合乐音波形的N个取样;以及,根据混合步骤提供的混合乐音波形产生乐音的步骤。
本发明还提供了一种乐音发生方法,其中对多个乐音发生通道进行了乐音形成计算,以形成与这些通道对应的多个乐音的波形数据,且它包括:分割步骤,用于将多个乐音发生通道分成第一和第二组;第一形成步骤,用于对于第一组的各个通道每单位时间形成N个乐音波形取样并将通道之间的N个取样依次加起来,以提供第一混合波形的N个取样;第二形成步骤,用于对于第二组中的各个信道每单位时间形成M个乐音波形取样,并将通道之间的M个取样依次相加以提供第二混合波形的M个取样(其中M小于N);使第二乐音波形的M个取样受到插值操作以提供第二乐音波形的N个取样的步骤,混合步骤,用于将第一第二乐音波形的N个取样和第二第二乐音波形的N个取样一个取样一个取样地依次相加,以提供混合乐音波形的N个取样;以及,根据混合步骤提供的混合乐音波形产生乐音的步骤。
由于对于各个乐音发生通道,都能够根据所要发出的乐音波形是否具有宽频带,或者根据相应乐音的相对重要性,来确定波形取样形成分辨率,因而本发明能够以算法的方式形成乐音波形取样,而不论所要发出的乐音波形是具有宽频带还是窄频带,而不包含无用计算。另外,由于对于衰减乐音的升高部分波形取样形成分辨率得到提高以形成较多的波形取样,且对于延音部分波形取样形成分辨率得到降低以形成较少的波形取样,可以避免无用计算,因而能够在没有无用计算的情况下有效地形成从开始至结束的波形取样。通过对于具体的乐音发生通道节约无用计算,可以增大另一个乐音发生通道的波形计算量,从而提高该通道中产生的乐音的质量,并能够增大可以同时产生乐音的通道的数目。另外,由于本发明能够对于各个通道独立地控制每单位时间所要形成的乐音波形取样的数目,所以能够在这些通道中产生具有不同质量的乐音。另外,即使具体通道中产生的乐音的质量较低,也能够降低其中没有显著效果的计算量。
另外,为了实现第二个目的,本发明提供了一种波形数据压缩方法,它包括:输入步骤,用于输入持续预定时期的波形;控制步骤,用于在该预定时期中改变记录取样频率;取样步骤,用于利用记录取样频率对波形进行取样,以获得波形数据;以及,写入步骤,用于将取样步骤获得的波形数据依次写入到存储器中。
在上述波形数据压缩方法中,记录取样频率在预定时期中以预定的时序逐阶地变化。或者,记录取样频率在预定时期中以预定的时序逐渐地变化。
本发明还提供了一种波形数据压缩方法,它包括:输入步骤,用于输入持续预定时期的波形;控制步骤,用于在预定时期中改变记录取样频率;取样步骤,用于利用该记录取样频率对波形进行取样,以获得波形数据;记录步骤,用于将取样步骤获得的波形数据依次记录到一个波形存储器中;指定步骤,用于指定再现速率;产生步骤,用于产生对应于一个音高变化的变化数据,该音高变化是由于控制步骤造成的记录取样频率的变化而出现在记录在波形存储器中的波形数据中的,修正步骤,用该变化数据对指定步骤指定的再现速率进行修正;以及,再现步骤,用于以对应于修正步骤修正的再现速率的速率,对波形存储器进行读出。
在上述波形数据压缩方法中,如果以固定速率读出波形数据,变化数据是表示该波形数据代表的对数区中的频率的数据。修正步骤进行再现速率与变化数据之间的相加或相减。
根据以上述方式设置的波形数据压缩方法,在所要记录的乐音的、其中波形数据包含有高频分量的升高部分中,取样频率得到提高,而在其中波形数据包含不那样高的频率分量的延音部分中,取样频率得到降低,因而所要记录在波形存储器中的波形取样数据的量得到了有效的减小,且该波形取样数据得到了较大的压缩。因此,本发明减小了所需的波形存储器存储容量,并使存储器的利用效率得到了提高。
为了更好地理解本发明的上述和其他特征,下面结合附图对本发明的最佳实施例进行描述。
附图说明
在附图中:
图1是框图,显示了实施本发明的乐音发生方法所用的乐音发生装置的结构的例子;
图2显示了图1的RAM提供的音色数据和波形数据区;
图3显示了图1的RAM提供的输入缓存区;
图4显示了图1的RAM提供的乐音发生器寄存器区;
图5A至5F显示了图1的RAM提供的各种输出缓存区的结构和操作;
图6显示了从乐音的开始至结束的波形数据的一个例子;
图7A至7D显示了图6的波形数据的各个点处的频谱;
图8显示了在乐音的开始至结束中原有的音高的时间变化的一个例子;
图9显示了在乐音的算法形成期间波形取样形成分辨率相对于时间的变化的一个例子;
图10显示了在乐音的算法形成期间再现频率数随时间变化的一个例子;
图11是时序图,显示了图1的CPU进行的用于形成乐音波形的乐音发生器处理;
图12是在实施本发明的乐音发生方法的软件乐音发生器中,由图1的CPU所执行有主程序的流程图;
图13是该CPU进行的MIDI接收中断处理的流程图;
图14是对部分1进行的音色选择事件处理的流程图,该处理是主程序中面板开关事件处理的一个例子;
图15A是流程图,显示了主程序中的接收数据处理中进行的音符关断处理的细节的一个例子;
图15B是流程图,显示了在主程序中的接收数据处理中进行的音符关断处理的细节的一个例子;
图16是流程图,显示了主程序中执行的乐音发生器处理的细节;
图17是流程图,显示了在乐音发生器处理中执行的通道控制处理的一个细节;
图18是流程图,显示了波形计算处理的细节;
图19显示了当覆盖单个乐音的开始至结束的时间串行波形数据得到记录时根据本发明的波形数据压缩方法改变记录取样频率的方式的一个例子;
图20显示了根据本发明的波形数据压缩方法改变原有音高的方式的一个例子;
图21显示了根据本发明的波形数据压缩方法改变记录取样频率的方式的另一个例子;
图22是框图,显示了实现波形预处理以根据本发明的波形数据压缩方法将波形取样数据记录到波形存储器中的设置的一个例子;
图23是框图,显示了包括波形存储器的电子乐器的一般结构,在该波形存储器中以根据本发明的波形数据压缩方法的压缩形式记录有波形数据;
图24显示了根据本发明的波形数据压缩方法改变记录取样频率的方式的又一个例子;
图25显示了根据本发明的波形数据压缩方法改变原有音高的一种方式。
具体实施方式
图1是框图,显示了用于实施本发明的乐音发生方法的乐音发生装置19的结构的一个例子。图1的乐音发生装置19包括:算法处理单元(CPU)1,它执行应用程序等等,以执行各种控制、乐音波形取样的算法形成等等;只读存储器(ROM)2,其中存储有CPUI的运行程序、预设定的音色数据等等;随机访问存储器(RAM)3,它具有用于CPUI的工作存储区和用于音色数据的存储区等等,定时器4,用于保持时间并向CPUI表示定时器中断时序;MIDI接口5,通过它将一个MIDI事件输入到装置19并将产生的MIDI事件从装置19输出;以及,键盘6,它与通常的个人计算机键盘类似,具有英语和日语字母、数字、符号等等健。如现有技术中已知的,“MIDI”是乐器数字接口的缩写。
乐音发生装置19进一步包括:显示器(监视器)7,通过它用户可以与装置19进行对话;硬盘(HDD)8,其中有应用程序,诸如用于产生乐音的程序,并且其中记录有用于以算法的方式形成乐音波形取样的乐音波形数据;再现部分(DMA:直接存储器存取)9,它在没有CPUI干预的情况下,允许乐音波形取样数据从和至RAM3由CPUI指定的一个RAM3区的直接传送;数字至模拟(D/A)转换器(DAC)10,用于将乐音波形取样数据转换成模拟乐音信号;以及,发声系统11,它包括放大器和扬声器,用于对来自D/A转换器10的模拟乐音信号进行声频再现或发声。
在硬盘8中,可以存储各种其他的数据,诸如自动演奏数据、和弦数据以及上述运行程序。通过将运行程序预先存储在硬盘8而不是ROM2中,并将运行程序装载到RAM3中,CPUI能够与将运行程序存储在ROM2中完全一样地进行操作。这大大地便利了运行程序的升级、运行程序的加入等等。可以用一个CD-ROM13作为可拆下的外部记录介质,用于记录各种数据,诸如自动演奏数据、和弦数据及乐音波形数据和可选的运行程序。存储在CD-ROMI3中的这种运行程序和数据可以由一个CD-ROM驱动器14读出,以传送到硬盘8进行存储。这便利了运行程序的安装和升级。可拆下地安装的外部记录介质可以是CD-ROM以外的,诸如软盘和磁光盘(MO)。
一个通信接口15可以与总线12相连,从而使装置19经过接口15而与诸如LAN(局域网)、互联网络和电话线的通信网络16相连,且可以经过通信网络16而与适当的服务计算机17相连。因此,当硬盘8中没有包含运行程序和各种数据时,可以从服务计算机17接收这些运行程序和数据并装载到硬盘8中。在这种情况下,乐音发生装置19即“客户”,将送出一个指令,请求服务计算机17通过通信接口15和通信网络16下载运行程序和各种数据。响应于该指令,服务计算机17经过通信网络16将所请求的运行程序和数据传送到乐音发生装置19。该乐音发生装置19经过通信网16接收该运行程序和数据而完成所需的下装,并将它们存储到硬盘8中。
应该注意的是,乐音发生装装置19可以通过将对应于本发明的运行程序和各种数据装入到可商业获得的个人计算机中,而得到实施。在这种情况下,可以以能够被个人计算机所读取的记录介质(诸如CD-ROM或软盘)上的记录形式,将对应于本发明的运行程序和各种数据提供给用户。在个人计算机与诸如LAN的通信网络相连的情况下,运行程序和各种数据可以经过通信网络而以与上述方式类似的方式提供给个人计算机。
图2至5显示了提供在RAM3中的各种寄存区,其中图2显示了存储各种数据和波形数据的区域,图3显示了其中存储经过MIDI接口5输入的MIDI消息的输入缓存区,且图4显示了乐音发生器寄存区-其中存储有产生多个通道的乐音波形取样所需的各种参数。在图2的区域中,存储有16种音色数据“PDI、PD2、......PDI6”和n种波形数据“WDI、WD2、......WDn”。后面将要描述的OPEG(原有音高包络线,originalpitch envelope)波形与波形数据“WDI、WD2、......WDn”一起以与其对应的关系而得到存储。
各个音色数据都由以下数据组成:指定给定音高范围的波形数据(音高范围波形指定数据);用于控制所要用于产在振动效果等的低频振荡(LFO)数据(LFO控制数据OD);用于控制滤波器包络线的产生以随时间改变音色滤波器特性的数据(FEG控制数据OD);用于控制乐音音量包络线以控制乐音音量变化特性的数据(AEG控制数据OD);用于根据检测到的触键速度来改变乐音的上升速度等的接触控制数据(接触控制数据OD);以及包括波形取样形成分辨率控制数据的其他数据(其他数据OD)。上述各个数据的末端的“OD”表示受到诸如调制的控制之前的“原始数据”。
在图3的输入缓存区中,表示诸如音符接通和音符关断事件的各种经过MIDI接口5而输入的MIDI事件数据ID1、ID2、ID3、......,被依次写入。通过读出这些MIDI事件数据ID1、ID2、ID3、......,在乐音发生装置中进行事件处理,以形成与读取的MIDI事件数据对应的乐音波形取样。各个MIDI事件数据ID1、ID2、ID3......,都包括表示MIDI事件的内容和事件数据出现的时间(数据出现时间或事件发生时间)的数据。数据出现时间可以在接收到MIDI事件时通过读出定时器4保持的现行时间来确定。
图4所示的区域,被用作乐音发生器寄存器区,该区包括为多个乐音发生通道(在此例中为32个通道CHI至CH32)设置的寄存器,且各个寄存器中已经存储有各种乐音参数,用于控制将要在相应的乐音发生通道中形成的乐音波形取样。在各个寄存器(通道寄存器)中,存储有在相应通道中所要形成的乐音的音符数、指定存储在RAM3中的任何波形数据的数据(波形指定数据D)、LFO控制数据D、滤波器包络线控制数据(FEG控制数据D)、乐音音量包络线控制数据(AEG控制数据D)、音符接通数据和其他数据D。各个信道寄存器还包括一个工作区,该工作区将要在在相应乐音发生通道中以算法的方式形成乐音取样期间采用。在上述各个数据末端的“D”是数据的缩写并表示已经分配了通道以发出乐音声音的数据,以与上述的原始数据(OD)相区别。
各个乐音发生通道的波形指定数据D、LFO控制数据D、FEG控制数据D和AEG控制数据D,是通过根据MIDI事件的内容,对音色数据PD1、PD2、PD3、......PD16中的任何一个进行处理而获得的乐音形成数据。
图5显示了RAM3中设置的输出缓存区。由于在本发明的乐音发生方法中,借助波形取样形成分辨率CC(其概念已经在本说明书的开始讨论过了)的改变而使在各个计算时间到来时欲用算术方法一起形成的乐音波形取样的数目发生改变,因而提供了与多个波形取样形成分辨率CC有对应关系的多个输出缓存器。即,在本发明的最佳实施例中,如图5A至5C所示,采用了三个不同的波形取样形成分辨卒,并提供了三个输出缓存器:输出缓存器B0,用于基本波形取样形成分辨率(CC=0;等价取样频率为48kHz);输出缓存器B1,用于基本波形取样形成分辨率的1/2(CC=1:等价取样频率为24kHz);输出缓存器B2,用于基本波形取样形成分辨率的1/4(CC=2:等价取样频率为12kHz)。因此,输出缓存器B1存储取样的容量为输出缓存器B0的1/2,且输出缓存器B2的取样存储容量为输出缓存器B0的1/4。
波形取样形成分辨率CC是为每一个乐音发生通道和每一个所要发声的乐音波形指定的,且波形取样形成分辨率CC规定了在相应信道中所要用算术方法形成的乐音波形取样的数目。因此,波形取样形成分辨率CC可以用与所要形成的乐音波形取样的数目相对应的等价取样频率来表示。根据所要形成的乐音波形取样所覆盖的频带,来选择这三种波形取样形成分辨率CC之一。
当所要形成的乐音波形取样具有宽频带时,采用图5A所示的输出缓存器BO,且它存储在各个预定计算时刻形成的128个乐音波形取样(SD1、SD2、SD3、......SD128)。当所要形成的乐音波形取样具有不那样宽的频带时,采用图5B所示的输出缓存器B1,且它存储在各个预定的计算时刻形成的64个乐音波形取样(SD1、SD2、SD3、......SD64)。当所要形成的乐音波形取样具有窄频带时,采用图5C中所示的输出缓存器B2,且它存储在各个预定计算时刻形成的32个乐音波形取样(SD1、SD2、SD3、......SD32)。
在这些缓存器BO至B2的每一个中,都还存储有各个通道的乐音波形取样,这些取样是以相同的波形取样形成分辨率CC(即以覆盖基本上相同的频带的方式)形成的,而不是以一个通道一个通道的方式存储的。即,每一个新形成的乐音波形取样,都被加到输出缓存器之一中已经存储的乐音波形取样中,并随后被存储在缓存器的相同的存储单元中。
一旦对所有的乐音发生通道都完成了乐音波形取样形成,这些波形取样被累积起来并被传送到再现部分9以进行声频再现。然而,由于在输出缓存器BO、输出缓存器B1和输出缓存器B2中存储有不同数目的乐音波形取样,不能以简单的方式汇集这些取样。
即,在存储在缓存器B1中的64个乐音波形取样的每一个相邻取样之间,进行内插,以提供128个乐音波形取样,然后将这些取样存储在图5D所示的缓存器B1’中,且类似地在存储在缓存器B2中的32个乐音波形取样的每一个相邻取样之间进行内插,以提供将要存储在图5E的缓存器B2’中的128个乐音波形取样。在此情况下,缓存器B1’中每隔一个乐音波形取样,将具有与缓存器B1中的相应位置上的64个乐音波形取样之一相同的值,且缓存器B2’中每隔三个的乐音波形取样,将具有与缓存器B2中相应位置处的32个乐音波形取样之一相同的值。
此时,在现在包含128个取样的缓存器BO、缓存器B1’和缓存器B2’的各个相应位置处的乐音波形取样,被积累起来并被存储到例如缓存器B0的相应位置。在此之后,积累在缓存器BO中的波形取样被保留以进行再现,以使这些取样随后被再现部分9所读取,以通过发声系统进行声频再现。所有通道的乐音波形取样不一定要存储在缓存器BO中,而是可以存储在具有128个取样的存储区的其他任何输出缓存器中。
结合图6至11,将描述本发明的乐音发生方法,它通过采用上述的输出缓存器而在图1的乐音发生装置中得到了实施。在此最佳实施例中,乐音发生装置19采用了根据已知的波形存储方法的乐音发生器(基于波形存储的乐音发生器)。图6显示了存储在缓存器中的乐音从开始至结束波形数据(即用于完成(从开始至结束)乐音的发声的一组波形数据)的一个例子;图7A至7D显示了在图6的波形数据的各个时刻提取的频谱;图8显示了当以固定的再现速率再现用算术方法形成的乐音波形取样时乐音从开始至结束的波形中的音高随时间改变的一个例子;图9显示了波形取样形成分辨率CC的变化与取样计算时间的关系的一个例子;图10显示了F数随时间变化的方式的一个例子,以用算术方法形成波形取样;且图11是时序图,显示了形成乐音波形的乐音发生器处理。
根据本发明的乐音发生方法,如图11的(a)所示,每当计算时刻T1、T2、T3、T4......到来时,为预定单位的部分用算术方法形成乐音波形取样,该部分将被从再现部分9读出。在如图11的(b)所示的计算时刻之间接收新的音符接通和/或音符关断事件,且在图11所示的时序一起以算术方法形成与这些事件对应的多个乐音波形取样。
因此,借助再现部分9,读出存储在输出缓存器BO中的所有乐音发生通道的以算术方法形成的乐音波形取样,以作为单位部分的波形取样,从而使它们能够以恒定的再现速率(即以固定的再现取样频率)而得到再现。
如在之前结合输出缓存器描述的,当在本发明中以算术方法形成用于单个单位部分的多个乐音波形取样时,系统中的波形取样形成分辨率CC被改变到与所要形成的乐音波形的频带相对应的波形取样形成分辨率,如前面所述。
图6中水平拉长的频带代表衰减乐音中包含的一组多个波形数据,而水平轴代表时间,且为了说明起见,在时刻a、b、c和d处的波形数据被抽取出来并在图中用影线进行了强调。在图7A至7D中,显示了在这些时剜a、b、c和d处包含在波形数据中的基波和谐波的频谱分布。更具体地说,在时刻a的部分是升高部分,其具有代表性的波形在图6中得到了详细描述,且它包含大量的谐波频谱分量,如图7A所示。在时刻b的部分是高频谐波频谱分量已经略微衰减的部分,如图7B所示。
在时刻c的部分,是延音部分,其中发生了进一步的衰减,如与图6所示的其代表波形对比可见。如图7c所示,在时刻c处的波形是简单的波形,它与基波类似,其中高频谱波分量得到了进一步的衰减。最后,在时刻d的部分是高频谱波频谱分量已经几乎完全衰减至零的部分,只剩下了基波。
由于产生的乐音的波形数据的频带随时间改变,因而产生了一个问题,即只要采用能够形成具有最宽的乐音频带的固定波形取样形成分辨率,则对不需要的频带也进行了波形数据的算术形成。
为了避免这种不便,本发明的乐音发生方法的特征在于,通过在如图9所示的乐音的算法形成期间根据时间的推移,改变波形取样形成分辨率CC。在所示的例子中,波形取样形成分辨率CC在开始时被设定为48kHz的基本值并直到时刻t2,随后在时刻t2和t4之间被设定为24kHz即基本值的一半,然后在时刻t4之后被设定为12kHz即第二个值的一半。波形取样形成分辨率CC的这种变化,只在图11的各个单位部分开始时进行一次,而在单位部分的中间则不发生波形取样形成分辨率变化。
通过根据随时间改变的频带而采用不同的波形取样形成分辨率CC,本发明有效地防止了对无用的频带进行波形数据形成,从而避免了无用计算。将节约下来的计算时间分配给其他的乐音发生通道,能够提高该通道中产生的乐音的质量,并能够增大可以同时产生乐音的通道的数目。
根据本发明的一种修正,在单位部分的中间,可以对各个乐音发生通道中的波形取样形成分辨率进行改变。在此情况下,该通道中的波形数据的算术形成,响应于变化的波形取样形成分辨率CC而得到改变,且用于积累该通道的输出数据的输出缓存器在单位部分中间得到了改变。
另外,如前面所述,在相应乐音的形成期间,由于存储在图2所示的RAM3中的波形数据WD1、WD2、......WDn的频带的改变,本发明响应于该频带的改变而改变对波形数据进行取样以进行存储的记录取样频率,从而减小了所要存储的波形数据量。在此方面,在现有技术中,通常的作法是使取样频率在升高部分很高并根据波形数据的衰减而逐渐降低。如果以固定的速率从RAM3读出以上述方式在相应乐音的形成期间以相继变化的取样频率存储的波形数据,波形数据将根据取样频率而引起音高的变化。
在图6的时刻a和c处的各个一周期波形中,由于所产生的乐音中的上述取样频率变化,在时刻c处的波形宽度(沿着水平轴)减小到时刻a处的一半。即,虽然时刻a和c处的波形原来有相同的音高,由于时刻c处记录波形的取样频率为时刻a处的大约一半,波形存储器中存储时刻c处的一周期波形的地址区的长度,约为时刻a处的一半。
图8中的波形的例子(OPEG)显示了在乐音形成期间,当采用基本的波形取样形成分辨率(在图9的例子中为48kHz)读出波形数据时原有音高(OP)的变化。在图8所示的例子中,音符数C2的原有音高OP从时刻t1至时刻t3线性地改变至音符数C3的音高,而音符数C3比C2高一个八度;纵轴代表音分(cent)标度。因此,当这种波形数据被读出以形成乐音取样时,需要以这样的方式控制读出速率(F数,即所要形成的乐音的每个取样期间读取地址在波形存储器中行进的速率),即在乐音产生期间没有音高变化。OP表示原有音高,且OPEG表示原有音高包络。
这里,用于对波形数据进行取样以将其存储在波形存储器中的取样频率,具有与上述OPEG波形正好相反的(沿着音分标度)变化,且用于控制OPEG波形的形状的OPEG控制数据是根据控制记录期间的取样频率变化的数据而产生的。
为了产生指定音高的乐音,只要根据指定音高和OPEG波形产生一个F数,作为移动原有音高(用OPEG波形的值表示)的音高变化量。具体地,指定的发声音高与原有音高之差是以音分计算的。随后,计算出的差从音分表示被转换成Hz表示,以确定F数。在此情况下,一旦OPEG变化,F数随着OPEG变化,即使指定的发声音高没有变化也是如此。
在各个计算时刻,以算术方法形成由波形取样形成分辨率CC指定的预定数目的波形取样,作为用于单个单位部分的取样。然而,当在乐音的形成期间波形取样形成分辨率CC如图9所示地变化时,需要同时改变所形成的每个取样期间读取波形歌据的读出速率(F数)。如果例如将48kHz的基本波形取样形成分辨率(CC=0)减半至24kHz(CC=1),则每个取样的波形读出速率需要增大到原来的两倍;且如果它降低到12kHz(CC=2),每个取样的波形读出速率需要增大到原来的四倍。
因此,本发明得到适当设置,以在波形取样形成分辨率改变的同时,改变F数,即用于读出算法形成时指定的波形数据的地址计数器的每个取样的增值。对于每一个乐音发生通道,都设定波形取样形成分辨率,以尽量减小该通道的无用波形计算量。
本发明既通过波形数据取样频率的改变(图8所示OPEG波形的变化)而实施了波形压缩,又通过波形取样形成分辨率CC的变化(图9所示的波形取样形成分辨率CC的变化)而节省了波形计算,其结果,F数在乐音产生期间以图10所示的方式变化。如图10所示,具有初始值FN0的F数,从时刻t1至时刻t2响应于OPEG波形变化而沿着弧形曲线减小。F数在时刻t2处响应于已经减半至24kHz的波形取样形成分辨率CC而加倍,并随后从时刻t2至时刻t3响应于OPEG波形变化而再次沿着弧形曲线减小。从时刻t3至时刻t4,F数被延音在值FN0(即通过使OPEG波形加倍并使波形取样形成分辨率CC减半从而使它们彼此抵消,而使原有的F数得到了恢复),并随后在时刻t4响应于已经减小至原来的1/4的波形取样形成分辨率CC而进一步得到加倍。在时刻t4之后,F数被保持在值2FN0。
用于计算F数的公式是;
F数=2(SP-OP)/1200×2CC 公式(1)
其中SP表示所要发出的音符数的音高,OP表示原有音高,且CC表示相对于基本波形取样形成分辨率(48kHz)的比值。当采用基本波形取样形成分辨率时,CC=0;当波形取样形成分辨率被减半时,CC=1;且当波形取样形成分辨率被降低至1/4时,CC=2。
图12是在采用本发明的乐音发生方法的软件乐音发生器中,由图1的CPU1所执行的主程序的流程图。在该主程序开始时,在步骤S10进行初始化,其中所有的乐音发生通道都得到清除且进行音色数据、波形数据等等的初始准备。
在下一个步骤S20,通过确定是否有MIDI接收数据已经被存储在图3的上述输入缓存器中,而判定是否有接收数据。如果没有接收数据被记录在输入缓存器中,CPU进行到步骤S40,但如果有接收数据被记录在输入缓存器中,CPU进行到步骤S30,在那里借助与接收的MIDI事件相对应的操作(音符接通处理、音符关断处理等等)和其他所需的操作,执行对接收数据的处理。
在步骤S40,检查是否有任何开关得到激活。如果在步骤S40的答案是否定的,CPU1进行到步骤S60;如果已经有开关被激活,则判定有开关事件,从而在步骤S50进行面板开关事件处理,以按照激活的开关的指令设定多个演奏部分之一的音色。
随后,在步骤S60执行乐音发生器处理,以在各个计算时刻到来时一起用算术方法形成乐音波形取样。当在步骤S70进行了其他必要的处理之后,CPU1回到步骤S20以重复步骤S20至S70的操作(正则环,regular loop)。如果再现部分9包括根据可选择的算法的专用乐音发生器或DSP乐音发生器,则可以省略步骤S60处的乐音发生器处理。
图13是CPU1执行的MIDI接收中断处理的流程图。该MIDI接收中断处理是当MIDI接口5接收到来自外部的MIDI事件时而激活的,且相优先于其他处理。在MIDI接收中断处理开始时,在步骤S80装载接收数据,且在步骤S90将其与其接收时间数据(表示接收数据的接收时间)一起,以图3所示的形式,写入输入缓存器。在步骤S90之后,CPU1返回到在中断处理之前进行的处理。通过这些操作,MIDI数据与相应的接收时间数据一起被依次写入到输入缓存器中。
图14是部分1的音色选择事件处理的流程图,该处理是作为主秩序在步骤S50进行的面板开关事件处理的一个例子而执行的,其中对于各个演奏部分,在步骤S100,通过激活预定的开关而选定的乐音数被存储在音色寄存器TC中。在对于所有演奏部分完成了步骤S100的操作之后,乐音设定处理结束。
在图15A和15B中,分别显示了音符接通处理和音符关断处理的细节,这些处理是在主程序的步骤S30处的接收数据处理中进行的。
当接收数据是音符接通事件数据时,如图15A所示地执行音符接通处理,其中在步骤S110存储在输入缓存器中的音符接通事件数据的音符数、速度和部分指定的音色分别装载到相应的寄存器NN、VEL和TC中,且音符接通事件的发生时间也被装载到相应的寄存器TM。在下一个步骤S120,进行通道分配处理,以将装载的音符数NN分配到通道中的一个并将分配的通道的号i存储在寄存器中。
随后,在步骤S130,根据音符数NN和速度VEL,对现在为各个演奏部分设定的音色TC的音色数据TP(TC)进行处理。这里,音色数据是从图2所示的音色数据PDI至PD16中选出的一个。在下一个步骤S140,处理过的、包括所要产生的乐音的音高SP的音色数据,与音符接通事件的发生时间TM一起,被写入到图4的通通号i的乐音发生器寄存器中。另外,将要写入该乐音发生器寄存器的波形指定数据D,通过采用指示图2所示的音色数据的音高范围波形指定数据的音符数NN,而得到确定,且波形数据WDI至WDn中的任何一个被指定为将要用于产生与音符数NN对应的乐音的波形。
随后,在步骤S150,将用于改变通道i的波形取样形成分辨率的时序和指定波形取样形成分辨率值的形成分辨率控制数据,设定到i通道的乐音发生器寄存器中。这种形成分辨率控制数据的设定,是根据包含在为i通道选出的音色数据中的形成分辨率控制数据而进行的。由于改变波形取样形成分辨率的时序是对于每一个单位部分指定一次的(在该单位部分每个计算时刻都进行计算),波形取样形成分辨率的变化可以通过检测计算时刻的到达数目而实现。随后,在步骤S160,将从波形数据区读出的OPEG控制数据设定到i通道乐音发生器寄存器中。所读出的OPEG控制数据是用于控制OPEG波形的形状的数据,该OPEG波形代表了图8所示的乐音的产生期间原有音高的变化方式。
在下一个步骤S170,将音符接通数据写入i通道的乐音发生器寄存器,且随后音符接通事件处理结束。
当接收数据是音符关断事件数据时,如图15B所示地进行音符关断处理,其中在步骤S180,将存储在输入缓存器中的音符关断事件数据的音符数、速度和部分指定音色分别装载到相应的寄存器NN、VEL和TC中,且音符关断事件的发生时间也被装载到相应的寄存器TM中。随后,在步骤S190,标明产生具有音色TC和音符数NN的乐音的一个乐音发生通道,且标明的通道号i被存储在寄存器中。
在步骤S200,发生时间TM和音符关断数据被写入i通道乐音发生器寄存器,且随后音符关断处理结束。
现在,结合图16,对主程序的正则环中在步骤S60执行的乐音发生器处理进行详细描述。
首先,在步骤S210,检查乐音发生器寄存器以判定其中是否已经写入了新的数据。如果没有新数据已经被写入,CPU1直接进行到步骤S250;如果有新数据已经被写入,CPU1进行到步骤S230,在那里写入的数据被转换成用于控制波形形成的控制数据。
随后,在步骤S240,根据转换的控制数据,进行用于计算的预定准备,诸如乐音发生器控制准备,例如关于音符接通/音符关断、音高带、EXP、底壳(pan)和其他数据的准备以及控制时间和控制数据组的产生。即,每次有新数据写入时,都在步骤S230和步骤S240对随后在步骤S270和步骤S290进行的乐音形成计算进行预定的准备。
在下一个步骤S250,以不打断再现部分9中的波形数据读出的方式,进行计算时间管理处理,以在现行的波形数据再现结束之前指定预定的时刻。更具体地说,在图11(a)所示的各个计算时刻对应于图11(c)所示的单个单位部分的多个乐音波形取样的算术形成中,进行计算时间管理处理,以在考虑到算法形成所需的时间的情况下设定计算时刻,从而防止对再现部分9进行的波形取样读出造成不希望的中断。
随后,在步骤S260,判定经过上述计算时间管理处理而设定的计算时刻是否已经到达。如果步骤S260处的答案是否定的,CPU1结束乐音发生器处理而不进行其他的处理。如果在乐音发生器寄存器中没有写入新的数据且还没有到计算时刻,则在乐音发生器处理中不进行具体的操作。一旦在执行了主程序的正则环几次之后设定的计算时刻已经来到,在步骤S270和其之后,进行处理以用算术方法法形成对应于单个单位部分的多个乐音波形取样。
即,在步骤S270,根据在各个通道中所要产生的乐音,进行各种通道控制处理,诸如:形成分辨率改变处理,用于指定所要形成的一组具体的乐音波形取样;计算顺序确定处理,用于以这样的方式确定通道之间的计算顺序,即按照从发出最重要的乐音的通道至发出最不重要的乐音的通道的顺序,进行所需的计算;以及,乐音消音通道确定处理,用于确定计算顺序中的最后一个通道,作为其中现行发声的乐音应该得到消音的通道。
在随后的步骤S280,进行控制数据展开处理,其中在上述步骤S240准备的数据沿着时间轴被展开,以为计算作准备。在此之后,进行波形形成计算处理,其中在步骤S290根据展开的数据,计算单个单位部分的再现波形数据(乐音波形取样)。另外,如结合图5所述的,以这样的方式使具有不同波形取样形成分辨率的再现波形数据受到内插处理,即使其数目与以基本波形取样形成分辨率形成的那些的数目相同;且随后所有通道的再现的波形数据都被积累起来,以存储在例如缓存器B0中。随后,在步骤S300,对于存储来自所有通道的积累的再现波形数据的缓存器B0,进行再现保留,以使再现部分9随后读取再现的波形数据。
如上所述,本发明能够对于每一个乐音发生通道并在通道中的乐音的产生中的任何中间点,单独地改变波形取样形成分辨率。图17是流程图,显示了在乐音发生器处理的步骤S270执行的通道控制处理的细节。
在该通道控制处理中,波形取样形成分辨率改变处理是在步骤S310进行的,以根据提供给各个通道的形成分辨率控制数据,在乐音产生期间改变波形取样形成分辨率。在此控制处理中,对经历的时间进行计数,以对波形取样形成分辨率的改变时序进行管理。如果目前不需要改变波形取样形成分辨率,CPU1直接进行到步骤S340;然而,如果有需要改变波形取样形成分辨率的通道(即当通道的形成分辨率控制数据指定的改变时序到来时),步骤S320产生肯定的判定结果,因而在步骤S330通道的波形取样形成分辨率CC被改变到一个新的值(一个由控制数据指定的值)。
在步骤S340,执行计算顺序确定处理,以便以这样的方式确定通道之间的计算顺序,即使得发出重要乐音或不应该消音的乐音的通道的所需的计算优先于其他的通道。这里,目前不发出乐音的通道不需要计算,因而不需要将其包括在计算顺序中。随后,在步骤S350,汇集所有通道的计算量,以确定总计算量。在此情况下,由于不同的通道有不同的波形取样形成分辨率,且如果这些信道中采用了不同的乐音发生方法则乐音发生方法也不同,因而各个通道的相应计算量是不同的。在随后的步骤S360,判定总计算量是否超过了预定的范围。如果总计算量处于预定范围之内,CPU1终止通道控制处理而不进行任何其他的操作,以执行波形计算处理,如下面描述的。
如果在步骤S360判定总计算量超过了预定范围,这意味着在再现部分9的预定读出时序之前将不能完成所需的计算,且再现的波形数据将有中断。因此,在计算顺序的预定位置之后的各个通道的波形取样形成分辨率CC将减小1,以减小所要形成的取样的数目;即,波形取样形成分辨率CC=0被改变成波形取样形成分辨率CC=1,且波形取样形成分辨率CC=1被改变成波形取样形成分辨率CC=2。
在此之后,在步骤S380,判定总计算量现在是否处于预定范围。如果在步骤S380判定总计算量处于预定范围之内,通道控制处理结束;然而,如果总计算量仍然超过预定范围,则计算顺序中最后位置处或之后的一或多个通道被确定为乐音消音通道,且随后所确定的通道中目前正在发出的乐音被消音。
如果所要产生的乐音的数目太多,传统的乐音发生器控制技术的通常作法是进行所谓的“切去”处理,以强行使正在产生的所有乐音消音。与此相反,本发明的最佳实施例,即使当在步骤S360判定总计算量超过了预定范围的情况下,仍然首先通过步骤S370至步骤S390的操作以降低波形取样形成分辨率,而试图避免这种传统的乐音消音。由于只对重要性较低的一或多个乐音进行了波形取样形成分辨率降低,不会产生显著的音乐效果。然而,当仅通过降低形成分辨率不能适当地应付超过的计算量时,最佳实施例依赖于传统的乐音消音处理。
一旦以上述方式完成了通道控制处理,以下面描述的方式进行波形计算处理。
图18是流程图,显示了波形计算处理的细节。首先,在步骤S400,对于处于计算顺序中第一位的乐音发生通道,进行必要的准备,且在计算之前对图5的所有输出缓存器进行消除。在随后的步骤S410,根据所要产生的乐音的音高SP、波形取样形成分辨率CC和原有音高OP,利用上述公式(1),产生F数。由于各个通道的F数是在步骤S410的各次执行中产生的,所以在乐音产生过程的中间,F数能够响应于波形取样形成分辨率CC和原有音高OP的变化而迅速地改变。F数也能够响应于音高带、振动或其他效应造成的音高SP的变化,而在乐音产生期间改变。
通常不需要在单个单位部分的乐音波形取样形成计算的中间改变F数,因为计算时刻一般是以约几毫秒的间隔出现。
随后,在步骤S420,产生一个读出地址,以根据产生的读出地址的整数部分读出波形数据,且在两个相继读出的波形数据之间根据读出地址的小数部分进行内插。在随后的步骤S420,上述每个取样的读出地址的产生和随后的内插被重复与形成分辨率CC对应的预定次数,以形成对应于形成分辨率CC的预定数目的内插取样。各个内插取样的读出地址,是通过将F数加到最后的内插取样的读出地址上而获得的。因此,对于每一个内插取样,读出地址都以与F数对应的速率增值,且读出的波形的音高根据地址的增值速率而得到控制。
随后,在步骤S430,在前一步骤产生的内插取样受到根据乐音音量包络线波形的乐音音量控制,并随后被加到与当前波形取样形成分辨率CC相应的缓存器B0和B2中的一个中。乐音音量包络波形是用于控制从乐音的上升至衰减的乐音音量包络线变化的波形,且是根据存储在各个通道的乐音发生器寄存器区中的AEG控制数据D而与各个内插取样相对应地、以算术方法形成的。如前所述,所要形的内插取样的数目和所要存储在输出缓存器中选定的一个之中的取样的数目,都受到形成分辨率CC的控制,因而是相同的。因此,步骤S430的操作,与上述的步骤S420一样,是一个取样一个取样地进行的。即,根据乐音音量包络波形的乐音音量控制以及至输出缓存器的加入,都是一个取样一个取样地进行的。
通过以上述顺序执行各种处理,可以尽量减小CPU写入和读取计算寄存器的次数,从而增大总体的处理速度。
以此方式,采用基本波形取样形成分辨率在通道中计算的乐音波形取样,被存储到缓存器B0中;在采用基本波形取样形成分辨率的1/2的通道中计算出的乐音波形取样被存储到缓存器B1中;且在采用基本波形取样形成分辨率的1/4的通道中计算出的乐音波形取样,被存储到缓存器B2中。
随后,在步骤S440,判定计算是否对于需要这种计算的所有乐音发生通道都已经完成。如果还有需要计算的乐音发生通道留下(即仍然发出一个乐音),步骤S440的判定结果就是否定的,因而CPU1进行到步骤S480,以进行上述的为下一个乐音发生通道的准备,并随后返回到步骤S410。因此,步骤S410至步骤S480的操作得到重复,直到对于所有的乐音发生通道都完成了计算。
当CPU1与本发明的程序平行地运行另一个软件程序时,由于在软件处理上花费了太多的时间,所需的计算可能被延迟。在此情况下,为了避免对现现部分9的再现产生不希望的打断,即使仍然有需要计算的乐音发生通道,也可以在步骤S440确定对所有乐音发生通道的计算都已经完成。
作为上述操作的结果,根据波形取样形成分辨率CC计算出的多个乐音发生通道的内插取样,被累加存储到缓存器B0、B1和B2中,如图5所示。
一旦对需要这种计算的所有乐音发生通道都完成了计算,在步骤S450对存储在缓存器B1中的波形取样进行内插操作(双重再取样),以使内插取样的数目与用基本波形取样形成分辨率计算的取样的数目相同,并随后被存储到具有与缓存器B0相同的结构的缓存器Bi’中(参见图5D)。然后在步骤S460对存储在缓存器B2中的波形取样进行插值操作以使插值取样的数目与用基本波形取样分辨率计算的相同,然后存储到与缓存器B0(见图5E)具有相同结构的缓存器B2’中去。
随后,通过将缓存器B1’和缓存器B2’中的波形取样加到缓存器B0中,将所有通道的波形取样都存储到缓存器B0中(见图5F)。这终止了波形计算处理,且存储在缓存器B0中的波形取样随后将被保留起来,以便由再现部分9读出以进行声频再现。
上述的本发明的乐音发生方法,是作为由图1的乐音发生装置执行的程序来描述的,但它可以作为由诸如“Windows”(美国的微软公司生产的用于个人计算机的操作系统)的各种操作系统运行的通用计算机上的单个应用程序而得到执行。
虽然以上还没有对预定单位时间中共同形成多个波形取样的计算过程进行详细描述,计算过程可以不仅是如上述实施例中那样的波形存储器读出操作,诸如已知的FM同步操作、AM合成操作或付里叶合成操作。
借助上述设置,本发明能够对各个乐音发生通道,根据所要发声的乐音波形是否具有宽频带或者根据乐音的重要性,确定波形取样形成分辨率。本发明还能够在不进行无用计算的情况下,以用算术方法形成乐音波形取样,而不论所要发生的乐音波形是具有宽频带还是窄频带。
另外,由于提高了衰减乐音的升高部分的波形取样形成分辨率以形成大量的波形取样,且降低了延音部分的波形取样形成分辨率以形成较少的波形取样,所以能够避免无用计算,从而从乐音的开始至结束都能够有效地形成波形取样,而不出现无用计算。
通过如此地节约对于具体的乐音发生通道的波形计算,可以增大对于其他乐音发生通道的波形计算量,从而提高该通道中产生的乐音的质量,且能够增大可同时产生乐音的通道的数目。
另外,由于本发明能够对于各个通道独立地控制每单位时间中形成的乐音波形取样的数目,各个通道可以以不同的质量产生乐音。另外,还允许对于没有显著影响的具体通道减小计算量,即使其中产生的乐音是低质量的。
下面结合图6、7A至7D和19至25,描述根据本发明的另一个方面的波形数据压缩方法。
如前所述,图6示意显示了存储在缓存器中以用于完成单个乐音的发声(从开始至结束)的波形数据组,图7A至7D显示了图6的波形数据在各个点a,b,c和d处提取的频谱,且图19显示了当用于完成单个乐音的发声的时间串行波形数据得到取样和存储时取样频率Fs的变化方式的一个例子。
首先,结合图6、7A至7D和19,描述取样频率Fs是如何设定的。
如图7A中所示,图6的点a处的升高部分的波形数据具有较宽的频带并具有谐波分量众多且直到高频F1的频谱分布。在对具有图7A所示的频谱分布的升高部分波形数据进行取样的取样频率Fs,必须至少高于频率2f1。
图6的点b处的、略微衰减的波形数据的频谱分布具有直到频率f2的频率分量,如图7B所示。即,较高次的谐波分量衰减得较快,剩下了比升高部分的频带窄的频带。在对具有图7B所示的频谱分布的波形数据进行取样时的取样频率Fs,必须至少高于频率2f2。
另外,谐波分量已经进一步衰减的点c处的延音部分的波形数据的频谱分布,具有只到频率f3的分量,并具有窄得多的频带,如图7C所示。对具有图7C所示的频率分布的波形数据进行取样时的取样频率Fs,必须至少高于2t3;这意味着取样频率Fs可以大大低于用于升高部分的上述取样频率2f1。
另外,如图7D所示,在图6的点d处的、得到进一步衰减的波形数据,只包含低次的谐波,其频谱分布只有直到接近于基波的频率f4分量,其频带远窄于升高部分的频带。对具有图7D所示的频谱分布的波形数据进行取样时的取样频率Fs,必须至少高于2f4;这意味着取样频率Fs可以非常低,例如比用于升高部分的上述取样频率2f1低好几倍。
如所述,对应于单个乐音的完全(开始至结束)发声的波形数据所需的取样频率,随着波形数据的衰减的进行,可以很低。因此,本发明通过以上述方式在记录波形中改变取样频率Fs,来压缩所要记录的波形数据。
在图19所示的例子中,对于直到包括当升高部分结束的时间的时刻t1的期间,将取样频率Fs设定在初始的最高频率48kHz,且取样频率Fs在时刻t1切换到较低的频率32kHz,并随后再在时刻t2切换到升高部分的频率的一半24kHz。这里,时刻t1至时刻t2的单位时间波形取样数据量,是时刻t1之前的初始单位时间波形取样数据量的2/3;从时刻t2至时刻t3的单位时间波形取样数据量,是时刻t1之前的初始单位时间波形取样数据量的1/2;且从时刻t3开始单位时间波形取样数据量是时刻t1之前的初始单位时间波形取样数据量的1/4。因此,在整体上,单个乐音的完全发声所需的波形取样量能够得到显著的减小,且当多个波形数据得到取样以进行存储时波形取样量的减小将具有更大的效果。
如此减小的用于乐音的完全发声的波形取样数据,被直接写入到波形存储器中,因而它们将随后被从该存储器读出,以便以固定再现速率进行声频再现。固定的再现速率是D/A转换器的转换时序。然而,如果用于乐音的完全发声的波形取样数据是如图19所示地在改变取样频率Fs的同时被记录的,并随后以固定再现速率进行再现,则产生的再现波形取样数据的音高在乐音产生期间将自然发生改变。
作为原有音高OP的变化的一个例子,图20显示了当从波形存储器读出波形取样数据并以每少48k个取样的固定再现速率再现时检测到的音高与波形存储器的读出地址之间的关系。在图20中,“NNO”表示在记录时发出的一个音符的音高,在地址Ad1之前的地址范围是用于读出图19的时刻t1之前形成的波形取样数据的地址范围,从地址Ad1开始至地址Ad2的地址范围是用于读出从图19的时刻t1至时刻t2形成的波形取样数据的地址范围,从地址Ad2至地址Ad3的地址范围是用于读出从图19的时刻t2至时刻t3形成的波形取样数据的地址范围,且地址Ad3之后的地址范围是用于读出在图19的时刻t3之后形成的波形取样数据的地址范围。
图20中显示的是这样的情况下,即其中固定再现速率是与波形数据记录期间采用的最高取样频率Fs相等的48kHz,且由于采用了这种固定再现速率,从地址Ad1之前的地址范围读出的波形取样数据的音高等于记录时发声的音符的音高NNO。如果在图6的点a处的波形数据的一个周期等于100个取样,则该音高将为48kHz/100=48Hz。从地址Ad1至地址Ad2的地址范围读出的波形取样数据的音高为音高NNO的3/2,因为它们是以等于记录时的速率的3/2的固定再现速率再现的。即,其音高将为480Hz/(3/2)=720Hz。
另外,从自地址Ad2至地址Ad3的地址范围读出的波形取样数据的音高,将等于960Hz,这是音高NNO的两倍,因为它们是以两倍于记录时使用的速率的固定再现速率再现的。即,从自地址Ad2至地址Ad3的地址范围读出的波形取样数据的音高比音高NNO高一个八度(NNO+1八度)。类似地,从地址Ad3之后的地址范围读出的波形取样数据的音高,将是1,920Hz,这是音高NNO的22部,因为它们是以记录时采用的速率的22倍的固定再现速率再现的。即,从地址Ad3之后的地址范围读出的波形取样数据的音高,比音高NNO高两个八度(NNO+2八度)。
如果以在如图19所示的乐音的中间处改变的取样频率Fs,记录波形取样数据,且如此记录的波形取样数据以固定再现速率得到再现,则再现的波形取样数据的音高在乐音的发声期间将如图20所示地出现不利的变化。因此,需要对从波形存储器的取样数据读出进行控制,以防止再现波形取样数据的音高变化。
为此,在波形数据的记录期间,输出如图20所示的音高变化速率,以作为用于产生F数的原有音高变化控制数据,且该原有音高变化控制数据被存储在电子乐器的控制部分中,如下面所要描述的。如果在此情况下,原有音高变化控制数据是以音分表示的数据,则所需的音高控制处理可以得到显著的简化。该原有音高变化控制数据是用于合成如图20所示的原有音高OP的变化曲线的控制数据,且在此情况下,它们指定了变化时序Ad1、Ad2、......和音高值NNO、NN(720Hz)、NNO+1八度、......
图21显示了其中在波形数据记录期间改变取样频率Fs以进行单个乐音的完全发声的方式的一个例子,该音色具有产生逐渐增大的亮度的效果的乐音。
在所示的例子中,波形数据在从时刻t至时刻t3的时期里具有最高的谐波分量,且在此时期中取样频率Fs被保持在最高的48kHz。在从发声开始点至时刻t1的时期里,取样频率Fs被设定为12kHz,随后在从时刻t1至时刻t2的时期里被设定为24kHz,并在时刻t3之后被恢复到24kHz。
如果以在乐音的中间改变的取样频率Fs记录波形取样数据且如此记录的波形取样数据以固定再现速率得到再现,则再现的波形取样数据的音高将不利地不同于记录音高,如上所述。因此,在此情况下,在波形数据的记录期间,也输出形式与前述的不同的乐音的音高变化速率,以作为将要用来产生F数的原有音高变化控制数据,且该原有音高变化控制数据被存储在电子乐器的控制部分中。
图22是框图,显示了进行波形准备工作以将在取样频率Fs改变的同时取样的波形数据记录在波形存储器中的设置的一个例子。
在所示的例子中,经过诸如麦克风的波形输入部分20引入的波形数据,被A/D转换器21转换成数字信号。具体地,在此例中,A/D转换器21对引入的模拟波形数据以固定的最高取样频率Fs(例如48kHz)进行取样并将它们转换成数字波形取样数据。由A/D转换器21以固定取样频率Fs转换成数字表示的原有波形取样数据,借助存储器写入电路22,而被写入到原有波形存储器23中。
随后,从原有波形存储器23读出原有波形取样数据并借助取样频率改变部分24来改变取样频率。即,在取样频率改变部分24中,波形取样数据以这样的方式得到再取样,即在经过低通滤波器(LPF)对频带进行了限制之后,取样频率Fs得到了降低,因而即使在频率Fs得到降低的情况下也避免了混淆噪声的出现。
从乐音的开始至结束取样频率Fs的变化,是以图19至21所示的模式下在取样频率改变部分24中实现的,且取样频率Fs的变化的模式,即波形数据和取样频率应该如何和在什么时序改变,是由变化模式指定部分26指定的。已经被取样频率改变部分24改变到变化模式指定部分26指定的取样频率的波形取样数据,被写入到波形存储器25中,它根据本实施例可以被直接地用于电子乐器中。
如果如此写入的波形取样数据被以固定再现速率再现,则在乐音的发声期间再现的波形取样数据的音高将产生不利的改变。因为如图19和20所示,音高按照变化模式指定部分26的指定而变化,产生了对应于由指定部分26指定的原有音高变化控制数据。该原有音高变化控制数据包括变化值,而该变化值以音分表示的并预先设定在从波形存储器25读出波形取样数据以进行再现的波形再现装置或电子乐器中。
图23是框图,显示了包括波形存储器的电子乐器的一般结构,该波形存储器中以根据本发明的波形数据压缩方法的压缩方式记录有波形数据。为了简化描述,假定电子乐器在一个时刻只产生单个的乐音。
在所示的例子中,电子乐器包括:由演奏者操作的键盘(KB)31;检测电路32,用于检测音符接通事件(NON)和键盘31的操作或按下的键上音分中音符数(NN);音高包络发生器(音高EG)33,用于响应于从检测电路32检测到的音符接通事件NON的发生开始所经历的时间、产生以音分表示的音高包络波形ΔP以根据选定的乐音数TC来改变乐音的音高;以及,加法器34,用于将来自音高包络发生器33的音高包络波形ΔP加到检测电路32检测到的音符数NN上。
电子乐器进一步包括:原有音高(OP)发生器37,用于根据以音分表示的上述原有音高变化控制数据来产生原有音高数据OP;减法器35,用于从由加法器34输出的、已经加上了音高包络波形的音符数(即NN+ΔP)减去产生的原有音高数据OP;以及,频率数(FN)发生器36,用于根据来自减法器35的修正的音符数(即NN+ΔP-OP),产生与所要产生的乐音的音高成正比的频率数(FN)。原有音高发生器37中存储有与将要存储在波形存储器39中的多个波形数据对应的多个原有音高变化控制数据;且原有音高发生器37响应于乐音数TC和音符数NN,利用与从波形存储器39读出的波形对应的原有音高变化控制数据,产生原有音高数据OP。
一个地址发生器38,根据乐音数TC和音符数NN的键范围,从存储在波形存储器中的波形中选择波形,且它在音符接通ON事件的时序,作为第一读出地址而输出选定波形的开始地址。随后,地址发生器38以对应于提供的F数的速率,对读出地址进行增值。从其中根据本发明的波形数据压缩方法而存储有压缩的波形数据的波形存储器39,响应于地址发生器38产生的读出地址的整数部分,读取波形取样数据MSD。一个内插电路40提供取样数据ISD,该取样数据响应于产生的读出地址的小数部分并利用从波形存储器39相继读出的波形取样数据,而得到内插。另外,一个乘法器41用乐音音量包络波形AEG乘来自内插电路40的内插取样数据ISD。乐音音量包络波形AEG表示对应于乐音数TC的乐音中的乐音音量变化,且是由乐音音量包络发生器42响应于音符接通事件NON的时序而产生的。
D/A转换器43以固定再现速率将乘法器41输出的数字乐音数据(即乘以了乐音音量包络波形AEG的内插取样数据ISD)转换成模拟音色数据。另外,一个发声系统44对D/A转换器43提供的模拟乐音信号进行声频再现。乘法器41为当D/A转换器以固定再现速率(固定取样频率)实现模拟转换时的每一个时序输出数字音色数据。标号45表示的框表示多个音色开关(SW),其每一个都是为了让用户能够选择所要产生的音色,且标号46表示的框是一个检测电路,用于检测音色开关的用户操作以对应于用户选择的乐音而输出音色数TC。
该电子乐器以如下的方式运行。当演奏者按下键盘31上的任何一个键时,检测电路32检测按下的键以产生并向音高包络发生器33、乐音音量包络发生器42、原有音高发生器37和地址发生器38提供按下的键的音符数NN和音符接通信号NON。响应于此,音高包络发生器33和乐音音量包络发生器42分别开始产生音高包络波形ΔP和乐音音量包络波形AEG,原有音高发生器37产生原有音高数据OP,且地址发生器38产生由整数部分ADI和小数部分ADF组成的读出地址。
假定波形数据是以如图19所示的方式变化的取样频率Fs预先记录在波形存储器39中的,且演奏者已经指定了与记录的波形数据具有相同的音高的键。
在此情况下,原有音高发生器37产生出由与从检测电路32输出的音符数NN相同的音分值表示的原有音高数据OP。这里,如果忽略远小于音符数NN的音高包络波形ΔP,则从减法器5输出的值(即NN-OP)大约为0音分。当接收到该0音分数据时,频率数发生器36输出“1”作为F数。
地址发生器38通过积累从频率数发生器36输出的第一个F数,产生由整数部分ADI和小数部分ADF组成的读出地址。如果开始地址是SD,该读出地址的整数部分ADI对于D/A转换器从音符接通时序开始的第一个取样周期加一,如SD、SD+1、SD+2、SD+3......,而读出地址的小数部分ADF始终被保持为“0”。
每当整数部分ADI被提供给波形存储器39时,就从波形存储器39读出存储的波形取样数据。由于读出地址的小数部分ADF是0,读取的波形取样数据MSD通过内插电路40而到达乘法器41,后者又用乐音音量包络波形AEG乘取样数据MSD,且将所产生的相乘数据送到D/A转换器43。D/A转换器43以固定再现速率将波形取样数据MSD转换成模拟乐音信号,且该模拟乐音信号通过发声系统44而得到声频再现或发声。
由于各个整数部分ADI被作为相继的地址产生,所有记录的波形取样数据都被从波形存储器39读出,且以固定再现速率再现的波形数据将具有与记录时相同的音高。
当演奏者按下了与记录的音符名不同的音符名的键时,从检测电路32向频率数发生器36输出一个音符数NN,该音符数NN对应于按下的键的音符名和八度编码(例如,当按下比一个整乐音记录的音高高的键时,检测电路32输出一个增值了200音分的音符数NN),频率数发生器36随后产生与按下的音符名和八度编码(例如高于由一个整乐音记录的音高)并将产生的F数传送到地址发生器38。根据此时产生的读出地址,波形取样数据MSD被从波形存储器39读出,以受到内插处理。在此内插处理中,根据小数部分SDF,进行相继的波形取样数据MSD之间的内插,诸如线性内插。
如此内插的取样数据ISD,借助乘法器41,被乘以乐音包络波形,并被传送到D/A转换器,在那里将取样数据ISD以固定再现速率恢复成模拟波形数据。恢复的波形数据将提供对应于F数的音高(即高于由一个整乐音所记录的音高)。
地址发生器31向原有音高发生器37提供产生的读出地址,而原有音高发生器37根据响应于音色数TC和音符数NN而选择的原有音高控制数据,检测读出地址什么时间到达地址Ad1、Ad2或Ad3。因此,借助这种检测,原有音高发生器37依次改变原有音高数据OP的值,如NNO→NN(720Hz)→NNO+1八度。
以上述方式,如图20所示的原有音高数据OP的变化曲线响应于读出地址而得到再现。例如,在地址单元Ad1至Ad2,原有音高发生器37将产生从最后的数据OP增值700音分和另一500音分的原有音高数据OP,并将这些增值的原有音高数据OP送到减法器35。在通过Ad2的地址单元,从加有从加法器34输出的音高包络波形ΔP的音符数,减去1200音分。由于1200音分对应于一个八度,在地址存储单元Ad2输出了比Ad1之前的点产生的F数低一个八度的音符数(NN+ΔP-OP),并随后被提供给FN发生器36。因此,FN发生器36产生对应于一个音高的F数,该音高比Ad1之前的时刻产生的F数低一个八度,因而地址发生器38产生以对应于该F数的速率增值的读出地址。
读出地址的整数部分ADI被提供到波形存储器39,从而读出所记录的波形取样数据,每个读出时序一个取样数据。如果例如至地址Ad1的F数是“1”,则使来自地址Ad2F数为0.5,从而使从地址发生器38产生的读出地址的整数地址ADI以0、1、1、2、2、......的方式变化,同时小数部分ADF以0.5、0、0.5、0......的方式变化(在这里不考虑开始地址)。整数地址ADI被提供到波形存储器39,以从其读出波形取样数据MSD,且读出的取样数据MSD被提供到内插电路40,以根据小数部分ADF进行内插。
在地址Ad2处和其之后,每一个取样周期都从波形存储器39读出波形取样数据,且该波形取样数据由内插电路40根据各个小数部分ADF进行内插。然而,由于记录在波形存储器39中在地址Ad2处及其之后的波形取样数据的量,从开始就是直到地址Ad1记录的量的一半,所以每隔一个读出时序从波形存储器39读出记录的波表取样数据。这补偿了记录所用的减半的取样频率Fs,因而能够以与记录时相同的音高从波形存储器39读出波形取样数据。
随后,使来自内插电路40的内插取样数据ISD借助乘法器41而与乐音音量包络发生器42产生的乐音音量包络波形AEG相乘并借助D/A转换器43而被转换成具有固定再现速率的模拟形式。
应该注意的是,当压缩波形数据时,用于记录从开始至结束的波形数据的取样频率Fs,不仅可以如图19所示地以逐阶的方式变化,而且还可以如图24所示地以连续的方式变化。在图24中,取样频率Fs从时刻t4处的48kHz连续降低到时刻t5处的24kHz,且这种连续变化还使得波形数据能够以压缩的方式被记录在波形存储器中。在此情况下,以音分表示的原有音高数据OP得到设定,以从乐音的开始至结束线性地变化。即,当以固定再现速率再现从波形存储器读出的波形数据时,再现的波形数据的音高沿着音高轴从地址Ad4至地址Ad5线性地变化,如图25所示。
因此,在以如图25所示的方式变化的取样频率记录波形数据时,图23所示的电子乐器的原有音高发生器37只需要输出以虚线方式变化的原有音高数据OP,因而能够在结构上得到很大的简化。
在根据本发明的波形数据压缩方法在波形存储器中记录波形取样数据的设置中,以及在包括其中记录有波形取样数据的这种波形存储器的电子乐器中,由框表示的功能可以用硬件部件实施,但也可以用MPU(微处理单元)或DSP(数字信号处理器)实施。
根据以上描述的本发明,在所要记录的乐音的、其中波形数据包含高频分量的升高部分,取样频率得到提高,且在其中波形数据包含不那样高的频率分量的延音部分取样频率被降低,因而所要记录在波形存储器中的波形取样数据在量上能够得到有效的减小并能够得到较大的压缩。其结果,本发明减小了波形存储器的存储容量并使存储器得到有更为有效的利用。
Claims (29)
1.一种由算术处理装置来执行的用于形成乐音波形取样的乐音发生方法,所述方法包括执行波形形成计算以形成一个波形的步骤,
其特征在于所述方法进一步包括如下步骤:
以独立于所述乐音波形的音高,改变由所述执行波形形成计算的步骤所形成的波形的取样频率,以控制所述波形形成计算的分辨率。
2.根据权利要求1所述的乐音发生方法,
其中执行波形形成计算的步骤执行所述波形形成计算,以形成对应多个乐音发生通道的多个波形,并且包括执行音高控制的步骤,以独立于所述多个乐音发生通道中的每个通道,控制对每个所述乐音发生通道的音高,以及
其中执行分辨率控制的步骤执行所述分辨率控制,以根据要形成在每个所述通道中的所述多个波形中的每个波形的特性以及每个所述通道相对于其他所述通道的重要性,以独立于所述多个乐音发生通道,控制所述波形形成计算的所述分辨率,以及
从而以独立于其他所述通道,控制在每个所述通道中的每个所述波形的分辨率。
3.根据权利要求1所述的乐音发生方法,
其中所述执行分辨率控制的步骤执行所述分辨率控制,以根据所述波形的谐波分量的时间变化率,改变所述波形形成计算的所述分辨率,
从而以产生一个乐音过程中变化的所述波形形成计算的所述分辨率形成所述波形。
4.根据权利要求1所述的乐音发生方法,
其中所述执行波形形成计算的步骤执行所述波形形成计算,以形成与多个乐音发生通道相对应的多个乐音的波形数据,并且该步骤包括产生用于为每个乐音发生通道控制要形成在所述通道中的波形数据的第一控制数据的步骤,以及
其中所述执行分辨率控制的步骤包括产生用于为每个乐音发生通道指定要在每单位时间中要形成在所述通道中的特定数目的乐音取样的第二控制数据的计算控制步骤,以及
其中所述执行波形形成计算的步骤进一步包括一个乐音形成步骤,其对于每个乐音发生通道,根据所述第一控制数据以及由所述第二控制数据所指定的取样形成速率而算术地形成与所述通道相对应的乐音的波形数据,以及
其中所述方法进一步包括根据对于多个乐音发生通道在所述乐音形成步骤中形成的波形数据产生乐音的步骤。
5.根据权利要求4所述的乐音发生方法,其中所述计算控制步骤形成第二控制数据,其响应构成在每一个乐音发生通道中所要形成的波形数据的波形分量随时间变化而变化。
6.根据权利要求4所述的乐音发生方法,其中与在每一个乐音发生通道中所要形成的波形数据的乐音特性随时间的变化相对应,所述计算控制步骤改变所要产生的所述第二控制数据。
7.根据权利要求4所述的乐音发生方法,其中所述第一控制数据包括指定在每一个乐音发生通道中所要产生的乐音的音高的音高信息,且其中所述乐音形成步骤根据所述第二控制数据指定的取样形成速率,将每一个通道的音高信息转换成所要产生的乐音的相位变化速率。
8.根据权利要求1所述的乐音发生方法,
其中所述执行波形形成计算的步骤执行该计算,用于同时产生至少两个乐音,并且包括:
第一形成步骤,用于以每单位时间N个取样的形成速率形成包含高频分量的第一乐音波形的取样;
第二形成步骤,用于以每单位时间M个取样的形成速率形成包含高频分量的第二乐音波形的取样,其中M和N为整数,并且M小于N,其中包含在所述第二乐音波形中的高频分量比包含在所述第一乐音波形中的高频分量更少;
使所述第二乐音波形的M个取样受到插值操作以提供所述第二乐音波形的N个取样的步骤;以及
混合步骤,用于将所述第一乐音波形的N个取样和所述第二乐音波形的N个取样逐取样地依次相加,以提供混合乐音波形的N个取样;以及
其中,所述方法进一步包括根据所述混合步骤提供的混合乐音波形产生乐音的步骤。
9.根据权利要求1所述的乐音产生方法,
其中所述执行波形形成计算的步骤执行对应于多个乐音发生通道的多个乐音的波形数据的形成,并且包括:
分组步骤,用于将所述多个乐音发生通道分成第一和第二组;
第一形成步骤,用于为所述第一组的每一个通道每单位时间形成乐音波形的N个取样,并依次在通道之间将N个取样相加,以提供第一混合波形的N个取样;
第二形成步骤,用于为所述第二组的每一个通道每单位时间形成乐音波形的M个取样,并依次在通道之间将M个取样相加,以提供第二混合波形的M个取样,其中M和N为整数,并且M小于N;
使所述第二乐音波形的M个取样受到插值操作以提供所述第二乐音波形的N个取样的步骤;以及
混合步骤,用于将所述第一混合波形的N个取样与所述第二混合波形的N个取样逐取样地依次相加,以提供混合乐音波形的N个取样;以及
其中所述方法进一步包括根据所述混合步骤提供的混合乐音波形产生乐音的步骤。
10.根据权利要求1所述的乐音发生方法,
其中所述执行波形形成计算的步骤执行所述波形形成计算,以在多个连续时间段中形成波形取样数据,以及
所述执行分辨率控制的步骤包括根据包含在要被形成的一个乐音中的谐波分量对于所述多个连续时间段的每个时间段指定一个取样频率的步骤,以及
从而对于所述多个时间段中的每个时间段,用已经为每个所述时间段指定的所述取样频率形成波形取样数据。
11.根据权利要求1所述的乐音发生方法,其中要被产生的一个乐音被分配多个连续时间段,以及
其中所述执行波形形成计算的步骤执行所述波形形成计算,以在每个时间段中形成波形取样数据,以及
其中所述执行分辨率控制的步骤包括确定要在独立于其他所述时间段的每个时间段中形成的波形取样的时间分辨率的步骤,以及
其中所述执行波形形成计算的步骤包括执行算术运算以便以对每个所述时间段确定的时间分辨率形成用于每个时间段的波形取样数据的步骤,以及
其中所述方法进一步包括输出由执行波形形成计算的所述步骤所形成的波形取样数据的步骤。
12.根据权利要求11所述的乐音发生方法,
其中所述执行算术运算的步骤利用该时间段中的可选时间形成与确定的分辨率对应的特定数目的波形取样,且
其中所述输出步骤包括暂时缓存利用可选时间形成的波形取样数据并以所希望的再现速率读出缓存的波形取样数据的步骤。
13.根据权利要求1所述的乐音发生方法,
其中所述执行波形形成计算的步骤在多个通道中形成与所希望的声音相对应的波形取样数据,并且包括以下步骤:
在每一个通道中以为各个通道独立确定的取样速率形成波形取样数据,其中所确定的一个取样速率是一个输出取样速率;
使用除了输出取样速率之外的用于一个或多个通道的一个相同取样速率混合在一个或多个通道中形成的波形取样数据,从而利用除了输出取样速率之外的每个不同的取样速率提供混合的波形取样数据;
对于除了该输出的取样速率之外的每个不同的取样速率,对混合的波形取样数据进行再取样,从而提供具有该输出取样速率的再取样的波形取样数据;以及
混合该再取样的波形取样数据和该输出取样速率的波形取样数据,以提供具有该输出取样速率的输出波形取样数据。
14.根据权利要求13所述的乐音发生方法,其中进一步包括在波形取样数据之间进行内插的步骤。
15.根据权利要求13所述的乐音发生方法,其中各个通道的取样速率是根据在所述各个通道中所要产生的乐音的时间段而可变地确定的。
16.根据权利要求1所述的乐音发生方法,其中进一步包括输入持续一个周期的波形的输入步骤,以及
其中所述执行分辨率控制包括在所述周期过程中改变一个记录取样频率的控制步骤,以及
其中所述执行波形形成计算的步骤包括通过使用所述记录取样频率对该波形取样以获得波形数据的一个取样步骤,以及
其中所述方法进一步包括把通过所述取样步骤所获得的波形数据顺序地写入到一个存储器的写入步骤。
17.根据权利要求16所述的乐音发生方法,其中该记录取样频率在该周期过程中的定时逐级变化。
18.根据权利要求16所述的乐音发生方法,其中进一步包括:
指定步骤,用于指定一个再现速率;
产生步骤,用于产生与记录在波形存储器中的波形数据中出现的音高变化相对应的变化数据,这种音高变化是由于所述控制步骤产生的记录取样频率的变化而产生的;
修正步骤,用于用该变化数据对由所述指定步骤指定的再现速率进行修正;以及
再现步骤,用于以与所述修正步骤修正的再现速率相对应的速率,对波形存储器进行读取。
19.根据权利要求18所述的乐音发生方法,其中在以固定速率读出波形数据的情况下,所述变化数据是表示由波形数据表示的对数区的频率的数据。
20.根据权利要求19所述的乐音发生方法,其中所述修正步骤在再现速率与变化数据之间进行相加或相减。
21.根据权利要求1所述的乐音发生方法,其中进一步包括根据该取样频率和乐音音高产生一个增量的步骤,
其中所述执行波形形成计算的步骤累计所述增量,根据所述增量的累计值读出存储在一个存储器中的波形数据以及根据该读出的波形数据形成与该取样频率相应的波形数据。
22.根据权利要求21所述的乐音发生方法,其中所述产生一个增量的步骤通过执行包含随着该乐音音高变化的第一变量和随着该取样频率变化的第二变量的一个数学表达式而产生该增量。
23.一种乐音发生设备,包括:算术处理部分,用于形成乐音波形取样,所述算术处理部分包括用于执行波形形成计算以形成一个波形的装置,其特征在于所述算术处理部分进一步包括:
用于执行分辨率控制的装置,用于以独立于所述乐音波形的音高,改变要由用于执行波形形成计算的所述装置所形成的波形取样频率而控制所述波形形成计算的分辨率。
24.根据权利要求23所述的乐音发生设备,
其中所述用于执行分辨率控制的装置执行所述分辨率控制,以根据所述波形的谐波分量的时间变化率,在计算过程中改变所述波形形成计算的所述分辨率,
从而以产生一个乐音过程中变化的所述波形形成计算的所述分辨率形成所述波形。
25.根据权利要求23所述的乐音发生设备,
其中所述用于执行波形形成计算的装置执行用于同时产生至少两个乐音的计算,并且包括:
第一形成装置,用于以每单位时间N个取样的形成速率形成包含高频分量的第一乐音波形的取样;
第二形成装置,用于以每单位时间M个取样的形成速率形成包含高频分量的第二乐音波形的取样,其中M和N为整数,并且M小于N,其中包含在所述第二乐音波形中的高频分量比包含在所述第一乐音波形中的高频分量更少;
使所述第二乐音波形的M个取样受到插值操作以提供所述第二乐音波形的N个取样的装置;以及
混合装置,用于将所述第一乐音波形的N个取样和所述第二乐音波形的N个取样逐取样地依次相加,以提供混合乐音波形的N个取样;以及
其中所述设备进一步包括根据所述混合装置提供的混合乐音波形产生乐音的装置。
26.根据权利要求23所述的乐音发生设备,其中要被产生的一个乐音被分配多个连续时间段,以及
其中所述用于执行波形形成计算的装置执行所述波形形成计算,以在每个时间段中形成波形取样数据,以及
其中所述用于执行分辨率控制的装置包括确定要在独立于其他所述时间段的每个时间段中形成的波形取样的时间分辨率的装置,以及
其中所述执行波形形成计算的装置包括执行算术运算以便以对每个所述时间段确定的时间分辨率形成用于每个时间段的波形取样数据的装置,以及
其中所述设备进一步包括一个输出部分,用于输出由所述算术处理部分所形成的波形取样数据。
27.根据权利要求26所述的乐音发生设备,其中所述算术处理部分以对所述通道独立确定的分辨率,形成要在每个通道中产生的乐音的波形取样数据。
28.根据权利要求23所述的乐音发生设备,其中所述算术处理部分进一步包括用于根据该取样频率和乐音音高产生一个增量的装置,
其中所述执行波形形成计算的装置累计所述增量,根据所述增量的累计值读出存储在一个存储器中的波形数据以及根据所读出的波形数据形成与该取样频率相应的波形数据。
29.根据权利要求28所述的乐音发生设备,其中所述产生一个增量的装置通过执行包含随着该乐音音高变化的第一变量和随着该取样频率变化的第二变量的一个数学表达式而产生该增量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP173940/95 | 1995-06-19 | ||
JP173941/95 | 1995-06-19 | ||
JP7173940A JP2940440B2 (ja) | 1995-06-19 | 1995-06-19 | 電子楽器の波形データ圧縮記録方法および波形データ再生方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB961023139A Division CN1174370C (zh) | 1995-06-19 | 1996-06-18 | 形成音色波形的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101656067A true CN101656067A (zh) | 2010-02-24 |
Family
ID=15969892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910163309A Pending CN101656067A (zh) | 1995-06-19 | 1996-06-18 | 形成乐音波形的方法和装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2940440B2 (zh) |
CN (1) | CN101656067A (zh) |
-
1995
- 1995-06-19 JP JP7173940A patent/JP2940440B2/ja not_active Expired - Fee Related
-
1996
- 1996-06-18 CN CN200910163309A patent/CN101656067A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2940440B2 (ja) | 1999-08-25 |
JPH096363A (ja) | 1997-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1591564B (zh) | 形成乐音波形的方法和装置 | |
KR100421589B1 (ko) | 악음생성방법및장치 | |
US5955691A (en) | Software sound source | |
US6180863B1 (en) | Music apparatus integrating tone generators through sampling frequency conversion | |
US6326537B1 (en) | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency | |
US5283386A (en) | Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means | |
JP3008922B2 (ja) | 楽音発生装置および楽音発生方法 | |
CN101656067A (zh) | 形成乐音波形的方法和装置 | |
JP2000276172A (ja) | 楽音生成装置および記憶媒体 | |
US5670728A (en) | Musical tone creating apparatus for electronic musical instrument | |
JP3658826B2 (ja) | 楽音生成方法 | |
JP3000894B2 (ja) | 楽音発生方法 | |
JP2576614B2 (ja) | 処理装置 | |
JP3003559B2 (ja) | 楽音生成方法 | |
JP3016470B2 (ja) | 音源装置 | |
JP3603638B2 (ja) | 楽音発生方法 | |
JP7159583B2 (ja) | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 | |
JP3275678B2 (ja) | 楽音発生方法および装置 | |
JP3164096B2 (ja) | 楽音発生方法及び装置 | |
JP3632744B2 (ja) | 音生成方法 | |
JPH0997067A (ja) | 楽音発生方法および楽音発生装置 | |
JP2956552B2 (ja) | 楽音発生方法および装置 | |
JP3832382B2 (ja) | 楽音生成装置及びプログラム | |
JP3603849B2 (ja) | 楽音発生方法 | |
JPS6352399B2 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100224 |