采用时间扩展/压缩控制技术的音发生装置及方法

文档序号:2820536阅读:390来源:国知局
专利名称:采用时间扩展/压缩控制技术的音发生装置及方法
技术领域
本发明涉及一种音发生装置及方法,其用于完全和部分地不依赖于波形数据的音调控制而对音波形数据时间轴长度(再现时间长度)进行控制以将其扩展或压缩,从而在时间轴方向上提高了音调的表现力和可控制性。本发明作为一种音发生装置及方法可以广泛应用,不仅可以用于电声乐器也可用于其它音或声音发生装置,例如游戏机,个人电脑以及其它多媒体设备。
人们所知的常规音发生器,它是基于波形存储读出法(PCM或脉冲编码调制法)的,它用于电声乐器及类似装置中,通过调整从波形存储器读出的波形数据的速率来控制每个音波形的音调。更具体地说,通过累计所谓的“F值”(与音调音频成比例的频率数),在按读地址连续地读出波形数据时,通过增加F值可控制音调变高,通过减小F值可控制音调变低。在这种情况下,当读出一组有限数量的波形数据时,随着波形数据(波形采样值)的读出速率不同,波形数据的音再现或音发生时间长度将会发生不期望有的变化。亦即, 当音调变高时,音发生时间长度变短。因此,常规的PCM音发生器不能令人满意,原因在于其无法控制不依赖音调自由地扩展或压缩时间长度,即从波形存储器读出波形数据的音发生时间长度。
此外,当使用者需要对存储器中读出的波形进行某些改变而赋予要产生的音(它有时指的是“待发的音”)以特别的表现形式而不是仅仅将读出的波形直接发出一个音时,用这种PCM音发生器已经可以控制三种不同的音参数音调、音量、音色(或称音品)。对于音调,可以通过将读出的波形数据做必要的调制从而实现一个音调调制效果,如颤音或瞬态音。对于音量,通过在一个给定包络波形的基础上,对读出的波形数据施加一个音量幅度包络线,或者周期性地对读出波形数据的音量幅度进行调制可以实现颤音效果或类似的效果。进一步讲,对于音色,通过将读出数据进行滤波处理而实现适当的音色控制。如上所提到的,已知的对一个待发出的音赋予表现形式的控制技术包括对三个主要的音参数音调、音量、音色实施一定的控制。然而,迄今为止尚没有提出沿时间轴控制待发音的波形数据从而表现一个待发音以提高其音表现力及可控性的方法。
进一步讲,通过在PCM音发生器中对三个音参数实施上述的外部控制的即改变读出速率,控制读出音量幅度,和音色滤波,难以接近地对真实乐器发音的品质。这样,为了提高PCM音发生器发出声音的品质,在波形存储器中预存多个周期的预先施加了多种调制,(诸如颤音和碎音)效果的波形,从而可以仅仅读出存储的波形就能够发出具有这些调制效果的音,并且这些音与自然器械音具有同样好的品质。但是,在读出对其施加了调制效果的音的波形数据时,调制周期(时期)和调制时间会随着波形数据读出速率的变化而发生不期望有的变化。就是说,无法不依赖于波形数据的读出速率,即音调对调制周期、调制时间等进行控制。
进一步讲,尽管通过直接对真实的乐器进行采样,PCM音发生器可以在波形存储器中预存一些具有所需音效果和特征的波形数据,但这存在一个问题,当读出这些音调受控(即读数速率是变化的)数据时,发音的时间轴将随读出速率的变化而变化。这样的缺点可以通过防止读出速率改变来避免,但是当要以森特(cent)精度精确地按真实乐器声音再现多种音调时,如果对于每一个音调有多种(套)具有多种效果的多个周期的波形数据要存储,则需要大量的存储容量。这样,这种方法是不实用的。
此外,在声音处理领域,作为一种语速转换技术,PICOLA方法现已为人们所知。例如,当应用于按照所述的次序以一个预定的再现采样速率读出五个波形周期的波形区段A、B、C、D和E以输出一个声音波形的情况时,PICOLA方法可以在第一周期使用将渐弱区段A的波形与渐强区段B的波形相加得到的一个波形,然后在第2至第4周期输出区段C、D和E。这样,无需改变预定的再现采样频率,PICOLA方法也可以将时间轴压缩成4个周期而输出具有原五个周期全部时间长度的波形。当应用于另一种情况,即按照所述顺序以预定的再现采样频率读出有3个波形周期的波形区段A、B和C以输出一个声音波形,并且需要扩展或扩展时间长度时,PICOLA方法在第一个周期可使用区段A接着在第二个周期使用将渐弱区段A的波形与渐强区段B的波形相加得到的一个波形,然后在第三和第四周期输出区段B和C。这样,无需改变预定的再现采样频率,PICOLA方法通过将时间长度扩展或压缩成四个周期,就可以输出原来具有三个周期的全部时间长度的波形。然而这种语速转换技术仅能够读出以预定的再现采样频率录制的信号,而不能以任选调(音调)变化地读出该声音信号。换句话说,对于上述问题,现有技术没有提出对策和解决方案。
如上所述,传统的用于电声乐器的以波形—存储器为基础的音发生器具有这样的问题,读出波形数据的时间长度随读出速率的变化而变化,因而不能随意地扩展和压缩。此外,传统的声音处理技术不能以森特(cent)的精度精确控制音调,并且很难将这种声音处理技术直接应用于波形存储音发生器。
所以本发明的一个目的就是提供一种适用于一种基于从波形存储器中读出的波形数据的音发生器的技术,它可以随意可变地对数据读出速率(音调)进行控制并且也可以不依赖于读出速率而沿时间轴扩展和压缩波形数据。
本发明的另一个目的是提供一种适用于一种基于从波形存储中读出的波形数据的音发生器的技术,通过引入作为一种音控制方式的沿时间轴方向扩展或压缩波形数据的控制方式,能够利用基本不需要增大存储器容易的简单结构对一个待发音赋予表现形式并显著增强了音表现力和可控性。
本发明再一个目的就是提供一种装置及方法,其适用于波形存储器中存有任意特征形式的多个周期波形的高品质波形数据,从而通过读出存储数据而再现一个音的情况,它能够可变地控制波形数据读出数率,按照所需的音调再现一个音以使多个不同的音调共享同样的存储波形数据,从而大大节约存储容量,并且它还可以不依赖于波形数据读出速率的控制,沿时间轴对波形数据的读出位置进行扩展和压缩控制,从而提供一个时间轴控制参数作为对任意特征形式的一个附加音控制参数,这样就能够以迄今为止从未具有的较高的表现力和可控制性实现任意特征形式的音频发生和音控制。存储在波形存储器中的对应于任意特征形式的波形数据可包括经过调制的如颤音或碎音,经过音调调制的如音调变调,以及经过瞬间音调波动调制的诸如瞬态音或装饰音。
本发明的又一个目的就是提供一种装置及方法,其适用于在波形存储器中存有多周期波形的波形数据,从而通过将存储数据读出而再现一个音的情况,它能够可变地控制波形数据读出数率,按照所需的音调产生一个音以使多个不同的音调共享同样的存储波形数据,从而大大节约存储容量,并且它还可以不依赖于波形数据读出速率的控制,沿时间轴对波形数据所需部分(全部或部分)的读出位置进行控制将其扩展和压缩,从而任意控制所需部分的音再现音或音发生时间长度,这样得到了多种音波形的变化,从而以迄今为止从未具有的较高表现力和可控性实现了音发生和音控制。
亦即,本发明试图提供一种装置和方法,它可以随意地实施对一个音的上升部分和下降部分或类似部分的音发生时间长度的可变控制,从而得到一个音波形的多种变化形式并且以迄今为止从未具有的较高的表现力和可控性实现音发生和音控制。
本发明的另一个目的是提供一种音发生装置和方法,它可以通过对波形数据的时间轴控制可变地控制待发音的总时间长度,从而按照音符长度或其他类似参数随意控制发音时间。
本发明的再一个目的是提供一种音发生装置和方法,它可以根据指定音色或此类特征的信息有选择地产生一个随时间变化的时间轴扩展/压缩控制参数,从而得到与指定音色等信息相应的音波形的多种变化,进而通过时间轴控制,从相同的多周期波形的波形数据产生多种波形变化。
本发明的又一个目的是提供一种音发生装置和方法,它适用于从波形存储器中以重复的或循环的方式读出同一波形部分的波形数据的情况,它实现多种音波形变化,并且通过沿时间轴控制波形数据所需部分的读出位置将其扩展和压缩,实现音发生和音控制,同时消除了循环读出所引起的单调性。
本发明的另一个目的是提供一种音发生装置和方法,通过沿时间轴对波形数据所需部分的读出位置以及重复读出部分进行控制将其扩展和压缩,进而对待发音确定的控制,诸如节奏它获得了波形数据的多种变化。
本发明的再一个目的是提供一种音发生装置和方法,即使在再现一个音波形的过程中,也可以沿时间轴对波形数据进行控制使其扩展和压缩,实时响应沿时间轴压缩和扩展的动态变化率。
本发明的又一个目的是提供一种音发生装置和方法,通过匀滑转换合成法,在对沿时间轴扩展和压缩波形数据的读出位置进行控制的同时获得了一个光滑波形变化的时间轴扩展和压缩控制。
本发明的另一个目的是对于上述相关的波形数据的匀滑转换合成法提出几点改进。
根据本发明的第一方面,提供了一种音发生装置,它包括存储有多周期波形的波形数据的一个波形存储器;指定待发音音调的一个指定部分;产生控制信息的一个控制信息发生部分,其以一个时间函数的形式从波形存储器读出波形数据的地址位置;一个地址发生部分,其产生按照与指定部分指定的音调相对应的速率增进的一个读地址;一个控制单元,其将控制信息部分指定的地址位置同地址发生部分产生的读地址位置进行比较,并根据比较结果控制读地址的偏移;以及一个在由控制单元控制的在读地址的基础上读出波形数据的部分。
由控制信息发生部分产生的控制信息,以一个时间函数的形式,规定了从数据存储器中读出的波形数据的一个地址位置。由地址发生部分产生的读地址指定的读地址前进或增进的速率(即读地址改变或增进的斜率)。由控制单元将由控制信息产生的读地址(一种目标或虚拟读出位置)同地址发生部分产生的读地址(即一个实际的读出位置)进行比较,并且控制单元根据比较结果改变读地址。这样,根据待发音的音调进行控制读地址增进速率(即读地址改变或增进的斜率),由控制信息控制波形数据的读出位置与时间的关系。结果,可以不依赖于读出率的控制(即待发音的音调控制)而根据控制信息沿时间轴将数据随意扩展和压缩从而读出与所述音调相应的波形数据。
在下文中所述本发明的一个优选实例中,将指定了一个从波形存储器中读出波形数据地址位置的控制信息,作为一个虚拟读地址,同时,将以对应于指定音调的速率增进的读地址作为实际的读地址。
可取的是,将存储在波形存储器中的波形数据分成多个数据组,并且按这样的方式设置,各个数据组的第一波形数据在相位上分别相一致,并且当控制信息给定的地址位置与地址发生单元产生的读地址的位置之间的差超出了一个预定值,控制单元以与一个或多个数据组相关的一个量偏移读地址。当沿时间轴扩展或压缩波形数据的读出位置时,将会发生读出位置的不连续性。然而,通过以与一个或多个数据组相关的一个量偏移读地址,可以得到一个光滑的互连或互锁波形,即使在通过扩展或压缩将离散的波形段互相连接在一起的情况也如此。
在另一个优选实施例中,也提供了一个匀滑转换部分,当控制单元偏移读地址时,它在基于调整前产生的读地址从波形存储器中读出的波形和基于调整后的读地址从波形存储器中读出的波形之间进行匀滑转换合成。而且在这种情况下,在通过沿时间轴扩展或压缩波形数据的读出位置将分散的波形段互相连接起来的情况下,也可以得到一个光滑的相互连接或互锁的波形。
本发明也提供了一种基于从波形存储器中的读出值产生一个音的方法,该波形存储器已存储了多周期波形的波形数据,这种方法包括一个指定待发音音调的步骤;一个产生控制信息的步骤;一个控制步骤,它随着时间的推移,指定从波形数据存储器中读出数据的离散位置,同时依据控制信息控制扩展或压缩波形数据的时间轴,以及以对应于指定步骤指定的音调的速率从波形存储器读出在控制步骤指定的位置的波形数据的一个步骤。按照这样的方法,根据控制信息可以产生一个音,这个音具有指定的音调以及一个沿时间轴扩展或压缩的控制特征的波形数据。
控制步骤随时间的推移,指定从波形存储器读出的波形数据的离散位置,并且根据所生成的控制信息控制滑时间轴扩展或压缩的离散位置。换句话说,对于存储器中的每一个地址,由控制步骤确定的从波形存储器中读出的波形数据的位置不必象正常读出波形数据的采样值那样,一定顺序地指定,可以在适当分开的点或隔开适当的部分或区段分散地指定。在指定从波形存储器读出波形数据的分散的位置的过程中,从指定的位置顺序地读出完整的波形数据采样值,即波形存储器中实际读地址的指定是由读步骤按照与指定音调相对应的速率实现的。这样,按照与指定音调相对应的速率从波形存储器中适当分开的点或隔开适当的部分或区段读出所述的波形数据。这样,当指定从波形数据存储读出的波形数据的位置,同时根据与读出速率(音调控制)无关的控制信息控制它的时间轴使其扩展或压缩时,就根据指定的音调对读出波形数据的音调进行了控制。因而,可以不依赖于读出速率(音调控制)而对从波形存储器读出的波形数据的时间轴位置随意进行控制,将其扩展或压缩。在这里,为了不削弱读出波形音调的效果及读出波形一个周期的音色特征,最好使上述适当分开的点或适应的部分或区段设定位覆盖至少一个波形数据周期。
进一步说,根据本发明的一种机械易读的记录介质,它含有一个计算机程序以执行上述音发生方法。
根据本发明的另一方面,提供了一个音发生装置,它包括一个波形存储器,其中存储有一个多周期波形的波形数据,该波形数据上施加了调制作用;一个指定部分,它指定了一个待发音的音调;一个产生控制信息的部分,用于控制时间轴的调制;一个控制单元,随着时间的推移,指定从波形数据存储器读出的波形数据的分散的位置,同时由控制单元对所述波形数据的时间轴进行控制,根据控制单元的控制信息将其扩展或压缩;以及一个读出部分,以与指定部分指定的音调相对应的速率,从波形存储器读出在由控制单元指定的位置的波形数据。
将对其进行了调制的高品质多周期波形数据,诸如颤音或碎音,存储在波形存储器中。当读出该波形数据以产生一个音时,对读出速率进行可变地控制,从而以一个所需的音调再现这个音,这使得可以用所存储的波形数据为多个不同的音调共享,从而大大节省了存储容量。而且,当读出波形数据产生一个音时,沿时间轴对波形数据的读出位置进行与波形数据读出速率的控制无关的控制,将其扩展或压缩,它得到的音发生和音控制具有迄今为止所不曾具有的增强的的表现力及可控性。
根据本发明的另外一个方面,提供了一个音发生装置,它包括一个波形存储器,其中存储有多周期波形的波形数据;一个指定部分,它指定了一个待发音的音调;一个根据从波形数据存储中重复读出的波形数据的预定部分产生控制信息的部分;一个控制单元,它随着时间的推移指定从波形数据存储器读出的波形数据的分散的位置,同时由控制单元对所述波形数据的时间轴进行控制;根据控制信息将其扩展或压缩;以及一个读出部分,它以相应于由指定部分指定的音调的速率从波形存储器读出波形数据,其中,当重复读出预定部分时,读出部分以对应于指定音调的速率在控制单元指定的位置读出所述的波形数据。
当从波形存储器以重复或循环的方式读出同一波形部分的波形数据时,通过沿时间轴对波形数据所需部分的读出位置进行控制,将其扩展或压缩,所述音发生装置获得了该音波形的多种变化形式,并且可实施在音发生和音控制的同时省去了由循环读出所导致的单调性,从而随意地控制所需部分的音再现或音发生时间长度。
根据本发明的另外一个方面,提供了一个音发生装置,它包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定了一个待发音的音调;一个产生随时间改变的控制信息部分;一个控制部分,随时间指定从波形数据存储器读出的波形数据的分散的位置,同时,由控制单元对所述波形数据的时间轴进行控制,根据控制信息将其扩展或压缩;以及一个读出部分,以与音调指定部分指定的音调相对应的速率,从波形存储器读出由控制单元指定位置的波形数据。
根据随时间变化控制信息(例如一个节奏波形),沿时间轴对波形数据实施控制,将其扩展或压缩,这种设置获得了波形的多种变化形式,从而确定地给予待发音一个随时间变化的精确控制,诸如节奏。
根据本发明的另一方面,提供了一种音发生装置,它包括一个波形存储器,其中存有多周期波形的波形数据,所说波形具有基于预定的特征形式在一个预定的周期上施加的一个音特征变化形式;一个音调指示部分,其指定待发音的音调;一个产生控制信息的部分,在预定的特征形式的基础上控制音发生周期;一个控制单元,它随着时间的推移,指定从波形存储器读出波形数据的分散的位置,同时控制单元对波形数据的时间轴进行控制,根据控制信息将其扩展或压缩;以及一个读出部分,它以与音调指定部分指定的音调相对应的速率,从波形存储器中读出在控制单元指定位置的波形数据。
当波形存储器中存入与预定特征相对应的多周期波形的波形数据,以便通过读出存入的波形数据产生一个音的时候,所述的预定特征形式诸如,那些具有瞬态音调调制的,例如音调变调,那些标有联音符的,或者那些瞬态音调波动,如瞬态音或装饰音,本发明可以在预定特征形式的基础上高质量地产生这个音,并且还可以不依赖于波形数据读出率的控制(待发音的音调控制)而沿时间轴对波形数据的读出位置实施控制,将其扩展或压缩,同时仅需要较少的存储容量。这样,本发明对于任意特征形式能够提供一个时间轴控制参数,作为附加的音控制参数,从而对于预定的特征形式获得了适当的音发生和音控制,它们具有迄今为止所不曾具备的表现力和可控性。在这种情况下,施加到波形存储器中存储的波形数据上的瞬态音特征变化除了如变调的音变化形式外,还有音品或音量的变化。
作为上述瞬态波形控制的另一种实现方式,本发明提供一个音发生装置,它包括一个波形存储器,其中存有代表第一个波形的波形数据,代表第二波形的第二波形数据,以及多周期第三波形的第三波形数据,该多周期第三波形具有施于其上的音特征变化以便与第一波形和第二波形相互连接;一个音调指示部分,用于指定待发音的音调;一个这样的部分,当实现从第一波形到第二波形的转换时,其进行控制,使得在读出第一波形和第二波形之间插入第三波形;一个产生控制信息的部分,对使用第三波形的时间进行控制;一个控制单元,其随时间的推移,指定从波形存储器读出至少一部分第三波形的分散的位置,同时由该控制单元控制第三波形数据的时间轴,根据控制信息对其进行扩展或压缩;以及一个读出部分,它以与音调指定部分指定的音调相应的速率从波形存储器中读出波形数据,在其中也读出第三波形数据,读出部分以对应于所指定音调的速率读出在控制单元指定的位置的第三波形数据。
本发明还提供了一种音发生装置,它包括一个波形存储器,存有多周期波形的波形数据;一个音调指定部分,指定了待发音的音调;一个根据预定的部分音调发生周期产生控制信息的部分;一个控制单元,随时间的推移指定从波形存储器读出至少一部分第三波形的分散的位置,同时由该控制单元控制第三波形数据的时间轴,根据控制信息对其进行扩展或压缩;以及一个读出部分,它以与音调指定部分指定的音调相应的速率,在由控制单元指定的位置从波形存储器中读出波形数据。
通过不依赖于波形数据读出速率的控制(所发音的音调的控制)沿时间轴在波形数据所需区段中(全部或部分)控制读出位置,将其扩展或压缩,从而有选择地控制所需部分的再现音或发音时间长度,本发明获得了一个音波形的多种变化,从而使得音发生和音控制具有以往所不曾具有的表现力和可控性。例如,通过按预定的发音周期选择所发音的上升部分下降部分或其他类似的部分,本发明获得了多种音波形的变化,它能够以较高的表现力和可控性执行音发生和音控制。通过使用控制信息可变地控制所发音的整个时间长度,本发明还能够自由地控制发音时间长度,使其与指定的音符长度或类似的特征一致,而与音调无关。
根据本发明的另一个方面,提供一个音发生装置,它包括一个波形存储器,存有多个周期波形的波形数据;一个音调指定部分,其指定待发音的音调;一个音色指定部分,它指定了待发音的音色;一个产生控制信息的部分,它随着时间的推移从音发生起始点以与音色指定部分指定的音色相对应的形式产生该控制信息;一个控制单元,随时间的推移指定从波形存储器读出波形的分散的位置,同时由该控制单元控制数据的时间轴,根据控制信息对其进行扩展或压缩;以及一个读出部分,它以与音调指定部分指定的音调相应的速率从波形存储器中读出与指定音色相对应的波形数据。其中,读出部分以从控制单元指定的位置以对应于指定音调的速率读出所述波形数据。在此,存储在波形存储器的多周期波形数据由至少两个不同的音色共享,并且,将用于所述至少两个不同音色的控制信息设置成不同的形式。
通过根据指定音色或其它类似特性的信息有选择地产生时间变化特性的时间轴扩展/压缩控制信息,本发明获得了一个对应于指定的音色或其它类似特征的音波形的多种变化,从而通过时间轴控制从一个多周期波形的波形数据产生多种波形变化。
根据本发明的另一个方面,提供了一个音发生装置,它包括一个波形存储器,存有多周期波形的波形数据;一个音调指定部分,其指定待发音的音调;一个在发出一个音的过程中实时产生控制信息的部分;一个控制单元,随时间的推移指定从波形存储器读出波形的离散位置,同时由该控制单元控制数据的时间轴,根据控制信息对其进行扩展或压缩;以及一个读出部分,它以与音调指定部分指定的音调相应的速率在控制单元指定的位置从波形存储器中读出波形数据。
使用这样的装置,即使在再现一个音波形的过程中,本发明实时响应控制信息的动态变化沿时间轴对扩展和压缩波形数据进行控制,从而显著提高特征表现性。
根据本发明的另一个方面,提供了一个音发生装置,它包括一个波形存储器,存有多组不同的多周期波形的波形数据;一个音调指定部分,其指定待发音的音调;一个波形指定部分,其他指定波形数据中的任意一组,随着时间的推移,波形指定部分将指定的组换成另外一组;一个产生控制信息的部分;一个控制单元,随时间的推移指定从波形存储器读出的由波形指定部分指定的该组波形的离散位置,同时由该控制单元控制数据的时间轴,根据控制信息对其进行扩展或压缩;以及一个读出部分,它以与音调指定部分指定的音调相应的速率在控制单元指定的位置从波形存储器中读出波形数据。
这样,本发明能够以一个更加多样化的方式在波形数据时间轴扩展/压缩的基础上进行音控制。
根据本发明的另一个方面,提供了一个音发生装置,它包括一个波形发生部分,它在两个信道内产生波形数据;一个波形指定部分,它指定在波形发生部分的两个信道中的第一个信道内产生的波形数据以及在波形发生部分的两个信道中的第二个信道内产生的波形数据;一个匀滑转换合成部分,它执行匀滑转换合成运算,将产生于第一信□道中的波形数据转换成产生于第二信道内的波形数据;第一控制部分,它依次指示波形发生部分产生一个具有任意长度的辅助波形数据,并且控制匀滑转换合成部分根据辅助波形数据的长度执行一个周期的匀滑转换合成运算;以及一个第二控制部分,在匀滑转换合成部分完成匀滑转换合成运算之后,以这样的方式控制波形指定部分的指定,将迄今为止在第二信道内产生的波形数据在第一信道中产生,并在第二信道中产生辅助波形数据。
在进行匀滑转换的波形数据顺序地改变的情况下,本发明能够固定第一和第二信道内匀滑转换(渐强和渐弱)的方向,从而一直将第一信道内的波形数据转换成第二信道内的波形数据。使用这样的装置,可以为每一个信道固定一个匀滑转换函数波形,从而便于函数波形的信息安排。
根据本发明的另一个方面,提供了一个音发生装置,它包括一个波形存储器,其中存有多周期波形的波形数据;一个音调指定部分,其指定待发音的音调;一个波形指定部分,它随着时间的推移指定从波形存储器中读出波形数据的离散位置,同时控制波形数据的时间轴使其扩展或压缩,从而在当前指定的位置识别第一波形数据,在当前位置后的位置识别第二波形数据;一个读出部分,从波形存储器读出由波形指定部分指定的第一和第二波形数据,并通过第一和第二信道分别将所述第一和第二波形数据输出;一个匀滑转换合成部分,它一直执行匀滑转换运算将通过第一信道提供的第一波形数据转换成由第二信道提供的第二波形数据;一个控制单元,在完成匀滑转换合成部分执行的匀滑转换合成运算之后,以这样的方式控制波形指定部分的指定,将到此为止在第二信道内产生的波形数据在第一信道中产生,并且控制在新位置的波形数据将其相对于在第二信道内产生的第二波形数据的位置扩展或压缩。
使用这样的设置,对波形数据的读出位置实施时间轴扩展/压缩控制,本发明得到的控制在匀滑转换合成法的基础上提供光滑的波形变化。同上述的类似,还可以为每一个信道固定一个匀滑转换系数的函数波形从而便于函数波形的信息安排。
根据本发明的另一个方面,提供了一个音发生装置,它包括一个波形存储器,存有多周期波形的波形数据;一个音调指定部分,其指定待发音的音调;一个波形指定部分,它随着时间的推移指定从波形存储器中读出波形数据的离散位置,同时控制波形数据的时间轴使其扩展或压缩,从而在当前指定的位置识别第一波形数据,在相对于第一波形数据经过控制使其扩展或压缩的位置识别第二波形数据;一个读出部分,从波形存储器读出由波形指定部分指定的第一和第二波形数据,并通过第一和第二信道分别将所述第一和第二波形数据输出;一个匀滑转换合成部分,它执行匀滑转换运算,将通过第一、第二信道中的一个提供的第一、第二波形数据中的一个转换成由第一、第二波形数据中的另一个;一个控制单元,在匀滑转换合成部分匀滑转换合成运算之后,波形指定部分在一位置上指定波形数据,该位置已经相对于第二波形数据的位置进行了扩展或压缩控制,并以下面的方式控制波形指定部分的指定,紧接着读出部分通过已经使用的第一、第二信道中的同一个信道输出第二波形数据,并且读出部分通过第一、第二信道中的另一个信道输出在新位置上的波形数据并在匀滑转换部分中改变匀滑转换方向。
使用这样的设置,对波形数据的读出位置实施时间轴扩展/压缩控制,本发明得到的控制在匀滑转换合成法的基础上提供光滑的波形变化。
最后,根据本发明的另一个方面,提供了一个音发生装置,它包括一个波形存储器,存有多个周期波形的波形数据;一个音调指定部分,其指定待发音的音调;一个控制单元,随时间的推移指定从波形存储器读出波形的离散的位置,同时由该控制单元控制数据的时间轴,对其进行扩展或压缩;一个波形指定部分,根据控制单元的指定,当执行波形数据的扩展时,在当前位置指定波形数据的第一部分,在当前位置之后的位置指定波形数据的第二部分,当执行波形数据的压缩时,在当前位置指定波形数据的第一部分,在当前位置之前的位置指定波形数据的第二部分,并且在既不执行波形数据的扩展也不执行波形数据的压缩时,在当前位置指定与波形数据的第一和第二部分相同的一部分波形数据;一个读出部分,它从波形存储器以对应于音调指定部分指定的音调的速率读出由控制单元指定的波形的第一和第二部分;一个匀滑转换合成部分,它执行匀滑转换合成运算,将波形数据的第一部分转换成波形数据的第二部分。
使用这样的设置,本发明获得了在匀滑转换合成法的基础上提供光滑的波形变化的控制。另外,在不实施时间轴扩展或压缩的时候,本发明也在从第一和第二信道读出的同一波形数据之间进行匀滑转换合成,从而避免波形数据的时间轴扩展或压缩。用这种方式,仅从表面上看,本发明在任何时刻都进行匀滑转换合成运算。结果,将本发明构成为在任何时刻无条件实施匀滑转换合成的形式,而不必根据时间轴扩展/压缩控制参数作出决定,是否进行匀滑转换合成运算。这样能够显著地简化结构和必要的控制。
为了更好地理解本发明的上述及其它特征,下面将参照附图对本发明的优选实施例进行仔细的描述,其中

图1是一个电声乐器整体构成的方框图,其中使用了一个基于时间扩展和压缩控制(TSC)控制的发音技术;图2是描述了图1中波形发生部分具体构成的方框图;图3表示了根据本发明基于TSC控制沿时间轴实施压缩控制的过程中在波形存储器中地址随时间的增进方式的曲线图;图4表示了根据本发明基于TSC控制沿时间轴实施扩展控制的过程中在波形存储器中地址随时间的增进方式的曲线图;图5表示沿时间轴扩展和压缩原始波形的时间长度的示范形式;图6是表示通过实施TSC控制再现波形从而实施多波形控制的示范形式的简图;图7是描述用于产生存储在图2的波形存储器中的波形数据的步骤序列的流程图;图8是用于限定(标记)存储在波形存储器中的波形数据中数据组的处理步骤的流程图;图9是示意性表示了存储器中的示范存储格式的简图;图10A-10D以实例形式表示了波形存储器中波形数据的存储形式,并且为了数据管理将上述波形数据分成数据组;图11为一流程图,它描述了图1中的控制单元所允许运行的处理程序的主程序实例;图12为一流程图,它描述了图11中的键开关处理程序执行的键活动处理的实例;图13为一流程图,它描述了图11中的特征控制器处理实例;图14为一简图,它描述了当由图2中的虚拟读地址计算器产生的虚拟读地址具有非线性特性时的TSC控制形式,表示了在执行压缩控制时读地址在存储器中随时间增进的方式;图15为一简图,它描述了当由图2中的虚拟读地址计算器产生的虚拟读地址具有非线性特性时的另一种TSC控制形式,表示了在执行扩展控制时读地址在存储器中随时间增进的方式;图16为一简图,它描述了另一种TSC控制的改进型式,当待发音的音调相对高时,进行控制以沿时间轴扩展波形数据,从而保持这个音再现或音发生时间长度保持相对恒定,它表示了在扩展控制期间,在波形存储器中读地址随时间增进的典型方式;图17为一简图,它还描述了另一种TSC控制的改进型式,它当待发音的音调相对低时,进行控制以沿时间轴压缩波形数据,从而保持这个音再现或音发生时间长度保持相对恒定,它表示了在压缩控制期间,在波形存储器中读地址随时间增进的典型方式;图18为一简图,它还描述了另一种随时间变化的TSC控制的一种改进型式,直观地表示了当TSC控制实施周期性或非周期性调制控制时虚拟读地址和实际读地址的增进或变化形式;图19为一简图,它表示了在波形存储器中一个音的波形数据的示范存储形式;图20为一流程图,它描述了另一个特征控制器处理的实例;图21为一方框图,它描述了图1的电声乐器的改进方案;图22为一流程图,它描述了由图21所示的控制单元实施的MIDI输入处理的实例;图23为一流程图,它描述了由图21所示的控制单元实施的note-on处理的实例;图24为一流程图,它描述了由图21所示的控制单元实施的实时控制数据接收处理的实例;图25为一流程图,它描述了由图21所示的控制单元实施的与特征形式识别相关联的中断处理的实例;图26为一简图,它描述了对应于特征形式的存储的波形数据的实例;
图27为一简图,它描述了当作用一个连音符特征时,波形数据读出的示范方式;图28为一简图,它描述了当作用一个音调变调特征时,波形数据读出的示范方式;图29为一方框图,它示意地表示了图1或图21的波形发生部分在根据“扩展/压缩相对于标准再现时间长度的此率”实施全部或一部分匀滑转换方法的任意组合时间的典型设置,作为TSC控制的另一个实施例;图30为一方框图,表示了图29中所示的波形存储器读出单元的具体实例;图31为一简图,它解释了在图30的具体实例中的TSC控制的基本概念;图32为一简图,表示了在根据图30的TSC控制的第一和第二匀滑转换信道中读出的波形数据区域之间实施匀滑转换合成的方式;图33为一简图,它表示了根据图30的TSC控制存储和读出包括开始和循环部分波形数据的示范形式;图34为一简图,它表示了由图30中的地址计算器实施的扩展(S)、正常(N)、压缩(C)处理的各自内容的概括;图35为一简图,它解释了地址计算器确定要实施扩展(S)、正常(N)、压缩(C)处理中的哪一个的方式;图36为一简图,它以更普遍的形式解释了的图35的控制,表示了实际地址可以后退或跃进两个周期的形式;图37为一简图,它表示了图30的TSC控制在时间轴扩展/压缩比CRate为1.5时的具体实例;图38为一简图,它表示了图30的TSC控制在时间轴扩展/压缩比CRate为1.0时的具体实例;图39为一简图,它表示了图30的TSC控制在时间轴扩展/压缩比CRate为0.75时的具体实例;图40A和图40B为表示在图30的TSC控制中使用的扩展/压缩比的示范变化方式的简图;图41A到图41F为在本发明的TSC控制使用的表格中存储的控制参数沿时间方向的变化形式;图42A到图42F为本发明的TSC控制使用的以折线图形式产生的控制参数沿时间方向的变化形式;图43A和图43B的简图表示了使用任何图41和图42所示的TSC控制参数的沿时间方向变化形式的音色控制实例,每个表示了对应于已知音色的控制信息表的示范设置;以及图44为一方框图,表示了在计算机软件基础上的音发生器采用的整个硬件结构的实例。
最佳实施例的具体描述[TSC控制的一般描述]如在下面将具体描述的,设计本发明实行时间扩展和压缩控制(以下称为“TSC控制”)以从波形存储器中读出波形数据,同时将所述时间轴在任意范围内扩展或压缩,而与每个待发音的正常音调控制无关,从而对音的特征进行任意和多样的控制。
图1是根据本发明的一个实施例的一个电声乐器整体构成的方框图,其中使用了基于TSC控制的音发生技术。所述电声乐器包括一个键盘101A,一组其他特性控制器101B,一组设置控制器100,一个控制单元102,一个音发生单元103,一个数模转换器(DAC)104,一个声音系统105等等。音发生单元103包括一个波形发生部分111,一个音量控制部分112,一个控制寄存器113,提供给每一个音发生信道,以及一个信道累积部分114。每一个预定的采样周期,音发生单元103在时间分区的基础上为音发生信道产生音波形信号并且将通过累积如此产生的音波形信号得到的波形数据传给DAC 104。
键盘101A包括多个用于指定待发音音调的键,其形式不仅可以是传统的典型键盘也可以是其他合适的乐器,诸如一个MIDI吉他,它根据MIDI(乐器数字接口)技术指定音调。所述其他特性控制器101B包括多种形式的特征控制器,诸如轮型和踏板型控制器以及控制手柄。根据键盘101A或其他特性控制器101B上的表演者的任何特性控制,实时地产生相应的特性信息,并将其送至控制单元102。很重要的是应当指出不必根据表演者的实时特性控制传输这一特性信息,并且可以依据MIDI技术从一个自动特性装置自动地传输,诸如一个序列发生器。设置控制器100包括一个控制器和多个数据设置控制器,例如面板开关,滑块和旋纽,用它输入各种关于设置和控制音调特性的数据。
根据键盘101A或其他特性控制器101B给出特性信息以及设备控制器100给出的多种设置信息,控制单元102向音发生单元103发出一个发音指令。例如,包括了一个CPU、ROM、RAM以及其他外围电路的控制单元102根据预定的程序进行处理,发出一个发音指令,该指令与上述特性信息和设置信号相对应。具体地说,根据从键盘101A和特性控制器101B给出的上述特性信息和设置信息,控制单元102指定音发生的信道并且建立音参数,以便将建立的音参数置入与所指定的信道相联系的控制寄存器113。在这些置入与指定信道相联系的寄存器113中的音参数的基础上,音发生器单元103中的波形发生部分111在时间分区的基础上为信道产生音波形,音量控制部分112在各自信道产生的音波形上对音量进行控制(包括音量包络控制),并且由信道累积部分114对所述信道的音量受控的音波形进行累积并将累积结果送至DAC104。所述DAC104将来自信道累积部分114的数字音波形转换为模拟音波形,可以将其再现或通过发生系统105发出而清清楚楚地听到。
图2是一个详细描述了图1中波形发生部分111的具体实例的方框图。波形发生部分111包括一个波形存储器10,它为每个被选音存储了多周期波形的多组波形数据,所述数据是与多种音色和音持征相结合的(例如,根据音调或音高的特征以及颤音和连音符的调制特性)。分别表现每个待发音的音调或高以及音色的键码KC和音色特征信息TC通过控制寄存器113传送到波形发生部分111以继续从那里传到其他部件。波形段信息存储器15中存有预存在波形存储器中的各个波形数据的各引导地址或起始地址。通过使用这些键码KC和音色信息TC读出上述引导地址信息,在波形存储器中选择一组具有特殊音特征的多周期波形数据。换句话说,将从波形部分信息存储器15中读出的引导地址信息送至实际读地址计算器16,在那里设置或由实际读地址计算器16产生的实际读地址RAD从波形存储器10中读出波形数据。要注意,上面提到的用于选择从波形存储器10中读出波形数据的参数可以是键码KC以及音色信息TC以外的其他参数,诸如在适当的特征信息和设置信息基础上的信息INF。
通过控制寄存器113,实际读地址计算器16从控制单元102接收到一个指示音发生(或称波形发生)的note on信号,表现一个待发音音调的音调信息以及其他数据。音调信息可以是一个与待发音频率相对应的频率数,并且,已知的信息或其他信息也可以用作频率数。基本上,实际读地址计算器16产生实际读地址RAD数据,它以一个与接收的音调信息相对应的速率(音调)依次变化。这样,通过根据实际读地址RAD从波形存储器中读出波形数据的采样值,可以再现一个具有与音调信息相应的音调的音。
在本实施例中,提供一个虚拟读地址计算器17用于上述“TSC控制”。为了得到所需的波形数据的时间轴扩展或压缩,作为虚拟读地址VAD,虚拟读地址计算器17产生的地址数据表示在当前时刻应从读地址读出波形数据。为此,将表示所需扩展或压缩比例的扩展/压缩比率数据SCR以及上述音调信息送至虚拟地址计算器17,它输出地址数据作为虚拟读地址VAD,该地址数据以变化的倾角或斜率依次变化,所述倾角或斜率是通过调整增进斜率计算出来的,该增进斜率由具有所述扩展/压缩比率数据SCR的音调信息表示的。在特性信息和设置信息和/或其他信息基础上的调制信息MS被送至转换部分18,必要时,转换部分18运用参数对该数据进行转换,所述参数诸如键码KC和音品信息TC。转换部分18的输出结果送至虚拟读地址计算器17作为扩展/压缩比率数据SCR。为了叙述简单起见,虚拟地址将放在后面与波形存储器10中的绝对地址对应地描述,尽管它是与绝对地址不直接相关的相对地址。这样,可以从实际读地址计算器16将必要的绝对地址数据(诸如上述引导或起始地址信息)传给虚拟读地址计算器17,并且用偏移控制电路14在实际读地址RAD和虚拟读地址VAD之间进行比较。当所述虚拟读地址VAD是相对地址时(例如引导地址为0),要传送到偏移控制电路14的虚拟地址可以仅包括相对地址(例如,引导地址为0)。
偏移控制电路14比较实际读地址RAD和虚拟读地址VAD,从而当实际读地址RAD和虚拟读地址VAD的差值或偏差超过一个预定值时,该偏移控制电路14给实际读地址计算器16一个指令,改变实际读地址RAD。根据上述偏移指令,所述实际读地址计算器16执行控制,将实际读地址RAD偏移一个量值,这个偏移量对应于用于消除实际读地址RAD与虚拟读地址VAD之间差别的一个特定的地址数。这一由实际读地址计算器16执行的这种偏移控制将在后面详细描述。
图2所示的属于实际读地址计算器16的几种寄存器19到22用于存储偏移控制的控制变量数据“I”“j”“Aij”以及读指针p。
为了通过消除由于实际读地址RAD快速变化(偏移)造成的读出的波形数据中的波动产生的不利影响而得到一个光滑的波形传输,波形存储器10输出端接有匀滑转换合成部分13,在偏移控制的过程中,将两组或两部分波形数据以匀滑转换方式(匀滑转换合成)进行合成。为此,从波形存储器10中读出两组波形数据,并通过各自的插入电路送至匀滑转换合成部分13;也就是说,通过两个匀滑转换信道(主副匀滑转换信道)将所述两组数据读出至匀滑转换合成部分13。匀滑转换合成法可以以多种形式实施。本实施例设计成这样的形式,实际读出地址计算器16产生经过偏移的实际读出地址RAD,并同时产生一个未加偏移的实际读地址作为实际读地址RAD2,用于副匀滑转换信道,从而用上述读地址RAD和RAD2读出两组波形数据W1和W2。读出的波形数据W1和W2通过插入电路11和12传送至匀滑转换合成部分13。在这个优选实施例中,将用实际读地址RAD读出的波形数据W1处理成第一或主匀滑转换波形段数据(通过第一或主匀滑转换信道),同时将用实际读地址RAD2读出的波形数据W2处理成第二或副匀滑转换波形段数据(通过第二或副匀滑转换信道);具体地说,波形数据W1的幅值经由匀滑转换系数换算成十进制值,顺序地从“0”增加到“1”(渐强),同时,波形数据W2的幅值经由匀滑转换系数换算成十进制值,顺序地从“1”减弱到“0”(渐弱),从而将如此换算的波形数据W1和W2加法合成。显然,实现匀滑转换合成法的方式不仅仅局限于上述方式,还可以有多种变化,例如,可以将主副匀滑转换波形段数据的渐强/渐弱关系颠倒过来。可以在时间分区的基础上从波形存储器10中读出上述两组波形数据W1和W2。
每个内插电路11和12在从波形存储器10读出的相应波形数据W1或W2之间内插处理。为此,当地址RAD和RAD2的十进制小数部分作为内插参数送至内插电路11和12时,将实际读地址RAD和RAD2的整数部分送至波形存储器10。当然,内插电路11和12也不是必需的,而是可以省去的。
与主副匀滑转换波形段数据项结合,将变量数据i,j和Aij存入存储器19,21和22。存储在寄存器20中的读指针p由主副匀滑转换信道共享。
在进一步详细介绍之前,结合图3、图4介绍一下用图2的波形发生部分111实现TSC控制的基本原理。
图3直观地表示了根据本发明基于TSC控制沿时间轴实施压缩控制的过程中波形存储器中地址随时间的增进方式的曲线图,其中横轴代表时间,纵轴代表地址。纵轴的起始点代表了一组被选波形数据的引导地址或起始地址。点划线表示在音调信息基础上的基础地址增进或上升情况,重虚线表示虚拟读地址VAD的增进情况。如果扩展/压缩比率数值SCR是1,虚拟读地址VAD的增进与由点划线表示的基本地址增进一致,不发生时间轴变化。如果将时间轴压缩,扩展/压缩比率数值为一个大于或等于1的适当值,从而如图所示,虚拟读地址VAD的增进斜率变大或变陡。重虚线表示了实际读地址RAD的增进路线情况。实际读地址RAD的增进斜率与点划线表示的基础地址的增进一致。这种情况下,由于虚拟读地址VAD的变化或增进斜率相对大,随时间的变化实际读地址RAD的增量比虚拟读地址VAD的增量要小。一旦实际读地址RAD与虚拟读地址VAD的差值或偏差超过了一个预定值,上述偏移控制单元14发出一个偏移指令(由箭头表示),从而,实际读地址RAD沿使差值变小的方向偏移一个适当的量值。这样,实际读地址RAD的增进量沿虚拟读地址VAD的增进线变化,同时按照音调信息的要求保持所述的变化或增进斜率,并表现了沿时间轴方向压缩成的特征。这样,通过根据这样的实际读地址RAD从波形存储器10中读出波形数据W1,可以得到一个波形信号,显示了沿时间轴方向压缩的波形,而不会改变所再现音的音调。
最好以这样的形式对沿削弱与虚拟读地址VAD之间差别方向上的实际读地址RAD进行偏移,就是使偏移前刚读出的波形数据与偏移后马上读出的波形数据之间光滑地相互连接在一起。例如,可以这样实施所述的偏移,在存储数据基波分量相位相同的点上进行连接。另一个例子,所述实际读地址RAD以一个与存储波形数据一个周期所包含的采样值个数的整数倍相对应的长度进行变化。还有另一个例子,可以以这样的方式实施所述的偏移,在幅值和增进斜率基本上相同的点上进行连接。
图4表示了在基于TSC控制实施扩展控制的过程中在波形存储器中地址随时间的增进方式的曲线图。在这种情况下,如图所示,由重实线表示的虚拟读地址VAD的变化或增进斜率相对较小。这样,随时间的变化实际读地址RAD的增进比虚拟读地址VAD的要快得多。一旦实际读地址RAD与虚拟读地址VAD的差值超过了一个预定的值,偏移控制电路14执行一偏移指令(由箭头表示)。从而,将实际读地址RAD沿削弱差别的方向偏移一个适当的量值。这样,实际读地址RAD的增进量沿虚拟读地址VAD的增进线变化,同时按照音调信息的要求保持所述的变化或增进斜率,并表现了沿时间轴方向压缩的特征。这样,通过根据这样的实际读地址RAD从波形存储器10中读出波形数据W1,可以得到一个波形信号,显示了沿时间轴方向扩展的波形,而不会改变所再现音的音调。
在图3和图4中,每个波浪线表示在副匀滑转换信道(即副匀滑转换波形段数据)中实际读地址RAD2的增进。如图所示,响应偏移指令,沿着未经偏移的实际读地址RAD的延伸,以一个与实际读地址RAD相同的速率(即变化成增进斜率)为副匀滑转换波形区域数据产生实际读地址RAD2。在一个合适的匀滑转换周期中,以以下方式实施匀滑转换合成运算,从根据对于副匀滑转换波形段数据的实际读地址RAD2读出的波形数据W2到根据对于主匀滑转换波形段数据的实际读出地址RAD的波形数据W1获得一个光滑的波形传输。在这种情况下,仅需要在一个已知匀滑转换周期内产生对于副匀滑转换波形段数据的实际读地址RAD2。
尽管实施匀滑转换合成法的执行是很可取的,但却不是必需的。例如,可以通过在实际读地址RAD发生偏移前刚读出的波形数据与偏移后马上读出的波形数据相位相同的点发出偏移指令,从而得到两段数据间的光滑连接。进一步说,由于还可能有其他的波形处理形式,本发明也可以采取这样的方案,仅用实际读地址RAD读波形数据W1中的一组,而不实施匀滑转换合成。
当执行匀滑转换合成时,主副匀滑转换波形段数据间的关系可以是与上述图3和图4中的关系相反的。换句话说,在一个匀滑转换周期内,沿实际读地址RAD的扩展方向增进的地址可以直接保持实际读地址RAD,而经过偏移的实际读地址可以用作用于副匀滑转换波形段数据的实际读地址RAD2。在这种情况下在匀滑转换合成结束时将对于副匀滑转换波形段数据的实际读地址RAD2改变为实际读地址RAD,这样,实际读地址RAD沿扩展方向增进。因而,可以大大简化匀滑转换,因为仅需要将经过偏移的实际读地址设为用于副匀滑转换波形段的数据的实际读地址RAD2,而让用于主匀滑转换波形段数据的实际读地址RAD象从前一样增进。这将在下文中结合实例具体介绍。
尽管为了描述简便,图3和图4没有显示分别读出波形存储器10中存储的预定范围的波形数据组的控制执行过程,根据本发明的TSC控制方案同样适用于这一情况。换句话说,根据本发明的TSC控制方案不仅仅只适用于仅将波形存储器中存储的多周期波形数据读出一次以产生一个音的情况,而且还适用于将存储在波形存储器中的预定范围的同一波形数据组重复读出以产生一个音的情况。为此,在图2中的实际读地址计算器16和虚拟读地址计算器17中都实施实际读地址RAD和虚拟读地址VAD的循环(重复)控制,或者仅在虚拟读地址计算器17中实施虚拟读地址VAD的循环(重复)控制。仅在虚拟读地址计算器17中实施虚拟读地址VAD的循环控制原因在于,只要虚拟读地址VAD被循环控制,则实际读地址RAD将会自动响应它与虚拟读地址VAD间差值或偏差的产生跟随虚拟读地址VAD的循环而实现循环控制。
现在参照图5和图6详细介绍通过本发明TSC控制方案实现的沿波形时间轴的扩展和压缩的实例。
在图5和图6中,图的上部由参考标记1401和1501代表的黑色标记表示存储在波形存储器当中的原始波形(例如,其中的每一个可以通过对具有以原始音调的一个音进行纪录或采样而得到)。注意,图5和图6中的每个黑色标记代表一个多周期波形,并且它的轮廓与波形的包络线相应,该标记的长度(横向尺寸)代表了一个发音的时间长度,同时该标记的宽度(纵向尺寸)代表幅值。
图5表示了通过基于音调信息的音调控制和根据本发明TSC控制之间相互作用对整个原始波形(存储的原始波形)的绝对时间长度进行扩展和压缩的示范形式。在图中部的黑色标记1402和1403表示了仅根据音调信息读出的波形实例(即扩展/压缩比为“1”时读出的波形);具体说;标记1402表示了音调高于(或升高于)原始波形1401的读出波形实例(“升调波形”)而标记1403表示了音调低于(或降低于)原始波形1401的读出波形实例(“降调波形”)。升高音调意味着更快地读出原始波形1401或通过以更高的速率增进读地址以更宽的跨度读出原始波形1401,并且通过这样的操作,缩短了波形数据时间轴长度。相反地,降低音调意味着更慢地读出原始波形1401或通过以更慢的速率增进读地址以更窄的跨度读出原始波形1401,并且通过这样的操作,扩展了波形数据时间轴的长度。所以,在图5中,声调波形1402的时间长度(音发生时间长度)比原始波形1401的时间长度(标准音发生时间长度)短,而降调波形1403的时间长度比原始波形1401的时间长度长。
在图5底部的黑色标记1404,1405和1406表示了通过TSC控制任意地扩展和压缩瞬态音调控制的波形1402和1403得到的波形实例。具体地说,标记1404表示了相对于原始波形1401的绝对时间长度压缩升调波形1402或降调波形1403的时间长度而得到的波形实例,标记1405表示将升调波形1402或降调波形1403的时间长度恢复回原始波形1401的绝对时间长度得到的波形实例,以及标记1406表示了相对于原始波形1401的绝对时间长度扩展升调波形1402或降调波形1403的时间长度而得到的波形实例。通过适当地给出扩展/压缩比率数据SCR从而控制发音时间长度的扩展或压缩。
图6表示了通过实施TSC控制对再现波形的选出部分,而不是全部进行多种波形控制的示范形式。黑色标记1502表示仅将原始波形1501的增高部分或上升部分进行压缩所得到的波形数据的实例,黑色标记1503表示了仅将原始波形1501的稳定部分或保持部分的时间长度压缩而得到的波形实例。以及黑色标记1504表示了将原始波形1501的释放部分或下降部分进行压缩得到的波形数据实例。进一步说,黑色标记1505仅将原始波形1501的增高部分或上升部分进行扩展所得到的波形数据的实例,以及黑色标记1506表示了仅将原始波形1501的稳定部分或保持部分的时间长度扩展而得到的波形实例,以及黑色标记1507表示了将原始波形1501的释放部分或下降部分进行扩展得到的波形数据实例。通过根据本发明TSC控制方案,可以不考虑音调控制而实现对时间长度部分改变的控制。例如,通过在音发生过程中实时地给出和改变特征信息或者为控制扩展/压缩比率数据SCR设定信息可以获得局部或部分的TSC控制。
可以将本发明所提出的TSC控制技术应用于使用波形存储器作为音源的音发生装置中,作为增强时间轴或时间变化表现性,诸如以特征形式或音效果变化的新的控制参数。换句话说,TSC控制在特征形式或音效果控制中可以用作时间轴参数。这些时间轴参数的具体实例包括如下(1)控制周期性调制效果,如颤音或碎音的周期;(2)控制瞬态音调调制效果,如音调变调的时间;(3)控制一个音的上升时间和下降时间,如进发或衰减时间;(4)对一个音确定地并随意地施以“节奏”;(5)避免循环控制的单调性(包括用于产生持久声音的循环读控制或颤音的循环控制);(6)控制连音控制的时间,如一个连音符(连接时间);(7)控制装饰的时间长度(装饰音);(8)当以不同的音调读出所存的原始波形时用于补偿音发生周期的改变;(9)通过在局部或部分地控制其时间轴时读出原始波形,而产生所存储的原始数据的变化形式;(10)通过可变地控制原始波形的整个音发生周期长度,在以原始波形为基础的再现一个声音的过程中有选择地控制音发生周期长度(例如控制所述时间长度使其与通过自动特征信息给出的五线谱的音符长度一致)。
因此,在此让我们假定波形发生部分111的构成,特别是有选择地根据使用TSC控制技术的目的和需要设定存储在波形存储器中的波形数据的内容。
例如,波形存储器10对于每一种音色预存了至少一组多周期音波形的波形数据。另外,与音调或范围,接触强度值(速度)或特征类型或音调效果(如,碎音,颤音,变调或连音符)相一致在波形存储器10中预存了两组或多组波形数据。然而,没必要将预存波形数据的不同的组用于每个音色;而是由两个或多个音色共享同一组波形数据。在共享同一组预存波形数据的情况下,可以按照将本发明的TSC控制与其他任何适合的波形控制技术相结合的需要对波形进行调制。进一步说,为一个音存储的所述多周期波形数据可以是所述音从上升(开始)到下降(结束)的整个一个波形,也可以是所述波形的预定循环范围。在多周期波形所述预定循环范围已经存储的情况下,在音发生过程中以重复方式读出循环范围内的波形数据。进一步说,要存储的多周期波形可以是一个保持了原始波形音量包络线的波形,或者是一个具有一个相对预定水平进行了归一化处理的音量包络线的波形。当然,当一个施加了音量效果的音,如颤音作为原始波形存储时,以音量包络线保持原貌(或做必要处理)的形式存储该波形数据,而不是将音量包络线相对预定水平进行了归一化处理。所存储的多周期波形可以不仅仅是从外部信号源采样得到的,例如可以是经过必要波形处理的,如匀滑转换合成或滤波。
为了便于在TSC控制中的偏移控制点得到光滑的波形连接,由于考虑到这样的波形连接,最好对存储的波形实行处理。为此,可以将存储在波形存储器10中的波形数据预先分成多组以便处理,这将在下面介绍。
换句话说,为了便于以后处理数据,将一个多周期波形分成多个数据组,每个组具有适当的长度,对每一个数据组设定一个用于TSC控制的偏移控制点。这种情况下,对波形存储器10中存储的多周期波形数据进行预先分析,将彼此相位相同的多个周期中的点定为各个独立的数据组的起点。换句话说,在波形数据中找到相位相同的点,在所述相位相同的点将上述波形数据分开,确定了所述的数据组。一个数据组可以包括两个或更多周期的波形数据。总之,相邻数据组间的分界处是相位相同的点,并且,所确定的每个数据组足以同另一个数据组光滑连接。所述相位相同的点是彼此之间波形幅值相同的点,并且位于波形的倾斜方向上。所述相位相同的点典型的就是零相位角的点,在那里波形幅值从负值到正值过零,但也可以是任何其他相位的角点。当然,相位相同的点没必要对应于一个精确的相位角,而可以是一个使波形连接相对光滑的大致位置。注意,每个数据组不是或不需要同对应于波形数据基调的音调周期一致,并且所述数据组不必长度相同,在必要时可以具有不同的长度。更进一步说,在确定各相邻数据组间的分界点时,其分辨力最好优于与波形存储器10中的一个地址所对应的相位角,因为这种方法能以更高的精度确定相位相同点。
通过处理波形存储器中存储的波形数据,以上述方式将所述波形数据分成若干数据组,实际读地址计算器16响应偏移控制电路14(图2)发出的偏移指令进行控制,从而一旦实际读地址RAD到达其所属的一个数据组的末端,它就偏移到另一个数据组的起点,从而将波形偏移了一个对应于一个或多个数据组的量。由于,以每个数据组与另一个数据组光滑连接的方式确定每个数据组,这个改变量对应于一个或多个数据组的读地址,当实际读地址RAD根据TSC控制已经发生偏移时,允许在不同数据组间在相位基本相同的点上相互连接;这样,就可以将这些在由扩展或压缩控制形成的片断(各自包括所述数据组)内相互连接的波形光滑地连接在一起。
注意,所谓“偏移了一个对应于一个或多个数据组的量的读地址”不必意味着数据的读出应仅在从旧波形的数据读出到达上述数据组的末端时,从一个新(即偏移到)波形的数据组开始。换句话说,所谓“偏移了一个对应于一个或多个数据组的量的读地址”还包括响应在从旧波形的一个数据组读出的数据的过程当中给出的偏移指令,在新波形的相应中间点上开始读出它的一个数据组。由于相对中间的位置位于相互对应的两个数据组中,这种情况下,也需要好的相位连接。如果在本实施例中实施匀滑转换合成法,即使在这样的数据组的中间点实行偏移控制,也足以获得好的、光滑的波形连接。在下面的具体实例中,由读指针p指定这一数据组的中间点,该指针可以在任何数据组中指定合适的相对地址位置。
图7和图8的流程图描述了所存波形数据的创建和预处理步骤序列。
图7表示了用于从外部来源采样(记录)所需波形数据以及将经采样的波形数据存储到波形存储器10中的步骤序列。首先,在S1步骤在波形存储器10中留出必要的存储区域。之后,在S2步骤,作为一个文件或波形数据组,将输入波形的波形数据(采样值本身或将采样波形经过适当处理得到一个波形)写入所述预留的存储区域。于是,在步骤S3,将预留存储区域中存储的波形数据的必要的处理数据(例如表示该波形数据和该存储区域的文件名)写入预定的处理数据区域。接着,在S4步骤,将“0”作为存储在上述存储区域中的波形数据的一个扩展/压缩有效标记SCEN写入。上述扩展/压缩有效标记是一个表示是否需进行本发明的TSC控制的标记;所述SCEN标记为“0”表示不进行TSC控制,而所述SCEN标记为“1”表示可以进行TSC控制。由于本实施例设置为在上述“数据组”处理之后进行TSC控制,除非执行了上述“数据组”处理否则不能进行上述TSC控制方案。从而,只有当已将波形数据写入波形存储器10时才可进行所述的TSC控制,并且这是为什么在步骤4将所述扩展/压缩有效标记SCEN设为“0”的原因。所述有效标记可作为每个文件的处理信息的辅助部分存储。
图9简单表示了波形存储器10中的一个示范存储格式,以供参考。在图9中“波形数据文件1”是一个存储了一个音的多周期波形数据的区域,而“波形数据文件2”是一个存储了另一个音的多周期波形数据的区域。在波形存储器10中留有大量这样的存储区域,在不同的存储区域中存储了大量音的多周期波形数据。注意,作为一个文件存储的所述波形数据不必是从外部来源输入的一个音的全部波形数据而可以是它的所需部分。从而,为了产生一个音,在一种情况下,仅使用一个波形文件或组,而在另一情况下,可以使用多个波形数据文件。
返回来参考图8,“标记处理”是用于定义(标记)上述的波形数据的数据组的。首先,在步骤S5,指定要对其进行数据组定义的一个所需的波形数据文件,并从波形存储器10中读出,用于在纸上或显示器上直观显示。接着,在步骤S6,从显示的波形数据列表中选择多个“相位相同点”,并且,以所选择的相位相同的点为基础将所述波形数据分成多个数据组,从而设置了波形数据的数据组。在这以后,在步骤S7,确定单独的数据组各自的长度T,并根据波形数据的文件名将其写入波形段信息存储器15(图2)。接着,在步骤S8,将所述扩展/压缩有效标记置为“1”以表示现在可以进行所述TSC控制。注意,可以将单个数据组各自的长度T存入波形存储器10中的处理数据区域中;就是说,波形段信息存储器15的存储内容可以存在图9的处理数据存储区域中。在以下的描述中,将要介绍表示了存储在波形存储器10中的单个波形数据文件的各自的上端地址的绝对地址数据以及表示单个的数据组各自的尺寸T的数据是存储在图2所示的波形组信息存储器15中的。如前面提到的,定义(标记)相邻数据组间的分界点时,其分辨力最好优于对应于波形存储器10中一个地址的相位角。从而表示单个数据组的各自长度T的数据分别包括一个十进制值,而不是仅包括一个对应于波形存储器10中整个地址数的整数值。
现在具体介绍TSC控制方案的几种应用。首先,将介绍一个具体实例,其中,根据本实施例实施的TSC控制方案控制一个周期性调制效果的,例如一个颤音或碎音。
为此,作为预先的操作,通过使用一个所需的真实乐器,弦乐器或管乐器以一个预定的音调(或根据可选的音调或音符范围)实际地编制一个颤音或碎音特征,并纪录(采样)一个合成的特征音将波形数据以上述形式存在波形存储器10中。与此同时,将其他必要的信息存入波形段信息存储器15。最好将未进行预定调制(例如颤音)的波形数据和经过预定调制的波形数据存储为一个预定的音色(实际乐器的音色)。最好根据多个不同调制深度存储特征音的波形数据;在这种情况下,为保证TSC控制参数共同有效,仅需以下面的方式编制一个特征,当调制周期尽可能保持相等并且在所有调制深度保证识别音调时,仅变化所述的调制深度。
图10A到图10D的简图表示了一种示范形式,将波形数据以这种形式存入波形存储器10中,并将波形数据分成数据组。在所描述的实例中,表示了一个音的上升部分的起始部分(起始部分波形)的多周期波形以及分别表示了所述音的持续保持部分的循环部分的多周期波形循环部分包括一个未加调制(图10B),一个具有中等水平调制(图10C)以及一个具有深度调制(图10D),并且仅将开始部分波形(图10A)存储以便不考虑是否调制以及调制程度而使用。注意,这个例子仅以描述为目的,并且可以得到任何合适的波形,并以任何其他的形式存储。例如,可以根据有无调制,以及调制的程度准备多个起始部分波形。在图10A到图10D中,向右的箭头表示波形存储器10中的地址增加方向。
在图10A中,起始部分的波形分成m个数据组(在这里,m是一个任意实数)。在此,为了便于说明用变量j将数据组彼此区别开,j是一个值为“0”,“1”,“2”…,“m-1”的序数列。“A0”,“A1”,“A2”,…代表相应的数据组的起始地址,并且通常记作“Aj”。“T0”,“T1”,“T2”,…对应数据组的长度,通常记作“Tj”,例如尺寸Tj是表示数据组中容纳的地址数的数据(波形采样数),它包括十进制的整数部分和小数部分,整数部分在前。
图10B、10C、10D表示分成“n+2”个数据组的循环部分波形(在此,“n”是一个任意实数)。此处,用值为“0”,“1”和“2”的变量i将调制深度区分开来。“i=0”表示未经调制(图10B),“i=1”表示中等程度的调制(图10C),以及“i=2”表示深度调制(图10D)。j是一个值依次为“-2”,“-1”,“0”,“1”,“2”,…,“n-1”的序列数。“A0-2”,“A00”,“A01”,…,“A1-2”,“A10”,“A11”,…,“A2-2”,“A20”,“A21”,…表示循环部分波形相应数据组的起始位置,并且通常记作“Aij”。相应数据组的长度通常记作“Tij”,以及长度Tij是表示图10A中数据组地址数(波形采样数)的数据。
在每个循环部分波形中,前两个数据组(由j=-2以及j=-1表示)组成一个“连接波形段”,以保证同开始部分波形光滑连接,它不受循环控制的支配,即分别读出;在图10D描述的实例中,一个受循环控制支配的或分别读出的“循环波形段”由n个数据组构成,由j=0,1,2,…,n-1表示。所述连接波形段是一个经过了匀滑转换合成得到的经处理的段,该匀滑转换合成是在与波形开始部分的结束点光滑连接的第一预定波形段和与循环部分波形开始点光滑相连的第二预定波形段之间进行的,并且用作提供从波形起始部分的结束点到波形循环部的开始点的光滑连接或传输。用这样的连接波形段,不管波形起始部分在音再现时刻与哪个波形循环部分相连,都能得到一个光滑的连接。注意,循环波形段可以是原始波形的一个特殊范围,它显著表示了上述调制效果的特征。在这一情况下,为了避免基于循环读出的调制周期不自然,可以选择原始波形的范围等于调制周期的约1/2或整数倍。
在图10A到图10D的实例中,在再现过程中读出的波形除了与TSC控制有关的部分之外可以是采用任何已知常规循环读出技术读出。换句话说,一旦给出开始音发生的指令,从起始地址AS到结束部分AE,读出一次起始部分波形(图10A),接着读出图10B到10D所示的任何一个连接部分波形的连接波形段。之后,以重复的方式读出循环部分波形的循环波形段。如上所述,这种循环读控制可以在实际读地址计算器16和虚拟读地址计算器17中都进行或者只在虚拟读地址计算器17中进行。
当在音再现过程中实时改变调制深度时,读出的循环部分切换成另一个。例如,如果当图10D中的循环部分波形的一个特定的数据组(如j=1)正在以一个显著的调制深度读出时,所述调制深度改变为中等程度调制,则数据读出转换到图10C中循环读出波形的相应数据组。当中间调制深度位于所需的准备深度之间时,可以通过读出两个或更多不同调制深度(如图10C和图10D的波形)的存储波形来提供,并且根据所需的深度对读出数据进行内插合成;这种方法是公知技术,所以在此没有特别示出。
下面参考图10讲述在波形组信息存储器15中存储的信息。例如,作为一个已知音色的波形对图10A到10D所示的波形的数据进行处理,作为那个音色的数据组信息将下面的信息存入波形信息存储器15中开始部分波形的第一数据组的开始地址A0(绝对地址);表示开始部分波形各个数据各自长度的Tj的数据;(j=0,1,2,…,m-1)具备不同调制深度的单个循环部分波形的各自第一数据组的开始地址A0-2,A1-2,A2-2(每个为绝对地址);以及表示具有不同调制深度的循环部分数据的单个数据组各自长度Tij的数据(i=0,1,2;j=-2,-1,0,1,2,…,n-1)。
在波形组信息存储器15中,代替或除了的表示数据组长度T的数据,可以存有单个数据组起始地址的绝对地址值。然而,因为绝对地址值需要更多的位,进而需要更多的存储空间,所以最好选择表示数据组长度T的数据,因为他们需要的位数较少。这样,按上述方式将波形组信息存入波形组信息存储器15中,就更为优越,它能够节约存储器15中存储容量。
由于每个数据组的长度Tj或Tij表示了相邻数据组开始地址值之间的差别,所以可以得到下面的关系Tj=Aj+1-AjTij=Aij+1-Aij这样,起始地址Aj和Aij可以与Aj=AO+∑T相等,其中∑T表示在j=0,1,2,…,j-1范围内累加Tj的结果,以及Aij=Ai-2+∑Ti其中∑Ti表示在i=-2,-1,0,1,2,…,j-1的范围内累加Tij的结果。由于每个数据组的长度Tj和Tij是一个包括十进制小数部分和整数部分的值,其整数部分与波形存储器10的一个地址相对应,每一个在长度基础上计算出的数据组起始地址Aj和Aij也是一个包括在波形存储器10的一个地址相对应的整数部分以及一个十进制小数部分的值。
如上面提到的,由于读地址根据TSC控制方案偏移了一个对应于一个或多个数据组的量,偏移到的数据组的起始地址Aj或Aij可用上述等式算出。当前读出的这样计算出的数据组的开始地址Aj或Aij存储在图2的寄存器21中。注意,本实施例中实施的TSC控制方案除了再现开始部分波形外,还用于再现循环部分波形。图2所示,只有起始地址Aij存储在寄存器中,很显然,当读出开始部分波形时,将起始地址Aj存入寄存器21。
图2中的寄存器19存储了表示当前读出的数据组的变量j,而寄存器22存储了表示当前读出的循环部分波形的调制深度的变量i。为了进行匀滑转换合成,分别将表示当时读出数据组等每个主副匀滑转换波形区域数据的数据j,Aij和i存入寄存器19,21和22。
进一步说,图2的寄存器20存储了指示一个实际读地址RAD的读指针p。读指针p是这样一个数据,对于每个数据组,在数据组开始处设置一个预定的初始值,之后在每个预定的采样周期依次周期性地增加(或减少);换句话说,读指针p好比是一个递增的相位(读地址)数据。当数据组的开始地址Aj或Aij加到读指针p上,得到了一个绝对地址值形式的实际读地址RAD。众所周知,如果波形存储器10的每个地址由一个整数表示,用一个包括十进制小数部分的值表示音调信息;这样,读指针p就是一个包括了十进制小数部分的值。于是,当读数据读出将从一个(第一)数据组偏移到另一个(第二)数据组时,从当前读指针p(也包括一个十进制小数部分)减掉第一数据组的长度值Tj或Tij(包括十进制小数部分),并且,作为第二数据组的读指针p的初始值,将相减的结果或差值加到第二数据组的开始地址Aj或Aij上。这也是一个为准确得到所需音频而广泛采用的技术,所以在此不加以祥述。在匀滑转换合成中,由主、副匀滑转换信道,即在主、副匀滑转换信道之间,共用读指针p。
尽管没具体示出,还提供了与寄存器19,20,21和22类似的寄存器与虚拟读地址计算器17相连。由于在虚拟读地址计算器17中需要副匀滑转换波形区域数据,对于主匀滑转换波形区域数据仅存储一组变量i和j以及开始地址Aij(或Aj)。当然实际读地址计算器16和虚拟读地址计算器17中的读指针p的内容是彼此不同的。具体地说,当实际读地址计算器16中的读指针p以一个仅对应于“音调信息”的速率或增进斜率增加时,虚拟读地址计算器17中的读指针以一个对应于一个通过可变地控制音调信息的扩展/压缩比SCR确定的值的斜率的增加。
鉴于,上面已经介绍了变量i与调制深度相对应,因为已经给出了同调制间的关系的描述,它可以与任何其他波形调制参数或系数相对应,只要它指定了一个波形变化。例如,可以使用,象变量i,任何所需的波形调制系数,诸如表示音色亮度的变量,特征强度(速度)或从音发生开始点的消逝时间,或只不过一个随机数来实施本发明。
以下部分具体介绍了在音发生过程中实施处理的实例。
图11是图1所示控制单元102执行的处理程序的主程序流程图。一旦装置加电,主程序就起动,在经过了步骤S11的预定的初始化处理结束之后,以重复的方式执行键开关处理(步骤12),特征控制器处理(步骤S13)以及设置控制器处理(步骤S14)。在步骤S12的键盘开关处理中,响应键盘101A上的键开或键关等键动作执行多种操作;就是说,在检测到键开动作(即一个音发生指令)时执行图12的键开动作处理。在步骤S13的特征控制处理器中,如图13所描述的响应任何所述其他特征控制器101B的起动执行多种操作。在步骤S14的设置控制器处理中,响应设置控制器的任何起动而执行多种操作。取代键盘101A以及其他特征控制器101B直接与控制单元102相连,提供一个MIDI接口电路,从而作为MIDI信息传输键开/键关特征信息和其他特征信息到控制单元102;这种选择方案可以通过检验传输的MIDI信息的内容适当地执行与图11到图13类似的处理。
现在参考图12,在步骤S15一旦检测到键开动作,将表示关于检测到的键开动作(即为声音指定的音)的音调的信息(如键码KC)存入一个音符数寄存器NN,并且将关于所检测到的键开动作的音的初始接触强度(即速率数据)存入速率存储器VEL。于是,在步骤S16,选择多信道中的任何一个并将其指定为音发生信道CH,用于指定的声音或音频发生,将指定信道的唯一的信道数存入指定的信道寄存器ASR。从而,在步骤S17,将多种用于音发生的必要信息,诸如对应于当前选定的音色和包络信息的波形选定信息设置到一个控制寄存器113(图1)中,该寄存器113由存储在指定信道寄存器ASR中的信道数指定。这里,波形选择信息是这些规定了用于在信道中的音发生的特定波形信息,更具体地说,这一信息从波形存储器10存储的多组波形数据中指定了4个波形,如在图10A到10D所示的。进一步说,包络信息就是表示目标值数据以及对每个虚线的变化率数据(单个虚线的倾角)信息,以形成一个“虚线”包络线以控制音量或其类似特征。
在图1所示的控制寄存器113中设置的多种信息中,有图2所示的键码KC,音色码TC以及一些其他信息INF。进一步说,与指定的信道寄存器ASR存储的内容相结合,在控制寄存器113中,设置与音的音调频率相对应的“音调信息”,该音是在音符数寄存器NN的存储内容的基础上分配给所述信道的。还可以于指定的信道寄存器ASR存储的内容相结合,在控制寄存器113中,设置调制深度信息ML和调制速度(或调制)信息MS。进一步说,还可以于指定的信道寄存器ASR存储的内容相结合,在控制寄存器113中,设置多种用于包络信息的目标水平数据和变化速率数据。在逐信道的基础上确定用于发音的信息是公知技术,也可以是任何所需的设计,尽管在此没具体描述。将如此设置到控制寄存器113中的各信道的多种数据和信息传输到波形发生部分111和音量控制部分112。最终,在步骤S18根据指定信道寄存器ASR的存储内容指定音发生的音符开(note-on)信号通过控制寄存器113传输至波形发生部分111和音量控制部分112。所述波形发生部分111和音量控制部分112响应所述音符开(note-on)信号开始操作,读出一个波形以形成并产生一个音量包络线。这种在波形发生部分111和音量控制部分112重的操作是在时分割基础上为单个信道实施的。
在图13的特征控制器处理中,首先在步骤S19判定预定的检测计时是否已完成,以便检测单个特征控制器每个预定检测定时的操作状态。如果步骤S19的判定结果是肯定(YES),则在步骤S20将表示单个特征控制器(或特征信息)的各自操作状态存储到控制寄存器113中的相应寄存区域中;例如,已达到信息存储在AT寄存区域,而回转控制器的操作数据(回转数据)存入寄存区域MH,使用这些控制数据(或特征信息)作为控制参数执行对待发音的实时控制。接下来的步骤S21和S22以产生一个用于调制控制的控制参数;例如,在步骤S21,根据存储在寄存区域AT的已达到数据设置调制深度信息ML,并且在步骤S22,根据存储在寄存区域MH中的回转数据设置调制速度信息。显然,也可以依靠任何其他的参数对这些ML和MS信息进行设置。
视需要在转换部分18内部处理上述调制速度信息MS,从而它可以用作扩展/压缩比SCR的数据的基础。例如,如果调制速度信息MS是一个预定的实际值,将上述扩展压缩比设为“1”,从而可以不必沿时间轴扩展或压缩所存储的数据而使用原始的调制周期(调制速度)。如果调制速度信息MS的值大于或小于预定的实际值,上述扩展压缩比设为大于或小于“1”,从而可以根本不必影响或改变待发音的音调而实施用于再现沿时间轴扩展或压缩的所存储的波形数据的控制,该控制是通过使用本实施例的TSC控制扩展或缩短原始的调制周期(调制速度)的。当上述TSC控制用于调制以外的其它目的时,仅需控制供该目的所用的数据,将其送至转换部分18以代替调制速度信息MS。图2所示的转换部分18可以可变地控制将调制速度信息MS以及其它输入信息转换成扩展/压缩比数据的方式;就是说,上述转换部分能够可变地控制转换函数。
接着将参考图2到图4和图10描述波形发生部分111在接收到音符开(note-on)信号之后的行为。
首先,根据波形选择信息,如音质码TC和键码KC,从波形组信息存储器15中读出已知开始部分波形的第一数据组的开始地址A0。读出的开始地址A0送至实际读地址计算器16和虚拟读地址计算器17,并且作为开始地址Aj设置到地址计算器16和17中的当前数据组开始地址寄存器21中(就是Aj←A0)将“0”值作为表示数据组顺序的变量j,设置在计算器16中的寄存器19中。响应变量j=0将表示第一数据组长度T0的数据从波形组信息存储器15中读出并在之后置于预定的内部存储器中,就是Tj←T0。
注意,由于开始部分波形数据组m和循环波形段的数据组数n将随波形变化,让我们假设,表示数m和n的数据可以根据波形选择信息,诸如音品码TC和键码KC从数据组信息存储器15中读出,以用于控制目的。
实际读地址计算器16和虚拟读地址计算器17响应传送的音符开(note-on)信号起动操作,运用开始地址A0作为开始值,分别用算术产生实际读地址RAD和虚拟读地址VAD。实际读地址计算器16和虚拟读地址计算器17已基本上相同的方式用算术产生读地址,于是下面主要描述实际读地址计算器16中进行的地址产生操作。实际读地址计算器16和虚拟读地址计算器17在地址产生操作上的主要区别如上所述,就是,在实际读地址计算器16中仅用“音调信息”作为确定上升变化宽度(变化率)的数据,而虚拟读地址计算器17使用一个通过对音调信息进行控制得到的值和扩展/压缩比SCR,作为这个确定数据,并且仅在实际读地址计算器16中进行用于匀滑转换合成法的数学运算。
尽管已经陈述了寄存器19、21和22是为主、副匀滑转换波形区域数据提供的,以下仅针对用于主匀滑转换波形数据的寄存器19、21和22,除非特别指出。
响应音符开(note-on)信号,将读指针置“0”,之后,实际读地址寄存器16的读指针p以一个变化的宽度规律地增加,该变化宽度(变化率)对应于音调信息,同时虚拟读地址计算器17的读指针以一个变化的宽度规律地增加,该变化宽度(变化率)对应于通过扩展/压缩比SCR控制音调信息得到的值。这导致了实际读地址RAD和虚拟读地址VAD之间增进斜率之间的差别。
通过将读指针p与当前数据组的开始地址Aj相加,得到实际地址RAD;就是说,用这列等式RAD=Aj+P用相似的方法计算出虚拟读地址VAD;就是说,如果当前数据组的起始地址由Aj’表示,读指针用P’表示,可以用下式计算VAD=Aj’+P’由于实际读地址RAD和虚拟读地址VAD彼此独立地产生,所以为每个RAD和VAD提供起始地址(Aj)及其他类似数据。
顺序地从数据存储器10中,根据实际读地址计算器16产生的实地读地址RAD读出开始部分波形(波形数据W1)的采样数据。如前所述,所述实际读地址RAD包括整数和十进制小数部分,从而根据实际读地址RAD的整数部分从波形存储器10中读出波形数据W1,通过内插电路11,在根据实际读地址RAD的十进制小数部分的采样数据间进行内插。
于是,一旦读指针p的值大于当前数据组长度Tj,即P>Tj,这意味着,从当前数据组读出波形已完成,这样,就可以实施预定的更新或改进操作,以便传输或偏移到下一个数据组。就是说,将P和Tj之间的差值作为新的读指针置入寄存器20中,将当前数据组长度Tj与当前数据组开始地址Aj相加的值置入寄存器21,作为下一个数据组的开始值,如下P←P-TjAj←Aj+Tj于是,置于寄存器19中的变量j增加1;就是J←J+1。
因此,重复相同的操作,从波形存储器10中顺序地读出波形数据W1,并随着读指针p以一个对应于音调信息的速率增加,从一个数据组到另一个数据组进行偏移。
一旦完成了开始部分波形最后一个数据组的读出,就对存储的一个循环部分信息进行处理。为保持数据连续,用与上述相类似的方式更新读指针p;就是说,P←P-Tj,其中Tj表示开始部分(Tm-1)波形最后数据组的长度。
为了读出这样一个循环部分波形,参考调制深度信息ML,确定用于根据所需调制深度选择一个循环部分波形变量i的值,并且将所确定的值置入寄存器22中。另外,变量j表示数据组中的某个特定位置(顺序为数据组顺序),将代表循环部分波形的第一数据组的值“-2”置入寄存器19。于是,根据上述两变量i和j,从波形组数据存储器15中读出循环部分波形的第一数据组的起始地址Ai-2,并作为起始地址Aij置入当前数据组开始地址寄存器21中;就是Aij←Ai-2。进一步说,根据上述两变量i和j,从波形组数据存储器15中读出表示第一数据组长度Ti-2的数据,之后将其置入预定的内部寄存器中;就是Tij←Ti-2。
如上文中所述关于开始部分波形读出所述,将读指针p与当前数据组的开始地址Aij相加计算实际读地址RAD;就是说用下式RAD=Aij+P如上所述,实际读地址计算器16中的读指针p以一个对应于音调信息的变化宽度(变化率)有规律增加,这样,根据实际读地址计算器16产生的实际读地址RAD从波形存储器10中顺序地读出循环部分波形的波形数据W1。
于是,一旦读指针的值大于当前数据组的长度Tij,即P>Tij,执行更新读指针p的操作,设置下一个数据组的开始地址Aij,并更新数据组确定变量j如下P←P-TijAij←Aij+Tijj←j+1因而,重复相同的操作,以便从波形存储器10中顺序地读出波形数据W1(波形数据W2也同样),随着读指针p以对应于音调信息的速率增加,顺序地从一个数据组到另一个数据组进行偏移。
于是,一旦完成了循环部分波形最后一个数据组的读出,控制回到循环部分波形(图10)的第一组数据,以便接着重复(循环)读出由“n”个数据组组成的循环波形段。
与上述的类似,如j=n+1,P>Tij条件的确立,可以判断最后一个数据组的读出已完成。
为了回到循环波形段的第一数据组,执行更新读指针p的操作,设置循环波形段第一数据组的开始AiO作为下一个数据组的开始地址Aij,并设置数据组确定变量j到0如下P←P-TijAij←Ai0j←0显然,为了重复(循环)读出,实际读地址RAD和虚拟读地址VAD必须以循环方式一同增进。为此,仅需当实际读地址RAD返回到循环波形段的第一数据组时,同时将虚拟读地址VAD移回到靠近波形段开始点,并与实际读地址RAD保持一个距离或差值。相反,当用于产生实际读地址RAD的电路检测到已完成循环波形段最后数据组的读出时,将虚拟读地址VAD移回到循环波形段的第一数据组,而实际读地址RAD同时回到靠近循环波形段开始点,并与实际读地址RAD保持一个距离或差值。
在上述操作的基础上,实际读地址RAD和虚拟读地址VAD分别由实际读地址计算器16和虚拟读地址计算器17产生,并根据实际读地址RAD从波形存储器10中顺序地读出波形数据。如上所述,当扩展/压缩比SCR为“1”时,在实际读地址计算器16和虚拟读地址计算器17中的读指针p的值相同,并且实际读地址RAD和虚拟读地址VAD值彼此相一致。然而,当从值“1”到实施时间轴波形数据扩展/压缩控制改变扩展/压缩比SCR时,实际读地址RAD和虚拟读地址VAD的增进斜率间发生差异,这样,根据本发明实施的TSC控制方案,实施控制使得实际读地址RAD的增进倾角跟随虚拟读地址VAD的增进倾角变化,同时实际读地址RAD保持在一个对应于所需音调的增进斜率,如上面提到的。这一控制,将在下面具体描述。
在图2中,偏移控制电路14持续监视实际读地址RAD和虚拟读地址VAD之间的偏差或差值,从而一旦所述差值电路超出一定的标准值,它就对实际读地址计算器16发出偏移指令。将本实施例中预定的参考值设置为当前数据组的长度Tj或Tij的一定百分比(比如1/2),也可以任意设置。为此,将当前数据组的长度Tj或Tij提供给偏移控制电路14。按顺序,偏移控制电路14沿信息识别方向或差值或偏差的极性方向给实际读地址计算器16发出一个偏移指令,即无论实际读地址RAD大于虚拟读地址VAD(如图4实例)还是小于虚拟读地址VAD(如图3实例)。实际读地址计算器16响应所述偏移指令,以下面方式进行操作。
就是,实际读地址计算器16响应所述偏移指令识别一个实际读地址将偏移到的数据组,并且接着为副匀滑转换波形区域数据提供寄存器19中的偏移到的组的唯一的组数j。为了便于说明,偏移到的数据组在此后由标记j(new)表示。一般,偏移到的数据组的唯一的组数比当前数据组的组数大1或小于1(即,当前数据组的顺序数加1或减1)。换句话说,如图4中的例子,如果实际读地址RAD大于虚拟读地址VAD,于是j(new)=j-1。如果如图3中的例子,如果实际读地址RAD小于虚拟读地址VAD,于是j(new)=j+1。
此后,将偏移到的数据组的开始地址Aij或Aj从波形组信息存储器15中读出并存储到用于副匀滑转换波形区域数据的寄存器21中。为了便于说明,存储在用于副匀滑转换波形区域数据的寄存器21中的开始地址Aij或Aj由标记Aij(new)表示。
使用与用于主匀滑转换波形区域数据相同的读指针p,计算用于副匀滑转换波形区域数据的实际读地址RAD2如下RAD2=Aij(new)+P用这一方法,产生了新的实际读地址,它与用于主匀滑转换波形区域数据的偏移实际读地址RAD相等,该主匀滑转换波形区域数据恰恰在偏移指令前一个对应于一个数据组的量。输出新的实际读地址作为用于副匀滑转换波形区域数据的实际读地址RAD2。另一方面,实际读地址RAD2接着随读指针p的值变化如下RAD=Aij+P按照上述方式,从波形存储器10读出对应于主匀滑转换波形区域数据的实际读地址RAD的波形数据W1和对应于副匀滑转换波形区域数据的实际读地址RAD2的波形数据W2,并通过插入电路11、12送至匀滑转换合成部分13。
匀滑转换合成部分13响应来自偏移控制电路14的偏移指令,在主副匀滑转换波形区域数据的波形数据W1和波形数据W2之间进行匀滑转换合成运算。具体说,偏移到(目标)波形数据W2由一个自“0”到“1”逐渐增加的系数函数按比例定标(即,具有十进制小数部分的一个系数函数),同时波形数据W1由一个自“1”到“0”逐渐减少的系数函数按比例定标(即,具有十进制小数部分的一个系数函数)。将彼此经过定标的波形数据W1和W2进行加法合成。在这一例中,主副匀滑转换波形区域数据间的渐强渐弱关系与图3和图4所示的关系是相反的,然而,匀滑转换合成得到相同的结果。
完成了匀滑转换合成,寄存器19和21间的主副关系改变,以便将偏移到实际读地址RAD2转换成用于主匀滑转换波形区域数据的实际读地址RAD;就是说j←j(new)Aij←Aij(new)于是,对于副匀滑转换波形区域数据的实际读地址RAD2的产生结束。这样对于匀滑转换合成,波形数据W1的波形区域能够持续以一个下落特征定标,同时波形数据W2的波形区域能够持续以一个上升特征定标;进一步说,不必将实际读地址RAD开关以送至偏移控制电路14,这将得到降低了的复杂性和提高了的方便性。即使完成了匀滑转换合成也可以不将寄存器19和21之间的主副关系倒置;在这种情况下,有必要使用上升(增加)和下落(减少)定标特征用于波形数据W1和W2的波形区域,并且还可以将实际读地址RAD和RAD2送至偏移控制电路14。
当在完成匀滑转换合成前需要在数据组间进行偏移时,仅需在一个波形区域的操作的基础上控制在主副匀滑转换波形区域数据的数据组之间进行的偏移,为了所述波形区域数据,读出偏移到的数据组j(new),换句话说,一旦读指针p的值变得对于偏移到数据组长度Tij(new),将读指针p与长度Tij间的差值设为读指针p的新值;就是,P←P-Tij(new)。于是,对主副匀滑转换波形区域数据的起始地址Aij用共同的长度数据Tij(new)如下进行更新Aij←Aij+Tij(new)j(new)和j的值也分别增加1,如下j(new)←j(new)+1j←j+1另外,以下列方式控制匀滑转换合成开始计时,就是需要在匀滑转换合成期间不升高偏移。
注意,在匀滑转换合成期间虚拟读地址VAD的产生是持续的;然而,在匀滑转换合成期间在地址RAD和VAD之间的比较可以有选择地暂停。
此处,为了提供如图3图4所示的相同的匀滑转换合成的主副关系,仅需这样,响应从偏移控制电路14发出的偏移指令,将存储在寄存器19和21中的主匀滑转换波形区域数据(即主匀滑转换信道)的数据j和Aij传送到用于副匀滑转换波形区域数据(即副匀滑转换信道)的寄存器,并且将偏移到数据组的数据j(new)和Aij(new)设置在用于主匀滑转换波形区域数据(即主匀滑转换信道)的寄存器内。以这样的方式,波形数据W1成为目标值,波形数据W1组以升高的形式变化,波形数据W2以降低的形式变化。
当不进行匀滑转换合成时,响应偏移控制电路14发出的偏移指令,可以用指示了偏移到的数据组及其开始地址Aij(new)的数据j(new)直接代替当前数据组的数据j和Aij。于是,如图3图4重实线所示,实际读地址RAD改变了一个对应于一个数据组的量。在这种情况下,可以在当前数据组的波形读出已到达数据组的最后一个地址时,发出偏移指令;这样,在当前数据组的最后波形段与偏移到的数据组的第一波形段相连时,可以得到光滑的传输或相互连接。
按照上述方式,根据调制速度信息MS对扩展/压缩比SCR进行设置,如图3或图4所示产生虚拟读地址VAD,根据扩展/压缩比SCR控制其增进斜率。另一方面,在如图3或4所示在沿时间轴进行扩展或压缩之后,产生实际读地址RAD,以跟随虚拟读地址VAD的变化,同时保持与音调信息确定的基本音调相对应的斜率,与此相呼应,在沿时间轴对其进行控制,将其扩展之后,从波形存储器10中读出波形数据。这样,在从波形存储器10中读出高品质多周期波形数据时,该波形数据其上施加了调制效果,调制周期(调制速度),即沿时间轴的读出位置可以根据调制速度信息MS可变地进行控制,并且这样可以提供具有较高可控性的高品质调制效果。
注意,在音发生过程中,当实时改变调制速度信息MS时,扩展/压缩此SCR也会随调制速度信息MS变化,从而虚拟读地址VAD也会以增进斜率变化。结果,可在时间上控制对再现的读出波形沿时间轴的扩展或压缩。
当调制深度变化时匀滑转换合成部分13,也可以起作用。换句话说,当调制深度ML的值变化并且需要改变寄存器22中的变量i时,将改变了的变量i(new)和相应的数据组的开始地址Ai(new)j分别置入寄存器21和22,用于副匀滑转换波形区域数据(即,在副匀滑转换信道内)。
使用与用于匀滑转换波形区域数据相同的读指针p,用于副匀滑转换波形区域数据RAD2的实际读地址RAD可由下列算出RAD2=Ai(new)j+P这样,作为用于副匀滑转换波形区域数据的一个实际读地址RAD2,产生并输出一个指示了在调制深度改变之后的新波形的一个实际读地址。实际读地址将随读指针p的变化而变化。
另一方面,指示了调制深度改变之前的新波形的一个实际读地址将继续随读指针p的变化而改变如下RAD=Aij+P按照上述方式,将对应于用于主匀滑转换波形区域数据的实际读地址RAD的波形数据W1和对应于用于副匀滑转换波形区域数据的实际读地址RAD2的波形数据W2从波形存储器10中读出,并通过插入电路11、12送至匀滑转换合成部分13。
匀滑转换合成部分13响应来自实际读地址计算器16的调制深度变化指令,在从主副匀滑转换信道中读出的波形数据W1和W2之间执行匀滑转换合成运算。具体说,将从副匀滑转换合成信道读出的波形数据W2用一个系数函数进行标定,该系数函数从系数“0”到系数“1”逐渐增加(即具有十进制小数部分的系数的函数)即渐强,同时,将从主匀滑转换合成信道读出的波形数据W1用一个系数函数进行标定,该系数函数从系数“1”到系数“0”(即具有十进制小数部分的系数的函数)逐渐减少即渐弱。于是对如此进行了标定的波形数据W1和W2进行加法合成。
完成了匀滑转换合成之后,在寄存器21和22之间的主副关系发生倒置,以便将目标实际读地址RAD2改变为用于主匀滑转换波形区域数据的实际读地址RAD,其方式与上述相似;就是Aij←Ai(new)ji←i(new)用这种方式,从调制深度改变前的旧波形到调制深度改变后的新波形,通过匀滑转换产生波形偏移或传输。
还是在这种情况下,如果需要在匀滑转换完成前的数据组之间进行偏移,仅需在其中一个信道的控制基础上控制在主副匀滑转换信道内的数据组之间进行的偏移,为了上述信道从偏移到数据组中读出数据。另一方面,可以用在匀滑转换合成的过程中不发生偏移的方式控制匀滑转换合成开始定时。
上述描述仅以说明为目的,在不离开本发明基本概念的前提下尽可能有多种变化形式,包括以下的形式。
例如,可以将表示一种个音色的波形数据如图10中所示对于每一个音符范围进行存储。在这种情况下,波形起始部分的整个长度和每个循环部分波形可以设置成在音符范围间不同或在整个范围上相同。进一步说,每个循环波形段的长度可以设置成在音符范围之间不同或在整个范围上相同。
本发明已经参照图10描述了,根据两个不同的调制深度水平存储两组施以调制效果的波形数据,也可以存储一组或三组或更多组这样的波形数据。
如前面提到的,上述存储的各自具有不同深度调制效果的波形数据的组最好具有尽可能相似的音调和调制周期;然而,这也不是必需的。因为音调和调制周期的差别是可以调整的,通过在实际读地址RAD和虚拟读地址VAD的产生过程中,对音调信息和扩展/压缩比SCR进行控制,用这种方式,事实上将各组的波形数据其音调和调制周期变成相同的。
进一步说,存储在波形数据存储器10中的波形数据不必是一个具有周期性调制效果的波形数据;就是说,可以存储任何其它形式的波形数据。对其进行调制的音参数可以不仅是频率和音量,诸如音色。
更进一步,不必在波形数据存储器10中存储起始部分波形,可以仅存储循环部分波形。除了循环部分波形(和起始部分波形)外,还可以存储具有上升音特性的结尾部分波形,从而在检测到键关信号后,通过读出结尾部分波形而不是读出循环部分波形减弱所发生的音。更进一步,对每个音可以存储不只一个,而是多个循环部分波形,从而可以在时间上对循环部分波形的读出进行开关;例如,一个循环部分波形可以被读出多次,同时可以多次读出另一个循环部分波形。在另一种形式中,可以存储待发音从开始到结尾的整个波形数据。
在另一种形式中,存储在波形数据存储器10中的波形数据可以在不同的音色之间,在同一音色的不同范围之间,或在其它不同的情况下共享。
此外,在波形数据存储器10中存储的波形数据的每个数据组中的对应于频率的周期数,可以是1或大于1,可以是一个整数或非整数。单个数据组的开始点不必在频率相同的点,并且可以是其它连接关系,只要它们可以在两个波形段之间提供光滑的连接就可以。
不必将波形数据存储器10中存储的波形数据在数据组中进行处理。换句话说,本发明的TSC控制方案使用的波形数据不需要为处理而分成数据组。
进一步说,将从波形数据存储器10中为每一个数据组读出的读指针p和开始地址Aij或Aj更新,同样的读指针p和开始地址Aij或Ai可以接着用于顺序地读出多个数据组。然而在这种情况下,需要为每个主副匀滑转换波形区域数据提供两个读指针p。例如,为了响应偏移控制电路14发出的偏移指令,可以在偏移到的数据组的开始地址Aij或Ai的初始值之后实施匀滑转换合成,并且可以将读指针p设置在当前不进行数据读出的副匀滑转换波形区域数据的寄存器中。
很显然,上面提到的变化不仅适用于将TSC控制方案用于读出一个具有调制效果的读出数据的情况下,而且适用于将TSC控制方案用于其它目的的情况下。图14和图15的简图表示了产生具有非线性特性的虚拟读地址VAD的实例。具体说,图14表示了产生具有指数函数特征的虚拟读地址VAD的情况,而图15表示了产生具有对数函数特征的虚拟读地址VAD的情况。为此,不需要特别的调整就可以适用图2中波形发生部分111的构成形式。然而,需要调整转换部分18的构成形式;必须为转换部分18提供一个指数函数发生器或者一个对数函数发生器以便响应“音符开”(note-on)信号,随时间的推移从所发音的开始起产生随指数函数特征或随对数函数特征变化的扩展/压缩比SCR。也是在这种情况下,根据本发明的TSC控制方案控制实际读地址RAD的产生,以跟随虚拟读地址VAD的非线性增进,同时,如图示,相对于所需音调保持恒定的增进斜率。当然,如在上述实施例中所述,可以视需要为匀滑转换合成产生对于副匀滑转换波形区域数据的实际读地址RAD2。这样,在非线性扩展或压缩的条件下,能够可再现地读出存储在波形数据存储器10中的波形数据。
显然,在这种非线性虚拟读地址VAD基础上TSC控制方案不仅可以适用于上述调制效果施加控制而且还适用于任何其它目的。因为,图示的非线性虚拟读地址VAD从音发生的开始点经过一个已知的周期遵循根据音调信息的基础地址增进路径(图14、15的时间轴开始点与音发生的开始点对应),在已知的周期中间,实质上没有进行扩展/压缩。这样对于开始部分,可以易于实施不进行扩展压缩的控制。换句话说,在调制效果施加控制的情况下,即使从开始部分调制速度信息就表示了一个相对大的值,对于开始部分也可以阻止实际读地址RAD与虚拟读地址VAD之间的差值过大。在下面结合图41、42将介绍适用这种非线性虚拟读地址VAD的实例。
图16和图17的简图表示了与上述实施例相比,TSC控制方案功能不考虑待发音音调变化而保持整个音发生时间相对恒定的实例。
在这些图中,点画线代表了在音调基础上的基础地址增进,而图16的实例表示了比图17的实例较大的地址增进斜率和相应的更高的音调。在图16和图17中,虚拟读地址VAD的斜率都由重实线表示。进一步说,如在图3等的实施例中,每一条实线代表了实际读地址RAD的增进状况,而每一条波浪线代表了用于匀滑转换合成的对于匀滑转换波形区域数据的实际读地址RAD2的增进状况。为此,不需要特别的调整就可以适用图2中波形发生部分111的构成形式。仅需以这样的方式调整用于虚拟读地址计算器17的读指针p,就是不考虑待发音的音调信息规定的音调,以一个在预定音调速率数据的基础上的速率变化。换句话说,将“待发音的音调信息”之外的其它预定音调信息输入虚拟读地址计算器17中。但是,在此假定致使用于实际读地址计算器16的读指针p根据“待发音的音调信息”变化。还是在这种情况下,可以根据一个扩展/压缩比数据值可变地控制虚拟读地址VAD的增进斜率,并且可以控制沿时间轴扩展或压缩所存储的波形数据。
显然,在这种不考虑音调而变化的虚拟读地址VAD基础上TSC控制方案不仅可以适用于上述调制效果施加控制而且适用于任何其它目的。在以不同的音调读出同一存储数据的情况下,该TSC控制方案通过在表面上对相对高的音调扩展音发生时间位置,对相对低的音调压缩音发生时间位置,能够总提供同样的音发生时间长度。如果实施了调制效果施加控制,例如,该TSC控制方案即使在音调发生改变的情况下,不改变调制效果的周期。
结合图3、4和图14-17介绍几个在TSC控制方案基础上的控制实例,对本领域普通技术人员来说,运用这些实例的部分或全部的组合,可以对图5和图6所示的波形进行控制使其延时间轴扩展/压缩。运用本发明的TSC控制方案,可以在要再现的音波形上进行正向调制控制。在循环或重复读出一个存储数据时,为了有效地减少或消除重复读出一个相同的循环波形段造成的单一性,可以实施这种控制。
图18是一个简图,与图3等类似,图示了通过实施TSC控制进行周期性或非周期性控制时,虚拟读地址VAD和实际读地址RAD的增进或变化形式。
在这种情况下,如图所示,导致虚拟读地址VAD周期性变化(或非周期性变动),与此相对应,跟随虚拟读地址VAD的变动实际读地址RAD重复一个数据偏移或跳跃,同时,在待发音的音调基础上保持一个基础增进斜率。为此,不需要特别的调整就可以适用图2中波形发生部分111的构成形式;但是转换部分18产生的扩展/压缩比数据SCR需要围绕预定的标准值“1”增减。为了实现此要求,可以使用一个适当的经过调制的波形信号作为“其它信息”,将其从控制寄存器113(图1)送至转换部分18与此对应,虚拟读地址计算器17产生以图18所示方式变化的虚拟读地址VAD。注意,在为了消除循环读出造成的单一性而采用本控制时,地址开始点可以用作循环读出的开始点,从而所述音的开始部分不会受控于图18的控制。
在图18的实例中,存储在波形数据存储器10中的波形数据不必是一个预先施加了调制的数据。图19是一个简图,与图10的类似,表示了要存储在波形数据存储器10中的对一个音的多周期波形数据的实例。具体地说,对于一个音,将开始部分和循环部分存储起来,并按前面的方式分成数据组。在这种情况下,不必在图10所示的循环部分波形前提供一个“连接波形段”,因为开始部分波形和循环部分波形是彼此一一对应的。换句话说,开始部分波形和循环部分波形仅需按最初的方式产生,从而继续互相连接。图19的循环部分波形包括“n”个数据组,并且以循环或重复的方式读出所有这些数据组;就是说,循环部分波形的第一数据组的开始地址A00对应于一个循环开始地址。如果开始部分波形和循环部分波形按最初的方式产生,从而彼此不再互相连接,于是,与图10所示的类似,就需要预先将“连接波形段”提供给循环部分波形。
注意,可以通过采样一个真实乐器或类似物品以正常表演方式发出的音产生图19的波形,而不需要一个如在上述最佳实施例中的预先施加调制的波形。
进一步说,最好将存储在波形数据存储器10中的循环部分波形预先以如下方式进行处理,在循环读出的过程中,它的最后和第一波形段能够彼此光滑连接。例如,在波形的最后和第一波形段之间进行匀滑转换合成,作为循环部分波形从原始波形中分离出,从而产生一个连接波形段,并且可以将如此产生的连接波形段作为循环部分波形的最后一段存储。进一步说,存储在波形数据存储器10中的开始部分波形未必一定是原始产生的开始部分波形的全部,可以是从原始波形取出一个中间部分并将原始波形的剩余部分之间进行匀滑转换合成而得到的。当然,可以为多个音符范围准备和存储如图19中所示的各自具有开始和循环部分的多个波形,如上所述,每个音符范围对应一个。在这种情况下,可将对应音符范围在波形数据存储器10中的对应存储空间视需要设置为相同的或不同的;例如,如果各自的存储空间相同,在所存储的波形数据中的周期数,低音符范围的此高音符范围的小,因为低音符范围的每周期采样数更多。
当根据图19的实例实施控制时,可以利用控制单元102(图1)执行图11和图12所示的相同的主程序和键开情况处理。可通过主程序中的特征控制器处理产生调制波形信号,可以按图20所示的方式实施所述特征控制器处理。在图20的特征控制器处理中,首先在步骤S30判定是否已经到达预定的控制时间,以便每一个控制时间产生一个所调制的波形信号的采样值。如果判定结果是肯定的,控制进行到步骤S31以产生经调制的波形信号的当前采样值数据。可以将存储了所需调制波形的存储器的读地址增加1并根据增加了的读地址读出一个同样值的数据,从而得到当前采样值数据。在这种情况下,存储在波形存储器中的所调制的波形可以是任意形状,诸如非周期性振荡波形和周期性正弦波形。另外,可以采用低频振荡器(LFO)产生经调制的波形,或使用一个随机数发生器,并且利用其产生的随机数直接或经过必要处理作为当前采样值数据。在后一种情况下,用TSC控制实施随机调制控制。在下面的步骤S32,根据产生的调制波形信号的采用值产生扩展/压缩比设置信息。该扩展/压缩比设置信息通过控制寄存器113(图1)送至波形发生部分111,作为扩展/压缩此的数据SCR在这里直接或通过转换部分18(图2)传送给虚拟读地址计算器17。步骤S32可以省略,调制波形信号的采用值数据可以送至转换部分18,从而转换部分18根据调制波形信号产生扩展/压缩比SCR的数据。
虚拟读地址计算器17对“音调信息”进行调制时,扩展/压缩比SCR如上面所述的,随调制波形信号变化,于是以对应于“音调信息”的速率产生虚拟读地址VAD。如此产生的虚拟读地址VAD如图所示经过了周期性或非周期性的振荡调制,例如,在图18中。于是如在图18中所描述的,实际读地址计算器16产生实际读地址RAD,它随虚拟读地址VAD的摆动变化由TSC控制间歇地进行偏移,同时保持对应于音调信息的增进斜率。这样,通过以一个与音调相对应的恒定的斜率从波形数据存储器10中读出所存的波形数据同时延波形数据的时间轴向前或向后跳变,可以产生一个经过特殊调制控制的波形以导致存储数据的时间轴扩展和压缩的重复。这样,实施这样的特殊调制控制以重复读出波形数据,实际读出的波形可由TSC控制进行显著的改变,即便是重复地读出同一重复部分波形,这样就有效地避免了重复读出造成的单一性。
很显然,上述调制控制不仅对避免重复读出造成的单一性是有用的而且对于任何其它目的也是有用的。例如,能够方便地在想给待发音确定地或随意地施加“振荡”以得到特殊音调效果的位置实施调制控制。电声乐器执行TSC控制包括,代替键盘101A和特征控制器101B,用一个MIDI接口装置用于从一个外部来源接收MIDI格式的必要特征信息,并在MIDI特征信息的基础上产生一个音波形。在这种情况下,可以按图21的方式对电声乐器的构成进行改变。在图21中,电声乐器包括,用一个MIDI接口装置代替键盘101A和特征控制器101B,并在TSC基础上通过控制单元102、音发生单元103等进行音再现操作。这里,指定任何特征形式的信息,诸如碎音、颤音、连音符和音调变调,也以MIDI格式送至乐器中。如上面提到的,在波形数据存储器10中,对应于这些特征形式的多周期波形数据以这样的形式进行预存储,其中将它们处理为适于TSC控制的数据组。当然,电声乐器也可以另外包括MIDI接口装置101,而不是代替键盘101A和特征控制器101B。
注意,当前的MIDI标准没有设计成在MIDI信息中包括“指定了任何一个特征形式的信息”,这样该信息可作为一个MIDI不包括的信息传送。不包括的信息是根据MIDI标准指定的,用于传输对上述制造者来说是唯一的功能。
在图21中,用控制单元102执行的处理程序的主程序包括一个通过MIDI接口装置101接收到MIDI信息的操作,从而当接收到MIDI信息之后,如图22所示进行MIDI输入情况处理。
在图22的MIDI输入情况处理中,接收到的MIDI信息在步骤S40进行处理,并且在步骤S41确定所接收的MIDI信息的内容。如果接受到的音符开信息表示了音符开(note-on)动作,控制进行到步骤S42,以便根据指定的特征进行音符开(note-on)处理。尤其,利用与将在图25中的中断处理确定的特征形式相适合的波形进行音符开(note-on)处理。在图23中表示了音符开(note-on)处理的实例。
如果接收到的信息代表了一个程序改变(PC),于是控制进行到步骤S43,以便根据程序改变信息的内容执行程序改变处理。
进一步说,如果接收到的信息代表了用于实时控制所发音的数据,于是控制进行到步骤S44,以便根据实时控制数据的内容执行一个实时控制数据确定。如果接收到的MIDI信息是控制改变信息,于是在步骤S44以对应于特征形式的方式实施与控制改变信息相对应的实时控制数据接收处理;就是说,在步骤S44,利用适合于图25的中断处理指定的特征形式的波形实施实时控制数据接收处理。在接收到的MIDI信息是另外的信息而不是控制改变信息时,在步骤S44执行的处理应该在接收到用于实时控制一当前所发音的控制数据时执行。例如,即使MIDI信息是一个“声音信息”,如果该声音信息包括用于实时控制诸如“音变调”的一个音,则执行S44的处理,因为“音变调”通常包括一个根据MIDI标准的声音信息。例如,实时控制数据接收处理可以使用图24所示的处理程序。
如果接收到的MIDI信息是上述以外的,控制进行到步骤S45以便根据其它信息的内容实时控制。
图23所示的音符开处理(note-on)包括与图12所示的键开情况处理类似的步骤。换句话说,在步骤S46,表示与检测到的音符开(note-on)情况即为发生指定的音情况相关的音的音调的信息(例如键码KC)存储在音符数据寄存器NN中,并且,将与检测到的音符开(note-on)情况相关的音的初始接触强度(即,速度数据)存储在速度寄存器VEL中,于是,在步骤S47选择多个信道中的任何一个指定的音发生器信道CH,用于发生或产生指定的音,并将指定信道的唯一的信道数存入指定的信道寄存器VEL中。于是,在步骤S47选择多个信道中的任何一个指定为音发生器信道CH,用于发声或产生指定的音,并将指定信道的唯一的信道数存入指定的信道寄存器ASR中。
其后,在步骤S48,将对音发生必需的多个信息存入由存在信道寄存器ASR中的信道数指定的控制寄存器113(图21)中,这些信息有,与当前选择的音色相应的波形选择信息,特征形式等以及包络信息。
如上所述,这些信息中的波形选择信息确定了用于信道中的音发生的特殊波形数据;具体说,这些信息指定了存在波形数据存储器10中的多组波形数据。进一步说,如上所述,包络信息是这样的信息,它表示了目标值以及变化率(虚线斜率)用以形成虚线包络线对音量或其他量进行控制。在控制寄存器113中的多种信息中有键码KC,音色码TC以及一些图2所示的其他信息INF。进一步说,与指定的信道寄存器ASR的存储内容相结合,在控制寄存器113中设置有“音调信息”,它对应于分配给在所存的音符数寄存器NN基础上的信道的音的音调频率。与指定的信道寄存器ASR的存储内容相结合,在控制寄存器113中还设置有多个用于包络信息的多个目标水平数据以及变化率数据。尽管在此没有具体描述,但用于在逐个信道的基础上产生音的特殊信息是公知的,并且可以是任何其他所需的规格。将在控制寄存器113中这样为各自提到设置的多种数据和信息送至波形发生部分111和音量控制部分112中。
在步骤S48,在由图25的中断处理确定的特征形势基础上进行操作。具体地说,波形选择信息是为选择一专用波形产生的,并将其设置在对应信道的控制寄存器11中,该专用波形对应于所确定的特征形势。如果所确定的特征形势不是特殊的,步骤S48设置这个波形选择信息用于选择一个不对应于特殊特征信息的正常波形。如果所确定的特征形势是颤音、碎音或其它,步骤S48设置这个波形选择信息用于选择一个具有预定调制效果(颤音、碎音或其它)波形。如果所确定的特征形式是音调变调,于是步骤S48设置这个波形选择信息用于选择一个具有音变调效果的波形。如果所确定的特征形势是连音符,于是步骤S48设置这个波形选择信息用于选择具有预定连音效果的波形。进一步说,如果所确定的特征形势是上述之外的其它形式,于是步骤S48设置这个波形选择信息用于选择具有与该其它形式相对应的波形。
最后,在步骤49,将音符开(note-on)信号通过控制寄存器113传送到波形发生部分111和音量控制部分112,该音符开(note-on)信号根据指定的信道寄存器ASR存储的内容指示音发生。波形发生部分111和音量控制部分112响应音符开(note-on)信号开始操作,以便读出波形并构成和产生音量包络线。这些在波形发生部分111和音量控制部分112内的操作在时分割的基础上为各自的信道实施的。
图24是一个在图22的步骤S44的实时控制数据接收处理的实例的流程图,接收到用于实时控制当前产生或发出的音的数据时,它就生效。
在图24的实时控制数据接收处理中,在步骤S50读出接收的控制数据,并在接下来的步骤S51确定接收到的控制数据是否为一个指定了从在音符数寄存器NN中存储的指定音调的音调偏移量。如果步骤S51的判定为YES,控制进行到步骤S52,在那里检查是否要利用正常波形(不具有预先施加的音调波动控制)实施在音调变调数据基础上的音调波形控制。如果使用了具有预先施加的音调波动控制的专用波形(诸如施加了碎音的波形,施加连音符的波形或施加碎音的波形),在步骤S52的判定结果是否定的,则控制进行到步骤S53。在步骤S53,在控制寄存器113中设置用于选择专用与当前所确定的特征形势(如碎音、连音符、或音调变调)的施加音调波形的波形,然后用对应于音调变调数据的施加了音调波动的波形的任意波形段代替当前所发出的波形。换句话说,因为已经沿时间轴对这些施加了音调波动波形的存储的波形数据施加了音调波动,所以可以读出施加了对应于音调偏移量的音调波动波形数据,即有选择地读出一个具有与音调偏移量相对应的音调的波形段,它是通过根据当前音调变调数据指定的音调偏移量指定所存储施加了音调波动的波形的波形数据中的特殊位置进行读出的。
另一方面,如果,不使用施加了音调波动的波形而使用正常波形,于是在步骤S52得到一个确定的判定,从而控制进行到步骤S54。在步骤S54,根据由当前音调变调信息指定的音调偏移量对当前发生的音的音调信息进行调制,因而对读地址进行音调调制,从而,读出被控制的波形数据以提供音调波动。
如果所接收的控制数据不是在步骤S51所判定的音调变调数据,控制进行到步骤S55进行其它操作对当前发生的音进行实时控制。例如如果接收的控制数据是用于颤音的数据,则对于颤音进行类似于上述步骤S52-S54的操作。换句话说,选择对应于颤音控制数据的施加了颤音的专用波形,并且用一个存储在控制数据指定的颤音控制量所对应的位置的波形数据的波形段代替当前发生的音的波形。在用于处理的其它控制数据中有“按下之后”包括一个MIDI声音信息和“调制深度”信息,“气息数据”信息以及包括一个“控制改变”信息的“压缩”信息。注意,在其它控制数据基础上的实时控制数据接收处理操作中,可以根据实际控制数据进行波形替代,也可以不这样。
如上所述,在图25中设置中断处理以确定特征形式,从而选择适合于所确定的特征形式的其中一个预定的波形。注意,这一中断处理对于其它处理在执行时具有较低的优先级别。
首先,在步骤S60,在目前为止已提供的MIDI信息的基础上确定将哪一个特征形式,用于再现波形。于是,在步骤S61,确定是否所确定的特征于当前实施的特征形式不同。如果在步骤S61确定的特征形式没有改变,中断处理就结束了。然而,如果特征形式发生改变,控制进行到S62以进一步确定新特征形式是什么,并在步骤S63-S67的任何一个中以对应于新特征形式的方式进行波形选择处理。
具体说,在步骤S60,对目前接收的MIDI信息之间的随时间变化的中断进行分析。通过这样的分析,可以清楚地或在某种程度上知道正在或应该使用哪一个特征形式。所述“目前接收的MIDI信息”指在预定周期中接收到的一条MIDI信息或一个预定的MIDI信息条数。或者将接收到MIDI信息延迟一个预定的时间从而用延迟的MIDI信息控制该音;这样可以从在过去和将来的预定时期内接收的MIDI信息,或在过去和将来接收预定的MIDI信息条数可以确定特征形式。
如果找到新的特征形式作为非特殊特征形式,控制进行到步骤S63,在那里,将用于选择一个预定正常波形的波形选择信息(它不于一个特殊特征形式相对应)设置在控制寄存器113中(图21)从而使当前所发的音回到正常波形。如果在步骤S62已经发现新特征形式为“碎音”或“颤音”,于是控制进行到步骤S64,在那里,将用于选择一个具有预定调制效果波形的波形选择信息设置在控制寄存器113中从而将当前所发音的波形设置为施加了调制效果的波形。如果,在步骤S62已经发现新特征形式为“音变调”,于是控制进行到步骤S65,在那里,将用于选择一个具有预定音变调效果的波形的波形选择信息设置在控制寄存器113中从而将当前所发音的波形设置为施加了音变调的波形。如果,在步骤S62已经发现新特征形式为“连音符”,于是控制进行到步骤S66,在那里,将用于选择一个具有预定连音符效果的波形的波形选择信息设置在控制寄存器113中从而将当前所发音的波形设置为施加了连音符效果的波形。进一步说,如果,在步骤S62已经发现新特征形式为上述以外的其它形式,于是控制进行到步骤S67,在那里,将用于选择一个具有预定其它特征形式效果的波形的波形选择信息设置在控制寄存器113中从而将当前所发音的波形设置为施加了其它特征形式效果的波形。注意,在逐信道基础上实施图25的单个步骤的操作。
在步骤S61确定的特征形式如果发生了改变,直到步骤S61下一次检测到改变的特征形式一直继续新的特征形式。在基于特殊特征形式条件下接收的音符开数据的音发生中,将对应于特殊特征形式的波形数据指定为用于产生一个音的波形数据。一旦在开始音发生后检测到特征形式改变,通过步骤S62-S67的操作,将正发出的音的波形数据改变为与新的特征形式相对应。即使是要改变正发出音的波形数据,也可以实施匀滑转换合成,它是通过匀滑转换合成部分在两个波形数据的读出的基础上进行的,这两个数据代表主副匀滑转换波形区域数据。在这种情况下,改变前后的波形数据可通过匀滑转换合成部分这样开始匀滑转换合成进行光滑连接,对于一个匀滑转换波形区域开始根据新的特征形式读出波形数据,同时,对于其它匀滑转换波形区域继续读出目前为止所使用的波形数据。
接着,介绍为了再现而存储和依次读出对应于多个特征形式的波形数据的示范方式。
图26(a)表示了对应于音调A的波形数据示范存储格式,(b)表示了对应于音调B的波形数据示范存储格式。与图19类似,每个波形数据包括一个开始部分波形和一个循环部分波形。进一步说,在图26(c)中表示了对应于从音调A到音调B的连音符的波形的示范存储格式,即一个完成从音调A到音调B的连音符的经过区域的施加了连音符的波形。在图26(d)表示了对于波形A音变调的波形的示范存储格式,它包括了对应于音调变调部分的变调波形和对应于保持音调变调部分的循环波形。图26(d)的波形可以进一步包括一个变调—恢复波形(虚线表示)用于恢复原始波形。没有恢复—返回波形的地方,可通过分别读出循环波形执行变调控制以恢复原始波形。
图27表示了当完成连音符特征时读出波形的实例。在图27(a)表示的实例中,实现从波形数据存储器10中读出对应于音调A的波形数据的开始部分波形,随后分别读出循环部分波形,在循环部分波形读出的过程中,发出指令通过连音符变化到音调B。波形读出操作响应连音符指令偏移到连音符波形(图26(c)所示),从而从波形数据存储器10中读出连音符波形,接着在完成了读出连音符波形之后,波形读出操作在偏移到与音调B相对应的波形数据,并将该波形数据从波形数据存储器10中读出。在图27(b)表示的另一个实例为在读出连音符过程中没有实施TSC控制基础上的时间轴扩展/压缩的情况。在图27(c)表示的另一个实例为在读出连音符过程中实施TSC控制基础上的时间轴扩展/压缩的情况。而在图27(d)表示的另一个实例为在读出连音符过程中实施TSC控制基础正的时间轴扩展/压缩的情况。在连音符期间,通过实施TSC控制,能够仅改变连音符特征的时间长度而不会改变音调变化范围(从音调A到音调B)。
图28表示了当完成音调变调特征时读出波形的实例。在图28(a)表示的实例中,实现从波形数据存储器10中读出对应于音调A的波形数据的开始部分波形,随后分别读出循环部分波形,在循环部分波形读出的过程中,发出指令通过连音符变化到音调B。波形读出操作响应音调变调指令偏移到连音符波形(图26(c)所示),从而从波形数据存储器10中读出变调波形,接着在完成了读出连音符波形之后,波形读出操作偏移到波形恢复的波形数据,接着在完成了读出波形恢复波形之后,根据原始发出的音调A读出循环部分波形。在图28(b)表示的另一个实例为在读出单个音变调相关波形过程中没有实施TSC控制基础上的时间轴扩展/压缩的情况。在图28(c)表示的另一个实例为在读出连音符过程中实施TSC控制基础上的时间轴扩展/压缩的情况。在音调变调期间,通过实施TSC控制,能够仅改变连音符特征的时间长度而不会改变音调变化范围(即从音调A变化到一个预定的偏移量)。可以这样调整图2所示的构成方式,即虚拟读地址计算器17输出一个表示数据组j′的数据,当前虚拟读地址VAD属于该数据组而不是虚拟读地址VAD本身,并且偏移控制电路14在与实际读地址RAD和虚拟读地址VAD相关联的数据组j和j′之间进行比较,而不是在实际读地址RAD和虚拟读地址VAD之间进行比较,并且随后在比较结果的基础上产生一个偏移指令。换句话说,由偏移控制电路14所进行的比较是在数据组之间的,而不是地址之间的。
在这种调整中,当实际读出数据组j和虚拟读出数据组j′之间的差别或偏差超过与一个或多个数据组的整个长度相对应的预定的数值时,发出偏移指令。例如,当实际读出数据组j和虚拟读出数据组j′之间的差别或偏差超过与一个数据组的整个长度相对应的预定的数值时,发出偏移指令。如图3所示,当虚拟读地址VAD的变化斜率大于实际读地址RAD的变化斜率,一旦满足条件j′>j+1则向实际读地址计算器16发出偏移指令,实际读地址计算器16响应这一指令利用虚拟读出数据组j′将数据组j偏移到下一个(即j←j′+1),而不是仅仅将j值增加1(即j←j+1);这样实际读地址计算器16控制实际读出数据组向前偏移(跳跃)。类似地,如图4所示,当虚拟读地址VAD的变化斜率小于实际读地址RAD的变化斜率,一旦满足条件j′<j+1则向实际读地址计算器16发出偏移指令,实际读地址计算器16响应这一指令利用虚拟读出数据组j′将数据组j偏移到下一个(即j←j′-1),而不是仅仅将j值减少1(即j←j-1);这样实际读地址计算器16控制实际读出数据组向后偏移(跳跃)。然而,除上述方式之外还可以以其它适合的方式进行控制。下面介绍根据“相对于标准再现时间长度的扩展/压缩比”通过全部或部分匀滑转换方法实施根据本发明的TSC控制,而不是用上述的虚拟读地址。
下面的实施例可以使用图1和图21所示电声乐器两种硬件机构中的任意一种,但是波形发生部分111的构成必须变为图29所示的方式。
在图29中,波形发生部分111包括一个波形存储读出单元201,它具有一个时间轴扩展/压缩功能,以及一个“CRate”发生器202。波形发生部分111通过控制寄存器113(图1或图21)接收波形发生指令,它是音符开(nteo-on)信号形式以及表示待发音音调的信息,以及音色信息如键码KC,音色码TC和图2中所示的其它信息INF。
波形发生部分111也接收表示“相对应标准再现时间长度的扩展/压缩定额”的参数。因为波形存储读出单元201实际在时间轴扩展/压缩比CRate的基础上执行时间轴扩展/压缩功能,该时间轴扩展/压缩比CRate基于一个音发生时间长度,它在以一个对应于指定音调(音调发生时间根据所需音调变化,如图5的波形1402和1404所示)的速率读出波形数据示需要,该“CRate”发生器202在此用于转换参数。具体地说,该“CRate”发生器202接收音调信息以及相对于标准再现或音发生时间长度的扩展/压缩比,并且在根据所需音调变化的音发生时间长度基础上计算出时间轴扩展/压缩比CRate。将如此计算出的时间轴扩展/压缩比CRate送至波形存储读出单元201。
图30是一个方框图,它表示了图29的波形存储读出单元201的具体构成。在详细介绍之前,让我们解释一下时间轴扩展/压缩功能的基本概念,即本发明所实施的TSC控制。
首先,时间轴扩展/压缩比CRate是具体执行时间轴扩展/压缩功能的参数。具体说,时间轴扩展/压缩比CRate表示了一个设定为原始(音调控制)波形再现时间长度的1/CRate的输出波形时间长度。当然,时间轴扩展/压缩比CRate并不总固定在一个值,是可以实时改变的,即便是在波形读出的过程中(即在发音开始和结束之间的点);这样比率在局部考虑时具有了上述含义。CRate=1.0,输出波形将保持其原始时间长度;CRate>1.0,输出波形将被压缩,CRate<1.0,输出波形将被扩展。
下文描述了波形存储读出单元201中的波形存储器301中存储的数据。波形存储器301与上述图2的波形数据存储器10相同,根据与多个音调特征的关系存储了多组多周期波形数据,并且将所存储的每一组波形数据预先分成多个数据组用于处理。与上述类似,存储在波形存储器301中的多周期波形数据是经过预先分析的,确定多周期中彼此相位相同的点(同相位点)为各数据组的开始点。换句话说,在波形数据中找到这些同相位点,将波形数据在同相位点分开定义成数据组。在一个数据组中可以包括两个或多周期的波形数据。简言之,各相邻数据组之间的分界点为同相位点,并且将这些数据组限定为足以同其它数据组光滑连接。所述同相位点是这样的点,它们的波形幅值相同并位于波形斜率方向上。注意,数据组不与或不必与对应于波形数据基调的周期相一致。
下面给出详细的描述。让我们假定每个同相位点具有一个地址Ai,它由一个整数部分和一个十进制小数部分组成。“i”表示唯一的数据组数,从而“Ai”表示第“i”个数据组的开始点地址。将在下面介绍的顺序计数器IC表示数据组数i的当前计数值。因为各个数据组的开始点相位相同,即使读出一个数据组直到最后一个点然后从另一个数据组的另一个点读出,也可以获得光滑的波形连接。为了将两个数据组相互连接,除了在同相位点连接外,安排本实施例进一步实施匀滑转换合成法,从而达到更加光滑的波形连接。
在波形存储器中,还存有各个数据组的长度数据Ti(Ai+1-Ai)。通过从第“i+1”个数据组的开始点减去第“i”个数据组的开始点,计算出长度数据Ti。通过这样存储各个数据组的长度数据,在存储所有地址Ai时可以有效地节约存储容量。当然是由采样数表示由Ti代表的每个数据组的长度的(它包括整数部分和十进制小数部分)。
可以如下计算每个数据组的开始点地址Ai=A0+∑T其中A0表示了波形数据的开始地址(即第0个数据组的开始点地址)而∑T表示对于j=0,1,2…,i-1长度Ti的累计值。
以下介绍在本发明中时间扩展/压缩控制,即TSC控制的基本原理。在本实施例中,时间轴扩展/压缩使用一个“再现周期”作为它的处理时间单元。该“再现周期”对应于一个对于再现一个数据组和表示一个单元时间长度不可缺少的在波形存储器中波形数扩展/压缩的时间周期,它不是以采样数表示的。根据时间轴扩展/压缩控制的基础,计算出时间轴扩展/压缩比CRate的值指定的每个目标读出点之间的差别和实际的读出点,从而在每个再现周期根据计算出的差值实施预定操作,以使实际读出点连续地跟随目标读出点。简言之,预定操作确定将执行以下的哪一个,用于扩展再现时间长度的“扩展处理”,用于保持再现时间长度的“正常处理”和用于压缩再现时间长度的“压缩处理”,并且如下面将详细介绍的在每个再现周期执行这样确定的处理。因为可以有效地利用考虑非周期波形段的波形数据使TSC控制无效,所以最好有选择地控制TSC控制的使能/无效条件。
图31的简图说明了本发明的TSC控制的基本概念。在图31中,参考标记411表示存储在波形存储器中的波形数据实例,方框412到416表示从波形存储器中读出波形数据的示范形式。波形数据411由记作A到F的六个数据组组成。垂直的点画线401表示在预定音调再现波形数据时再现周期的界限。这样,水平轴表示了在扩展/压缩处理中过去的时间而不是采样长度,但是过去的时间在此不是一个绝对的值。加在波形数据401数据组A到F下面的数字表示再现数据组的预定次序。然而,将在图31中表示再现周期间界限的垂直的点画线401画成间距相等,根据数据组的长度各个再现周期的时间长度可以不同。类似地,所示与方框412到416相关的再现周期在水平和垂直方向上可以彼此不同。
在长方形方框412到416中的每个相邻的小方框表示了在扩展/压缩处理中一个再现周期中处理的一个数据单元,并且在每个这样的方框或再现周期中进行任何扩展、正常、压缩处理(在图中分别示作“S”、“N”、“C”)。长方形方框412到416表示了根据时间轴扩展/压缩比CRate控制六个数据组的波形数据411使其扩展或压缩时的实例。在图31的每一个再现周期中,对两个匀滑转换波形区域数据的每一个在波形数据411中读出预定的数据组中的一个(在所描述的实例中为六个数据组)。在两个匀滑转换信道中将要读出的数据组可以相同也可以不同。这样,不管在再现周期中实施扩展、正常、压缩中的哪一个处理,本实施例一直在两个匀滑转换波形区域数据(以下为“第一和第二匀滑转换波形区域数据”)之间的匀滑转换合成基础上产生一个读出波形。在图31中,每个相邻的小方框表示了再现周期,在长方形方框412到416中用对角线分成两个三角形部分,其中写出表示两个选择的数据组参考标记A-F,在第一和第二匀滑转换波形区域数据之间执行的匀滑转换合成方法用了这两个数据组。具体地说,在所举例的实施例中,在上面三角形区域中的数据组(在对角线上面)是要读出的第一匀滑转换波形区域数据,而在下面三角形区域中的数据组(在对角线下面)是要读出的第二匀滑转换波形区域数据。进一步说,加在相邻小方框上面的参考标记“S”、“N”、“C”,表示再现周期,指示根据再现周期执行扩展、正常、压缩处理。渐弱第一个匀滑转换波形区域数据并渐强第二个匀滑转换波形区域数据的匀滑转换合成在每个再现周期的中间结束。
方框412表示了当时间轴扩展/压缩比CRate为2.0(CRate=2.0)时,对波形数据的处理实例。如图所示,在第一个再现周期中,当读出数据组A作为第一匀滑转换波形区域数据以及读出数据组B作为第二匀滑转换波形区域数据时执行压缩(C)处理,从而,如此由数据组A和B表示的读出的匀滑转换波形区域数据需经过匀滑转换合成,以提供输出波形。在第二再现周期中,当读出数据组C作为第一匀滑转换波形区域数据以及读出数据组D作为第二匀滑转换波形区域数据时执行压缩(C)处理,从而,如此由数据组C和D表示的读出的匀滑转换波形区域数据需经过匀滑转换合成,以提供输出波形。进一步说,在第三再现周期中,当读出数据组E作为第一匀滑转换波形区域数据以及读出数据组F作为第二匀滑转换波形区域数据时执行压缩(C)处理,从而,如此由数据组E和F表示的读出的匀滑转换波形区域数据需经过匀滑转换合成,以提供输出波形。在此,将执行匀滑转换合成的每个再现周期的时间长度设置为与作为第二(即渐强)匀滑转换波形区域数据读出的数据组的时间相一致。从而,在这个读出实例412中,作为第二(即渐强)匀滑转换波形区域数据以所需音调读出的数据组B、D、F的时间长度成为相应的再现周期长度。这样,如果将各个数据组长度设置为相同,于是最终输出波形412在以所需音调读出时的整个再现时间可以只是原始存储波形411在以所需音调读出而不经过时间轴扩展/压缩控制时的整个再现时间的大约1/CRate(即大约1/2);即输出波形412的整个再现时间减少了两倍。
注意,读出实例412和下面的读出实例413到416是以这样的方式设置的,对作为第二匀滑转换波形区域数据的一个读出和渐强后面的数据组,在下一个再现周期作为第一匀滑转换波形区域数据读出和渐弱。例如,在读出实例412的第一个再现周期,作为第二匀滑转换波形区域数据读出和渐强数据组B,于是在第二个再现周期作为第一匀滑转换波形区域数据读出和渐弱后面的数据组C。经过这样的设置,从数据组B到数据组C可以得到光滑的波形连接。
方框413表示了当时间轴扩展/压缩比CRate为1.5(CRate=1.5)时,对波形数据的处理实例。如图所示,在第一个再现周期中,当读出数据组A作为第一和第二匀滑转换波形区域数据以及读出的匀滑转换波形区域数据经过匀滑转换合成以提供输出波形时执行正常(N)处理,在第二个再现周期中,当读出数据组B作为第一匀滑转换波形区域数据以及读出数据组C作为第二匀滑转换波形区域数据时执行压缩(C)处理,从而,如此由数据组B和C表示的读出的匀滑转换波形区域数据需经过匀滑转换合成,以提供输出波形。在第三再现周期中,使用数据组D执行正常(N)处理,随后在第四再现周期中使用数据组E和F执行压缩(C)处理。这样,最终输出波形413在以所需音调读出时的整个再现时间可以只是原始存储波形411在以同样音调读出而不经过时间轴扩展/压缩控制时的整个再现时间的大约1/CRate(即大约1/1.5或2/3);即输出波形413的整个再现时间减少了1.5倍。
方框414表示了当时间轴扩展/压缩比CRate为1.0时,对波形数据的处理实例。如图所示,在第一到第六再现周期中,分别使用数据组A、B、C、D、E和F执行正常(N)处理。以这种方式,最终输出波形414在以所需音调读出时的整个再现时间可以只是原始存储波形411在以同样音调读出而不经过时间轴扩展/压缩控制时的整个再现时间的1/CRate(即大约1/1)。在上述方式中,时间轴扩展/压缩比CRate为1时得到的处理结果通常与没有进行特殊扩展/压缩时得到的结果是相同的。通过这样使用同一数据组作为第一和第二匀滑转换波形区域数据进行匀滑转换合成,即便是时间轴扩展/压缩比CRate,可以将该系统安排为一直执行匀滑转换合成。这样的安排避免了确认每一个再现周期。
方框415表示了当时间轴扩展/压缩比CRate为0.75时,对波形数据的处理实例。如图所示,在第一、第二、第四、第五第六和第八再现周期中,分别使用数据组A、B、C、D、E和F执行正常(N)处理。在第三个再现周期中,当读出数据组C作为第一匀滑转换波形区域数据以及读出数据组B作为第二匀滑转换波形区域数据时执行扩展(S)处理,从而,如此由数据组C和B表示的读出的匀滑转换波形区域数据需经过匀滑转换合成,以提供输出波形。在第七个再现周期中,当读出数据组F作为第一匀滑转换波形区域数据以及读出数据组E作为第二匀滑转换波形区域数据时执行扩展(S)处理,从而,如此由数据组F和E表示的读出的匀滑转换波形区域数据需经过匀滑转换合成,以提供输出波形。以这种方式,最终输出波形415在以所需音调读出时的整个再现时间可以只是原始存储波形411在以同样音调读出而不经过时间轴扩展/压缩控制时的整个再现时间的1/CRate(即大约1/0.75);即输出波形415的整个再现时间增加了1.333倍。
方框416表示了当时间轴扩展/压缩比CRate为0.5时,对波形数据的处理实例。如图所示,在第一、第三、第五、第七、第九和第十一再现周期中,分别使用数据组A、B、C、D、E和F执行正常(N)处理。在第二、第四、第六、第八、第十和第十二个再现周期中,分别使用数据组B和A、C和B、D和C、E和D、F和E、以及G和F组合执行扩展(S)处理。以这种方式,最终输出波形416在以所需音调读出时的整个再现时间可以只是原始存储波形411在以同样音调读出而不经过时间轴扩展/压缩控制时的整个再现时间的1/CRate(即大约1/0.5)。即输出波形416的整个再现时间增加了2倍。
图32的简图详细表示了在每个再现周期中进行的处理,其中参考标记501表示了一系列的存储在波形数据存储器301中的三个数据组Z、A、B和表示这三个数据组Z、A、B长度的TZ、TA和TB。让我们假设作为第一匀滑转换波形区域数据读出数据组A。在这种情况下,将要作为第二匀滑转换波形区域数据读出的数据组根据将要实施扩展(S)处理、正常(N)处理和压缩(C)处理具体哪一个而不同。
参考标记511表示了在一个再现周期中实施扩展(S)处理的实例。如在实例511中所示,如果在这一处理中作为第一匀滑转换波形区域数据读出数据组A,作为第二匀滑转换波形区域数据读出数据组A前面的数据组B。换句话说,如在方框521中所示,531表示作为第一匀滑转换波形区域数据读出数据组A而532表示作为第二匀滑转换波形区域数据读出数据组Z,这样由数据组A和Z表示的两个波形区域经过匀滑转换合成。参考标记512表示了另一个实例,其中在一个再现周期中不改变再现时间长度实施正常(N)处理。如在实例512所示,如果在这个处理中作为第一匀滑转换波形区域数据读出数据组A,则作为第二匀滑转换波形区域数据读出相同的数据组A。换句话说,如在方框522中所示,在541表示了作为第一和第二匀滑转换波形区域数据读出数据组A,这样由同一个数据组A表示的两个匀滑转换波形区域数据经过匀滑转换合成。参考标记513表示了另一个实例,其中在一个再现周期中不改变再现时间长度实施压缩(C)处理。如在实例513所示,如果在这个处理中作为第一匀滑转换波形区域数据读出数据组A,则作为第二匀滑转换波形区域数据读出数据组A后面的数据组B。换句话说,如在方框523中所示,在551表示了作为第一匀滑转换波形区域数据读出数据组A,552表示作为第二匀滑转换波形区域数据读出数据组B,这样由数据组A和B表示的两个波形区域经过匀滑转换合成。
对于上述两个匀滑转换波形区域数据,使用由依次累加计算的地址,在预定采样频率的基础上,执行波形数据的读出,音调信息(F数)由一个参数指定。这样结果输出波形的音调可以完全与指定的音调一致。另一方面,通过在每个再现周期有选择地进行扩展、正常和压缩处理中的任何一种,可以将再现时间如在图412到416中的实例所述地进行扩展和压缩。
在图32中,参考标记rp表示了读指针,它指示将作为第一匀滑转换波形区域数据读出的数据组的开始地址,将结合图34具体介绍。参考标记rp-now表示了在当前再现周期的读指针的当前值,而参考标记rp-next表示了在下一个再现周期的读指针值。在此,一旦达到每个再现周期的端点,对于第二匀滑转换波形区域数据的地址成为一个特殊数据组的开始地址,该数据组在下一个再现周期将作为第一匀滑转换波形区域数据读出。这就允许了以预定的次序,在相邻再现周期分界处,从当前数据组到下一个数据组进行偏移。参考实例412到416再现周期之间的分界可以清楚看到,在各个再现周期之间的分界处,从当前数据组到下一个数据组的偏移,如A→B、B→C,…。如在图32所示,在下一个再现周期的读指针RP的值可以从当前再现周期中确定。换句话说,在扩展(S)处理的情况下,读指针rp的当前值成为读指针rp-next的值;在正常(N)处理的情况下,读指针rp当前值以及长度TA的和(rp+TA)成为读指针rp-next的值;或者在压缩(C)处理的情况下,读指针rp当前值以及长度TA和长度TA和TB的和(rp+TA+TB)成为读指针rp-next的值。
图33为一简图,它表示了包括开始和循环部分波形数据的实例。波形数据601由五个数据组A到E组成。序号表示了在波形存储器中各个数据组的位置(次序),周期长度表示了各数据组各自的长度TA到TE。让我们假设,开始和循环部分之间的分界与数据组之间的分界一致。在波形数据601中,从波形开始点到TLpst点之间的部分,即数据组A和B表示了开始部分,TLpst点对应于循环部分开始点。循环部分持续到点Tlpend,并且由数据组C、D和E组成。
将包括这些开始和循环位置的波形数据以波形数据602的方式设置;就是说,首先读出到循环部分端点的整个波形数据,然后以重复的方式从开始到结束读出循环部分。
因为用于处理的基本处理时间单元为一个再现周期,所以在位置上限定或适当设置循环部分始末点的位置是必要的。换句话说,循环部分始末点的位置必须这样设置,使得插入的循环末端点的采样值(数据组E的最后一个地址)与循环开始点的采样值(数据组C的第一个地址)相一致。
现在,参考附图30具体介绍波形存储器读出单元201的构成和操作。
在图30中,波形存储器读出单元201包括波形存储器301、地址计算器302、循环中计数器303,顺序计数器304、数据组长度寄存器305和306,累积差别寄存器307、读出“rp”寄存器308、音调插入部分309和310,乘法器311和312,补偿部分313和加法器314。下面介绍上述各部分各自的具体构成。
如前所示,波形存储器301具有预先存储的多套多周期波形数据,对应于多个音,设置每个波形数据将其分成多个数据组用于处理。在波形存储器301中,还预先存储了对于每套波形数据的各个数据组的长度T。将所选择的一套中的波形数据从两个独立的数据小组中,根据地址计算器302产生的地址读出(即作为第一和第二匀滑转换波形区域数据)。用地址、顺序计数器304的序号IC将数据组长度信息T(包括整数部分和十进制小数部分)读出。
由顺序计数器304维持的序号IC是一个表示数据组组数的顺序号,它在作为第一匀滑转换波形区域数据读出;就是说,序号IC表示正作为第一匀滑转换波形区域数据读出的每个数据组。使用这个序号IC作为读地址(相对地址),读出当前作为第一匀滑转换波形区域数据读出的数据组的长度信息T,并且将读出长度信息T存储在“T1”寄存器305中。
“T1”寄存器305用于存储作为第一匀滑转换波形区域数据读出的每个数据组的长度信息。同时,将当前作为第二匀滑转换波形区域数据在第二匀滑转换信道中读出的数据组的长度信息T存储在“T2”寄存器306中。在表示在作为第一匀滑转换波形区域数据读出的数据组的组数的序号IC以及对当前正进行扩展(S)、正常(N)和压缩(C)中的哪一个处理的判断的基础上,可以得知要存储在“T2”寄存器中的长度信息就是在当前作为第一匀滑转换波形区域数据的数据组之前的数据组的长度,或者是作为第一匀滑转换波形区域数据的当前数据组,或者是作为第一匀滑转换波形区域数据的当前数据组之后的数据组。序号IC用作相对地址的原因就是要处理当存储多套多周期波形数据时的情形。换句话说,如果通过改变基础地址使用这个相对地址,可以从对应于特殊数据组的多个数据组长度数据中选择一个读出,以便在序号IC的基础上确定长度数据。
当波形产生开始时,地址计算器302将顺序计数器304的值初始化为“0”。接着在每个再现周期的终端,地址计算器302输出一个触发信号(数据组更新信息),响应它的变化增加顺序计数器304的值。具体说,如果在刚结束的再现周期中执行的是正常(S)处理,于是,将与作为第一匀滑转换波形区域数据在刚结束的再现周期中已经读出的数据组相同的数据组,在下一个再现周期中作为第一匀滑转换波形区域数据读出,并且顺序计数器304的值保持不变。如果在刚结束的再现周期中执行的是扩展(S)处理,于是,将在作为第一匀滑转换波形区域数据在刚结束的再现周期中已经读出的数据组之后的数据组,在下一个再现周期中作为第一匀滑转换波形区域数据读出,并且顺序计数器304的值增加1。进一步说,如果在刚结束的再现周期中执行的是压缩(C)处理,于是,将在作为第一匀滑转换波形区域数据在刚结束的再现周期中,在第一匀滑转换信道中已经读出的数据组之前的第二数据组,在下一个再现周期中在第一匀滑转换信道中读出,并且顺序计数器304的值增加2。
如前面结合图32的简要描述,读出(“rp”)寄存器308维持的正作为第一匀滑转换波形区域数据(换句话说,在第一匀滑转换信道内)读出的数据组的开始地址rp。
周期中计数器303在波形发生部分111产生的波形数据的每个采样周期中累积再现音调信息Δph(F数)。周期中计数器303产生相位数据CC(即周期计数,每个包括整数部分和十进制小数部分)用于读出由读出寄存器308指定的数据组的各采样值。由周期中计数器303产生的每个周期计数器CC被送至地址计算器302,它用开始地址rp和多周期计数CC为第一和第二匀滑转换波形数据区域计算读地址,并将计算出的读地址送至波形存储器301;具体说,(rp+CC)成为第一匀滑转换波形数据区域的读地址,而(rp+CC+OFST)成为第二匀滑转换波形数据区域的读地址。在此,如果在当前再现周期执行扩展(S)处理,意味着将在第二匀滑转换信道读出当前在在第一匀滑转换信道读出的数据组之前的数据组,而这样“OFST”=—(前在在第一匀滑转换信道读出的数据组之前的数据组的长度)——这个值现在设置在“T2”寄存器306——中。如果,在当前再现周期执行正常(N)处理,意味着将在第二匀滑转换信道读出与当前在在第一匀滑转换信道读出的数据组相同的数据组,而这样“OFST”=“0”。进一步说,如果在当前再现周期执行压缩(C)处理,意味着将在第二匀滑转换信道读出当前在第一匀滑转换信道读出的数据组之后的数据组,而这样“OFST”=(当前在第一匀滑转换信道读出的数据组的长度)——这个值现在设置在“T1”寄存器305——中。
地址计算器302一直将周期计数CC和周期长度CL进行比较,看是否满足条件CC>CL。在此,周期长度CL是如果在当前再现周期执行扩展(S)处理,就是当前在第一匀滑转换信道读出的数据组之前的数据组的长度;如果,在当前再现周期执行正常(N)处理,就是当前在在第一匀滑转换信道读出的数据组的长度;或者如果在当前再现周期执行压缩(C)处理,就是在第一匀滑转换信道读出的数据组之后的数据组的长度。换句话说,周期长度CL表示了当前在第二匀滑转换信道读出的数据组的长度,并且,在由周期长度CL表示的数据组长度的基础上可以判断出当前再现周期的结尾;就是说,当周期计数CC超过周期长度CL时的点就是当前再现周期的结尾。一旦当前再现周期结束,地址计算器302输出一个触发信号(数据组更新信息),如上所述,为了响应它,顺序计数器304的值增加。换句话说,一旦累积周期计数CC值超出在第二匀滑转换信道读出的数据组长度T,将其预存在初始值(CC-T)中,同时地址计算器302产生触发信号。
为了得到精确的音调,该音调具有同它相异步的操作(换句话说具有固定的频率),对在第一匀滑转换信道中的每个读地址(rp+CC)和第二匀滑转换信道中的每个读地址(rp+CC+OFST),在采样值之间进行的插入已经在读地址十进制小数部分的基础上完成。为了这个目的,与图2中的插入电路11和12相同,图30的波形存贮器读出单元对于每个匀滑转换信道包括一个音调插入部分309和310,从而,在第一和第二匀滑转换信道中,根据彼此独立的整数部分的差值进行线性插入。
乘法器311和312补偿部分313和加法器314共同组成匀滑转换电路。在每个再现周期中,不管在再现周期中执行扩展、正常和压缩处理中的哪一个,该匀滑转换电路从第一匀滑转换信道读出的波形数据(即第一匀滑转换波形数据区域)到第二匀滑转换信道读出的波形数据(即第二匀滑转换波形数据区域)进行匀滑转换传输。地址计算器302为第二匀滑转换信道产生一个加权系数(周期计数CC÷周期长度CL),并且补偿部分313产生一个加权系数的补码(即1-CC÷CL)。在由第二匀滑转换信道读出的数据组的长度T2确定的周期中进行匀滑转换合成。
提供差值(“dif”)寄存器307用于存储累积的理想位置(虚拟读地址)和实际位置(实际读地址)之间的差值。在此,理想位置对应于当假设已经根据时间轴扩展/压缩比信息CRate执行了再现时间的扩展/压缩时读指针的值。理想位置或虚拟读地址在约定周期内的总增量,在该周期已经结束时等于在第二匀滑转换信道中读出的数据组长度与时间轴扩展/压缩比信息CRate的相乘的值(即T2×CRate)。另一方面,如果执行扩展(S)处理,实际读地址在约定周期内的总增量,在该周期结束时等于“0”,如果在约定周期内执行正常处理(N)则等于“T1”;如果在约定周期内执行压缩(C)处理,则等于“T1+T2”。因为在第二匀滑转换信道内的读地址成为了下一个再现周期读指针rp的值,这个实际读地址的总增量等于在第二匀滑转换信道内的读地址与在再现周期结尾点的读指针rp的值的差值。如果再现周期中理想位置或虚拟读地址VAD的总增量与实际读地址的总增量之间的差值由Δdif表示,由地址计算器302,依据刚完成的处理是扩展(S)、正常(N)和压缩(C)处理中的哪一个以不同的方式计算该Δdif如下如果刚完成的处理是扩展(S)处理,Δdif=(T2×CRate);如果刚完成的处理是正常(N)处理,Δdif=(T2×CRate)-T1;或者如果刚完成的处理是压缩(C)Δdif=(T2×CRate)-(T1+T2)。
地址计算器302将如此计算的差值与当前累加的差值(dif)相加,从而在刚结束的再现周期的结尾处(即在下一个再现周期的开始处)确定累积的差值(dif)。
进一步说,在刚结束的再现周期的结尾处确定的累积的差值(dif)的基础上,地址计算器302确定将执行扩展(S)、正常(N)和压缩(C)处理中的哪一个。具体说,这一确定是在下面的条件(1)和(2)的基础上作出的。由于这一确定是在累积的差值的基础上作出的,将在下一个再现周期中在第一匀滑转换信道内读出的数据组的长度提前读入“T1”寄存器,而“T2”寄存器保持在刚结束的再现周期中存储的值。
条件(1)如果dif≥0(其中,“dif”为一个正值),比较T1(在下一个再现周期中在第一匀滑转换信道内读出的数据组的长度)和“dif”,之后,(1-1)如果|dif|/T1≥0.5(即累积的差值dif大于数据组的长度T1的一半),地址计算器302确定将执行压缩(C)处理,或者,(1-2)如果不是(即累积的差值dif不大于数据组的长度T1的一半),地址计算器302确定将执行正常(N)处理。
条件(2)如果dif<0(其中“dif”为负值),比较T2(在刚结束的再现周期中在第二匀滑转换信道内读出的数据组的长度)和“dif”,之后,(2-1)如果|dif|/T2≥0.5(即累积的差值dif大于数据组的长度T2的一半),地址计算器302确定将执行扩展(S)处理,或者,(2-2)如果不是(即累积的差值dif不大于数据组的长度T2的一半),地址计算器302确定将执行正常(N)处理。
当在所需的再现时间内,实际读位置在理想读位置之后的偏移量大于数据组长度T1的一半时,上面的条件(1)用于执行压缩处理。当在所需的再现时间内,实际读位置在理想读位置之前的偏移量大于数据组长度T2的一半时,上面的条件(2)用于执行扩展处理。
图34在表702中表示了对上面提到的由地址计算器302执行的扩展(S)、正常(N)、压缩(C)处理的内容进行的总结,方框701表示了存储在波形存储器中的连续的数据组Z、A和B。在此,让我们假设当前正将数据组A在第一匀滑转换信道中读出(换句话说,作为第一匀滑转换波形数据区域),并且数据组Z、A和B各自的长度为Tpre,Tnow和Tnext。在这种情况下,在第二匀滑转换信道中读出的数据组(换句话说,第二匀滑转换波形数据区域)如果在当前再现周期执行扩展(S)处理,为数据组Z,如果在当前再现周期执行正常(N)处理,则为数据组A,如果在当前再现周期执行压缩(C)处理,则为数据组B。参考标记rp-now表示了在当前再现周期内“rp”寄存器的值,适用于当前再现周期的周期长度CL在“适用的周期长度”栏中表示,而在当前再现周期适用于第二匀滑转换信道的OFST在“第二信道OFST”栏中表示。具有开始地址(rp)的其中一个数据组在第一匀滑转换信道中读出,而具有开始地址(rp+OFST)的其中一个数据组在第二匀滑转换信道中读出。“rp更新”栏表示了一旦当前再现周期内的处理完成,就将“rp”的值更新以继续在第二匀滑转换信道的读出,更新到下一个再现周期在第一匀滑转换信道将要读出的数据组的开始地址。“dif的更新”栏表示了当当前再现周期已经结束时累积的差值dif的值。这个“dif”值用于地址计算器302确定在下一个再现周期执行扩展(S)、正常(N)和压缩(C)处理中的哪一个。进一步说,“顺序计数的更新”栏表示了将顺序计数器更新为在第二匀滑转换信道中读出的数据组之后的数据组的唯一的组数,该数据组将在下一个再现周期内在第一匀滑转换信道中读出。将适用的周期长度CL设置为在第二匀滑转换信道内读出的数据组的长度信息T2,在由周期长度CL表示的期间的再现周期内,执行匀滑转换合成。
图35是一个简图,说明了地址计算器302确定将执行扩展(S)、正常(N)和压缩(C)处理中的哪一个的方式,801的连续三角形框表示数据组的连续,图35的水平轴表示读地址而不是时间。在图35的(a)部分表示了波形数据在第一匀滑转换信道读出的实例,而在图35的(b)部分表示了波形数据在第二匀滑转换信道读出的实例。
在“扩展(S)处理”部分,参考标记831表示由理想指针(虚拟读地址)指出的最后位置,而811表示了由实际指针(“rp”寄存器)指出的位置。在这种情况下,因为累积的差值dif为821表示的dif-old,所以上述的条件(2-1)满足,从而地址计算器302确定将执行扩展(S)处理。在这个扩展(S)处理中,以三角形801表示的渐强波形(图35的(a))所示的方式在第一匀滑转换信道中读出波形数据,同时以相对的三角形804表示的渐弱波形(图35的(b))所示的方式在第二匀滑转换信道中读出波形数据。
在“正常(N)处理”部分,参考标记832表示由理想指针指出的最后位置,而812表示了由实际指针指出的位置。在这种情况下,因为累积的差值dif为822表示的dif-old,所以上述的条件(2-2)满足,从而地址计算器302确定将执行正常(N)处理。在这个正常(N)处理中,以三角形802表示的渐弱波形(图35的(a))所示的方式在第一匀滑转换信道中读出波形数据,同时以相对的三角形804表示的渐强波形(图35的(b))所示的方式在第二匀滑转换信道中读出波形数据。
在“压缩(C)处理”部分,参考标记833表示由理想指针指出的最后值,而813表示了由实际指针指出的位置。在这种情况下,因为累积的差值dif为823表示的dif-old,所以上述的条件(1-1)满足,从而地址计算器302确定将执行压缩(C)处理。在这个压缩(C)处理中,以三角形803表示的渐弱波形(图35的(a))所示的方式在第一匀滑转换信道中读出波形数据,同时以相对的三角形804表示的渐强波形(图35的(b))所示的方式在第二匀滑转换信道中读出波形数据。
进一步说,在图35的(c)部分,在下一个再现周期波形读出确定的实例。如果在后面或前面的再现周期,虚拟读地址已经从由理想指针851指定的位置超出852所表示的量,于是累积的差值dif成为823所示的,上述条件(2-1)满足,从而地址计算器302确定将执行扩展(S)处理。如果在前面的再现周期,虚拟读地址已经从由理想指针851指定的位置超出854所表示的量,于是累积的差值dif成为855所示的,上述条件(2-2)满足,从而地址计算器302确定将执行正常(N)处理。进一步说,如果在后面的再现周期,虚拟读地址已经从由理想指针851指定的位置超出856所表示的量,于是累积的差值dif成为857所示的,上述条件(1-1)满足,从而地址计算器302确定将执行压缩(C)处理。
关于图35,已经介绍了用地址计算器302进行选择,使实际读地址向后移动一个波形周期的扩展(S)处理,使实际读地址以正常方式增进的正常(N)处理和使实际读地址跃进一个波形周期的压缩(C)处理。或者,可以使实际读地址先后移动或跃进两个或更多的周期。图36表示了实际读地址后移动或跃进两个周期的实例。
具体说,在图36中,由理想指针指定的位置确定了在下一个再现周期将要在第二匀滑转换信道读出的数据组;就是说,选择起始点靠近理想指针位置的数据组在下一个再现周期将要在第二匀滑转换信道读出。
假设在先周期之前的再现周期内的理想指针(虚拟读地址)在区域905内的902位置,在前面的再现周期内在第二匀滑转换信道中读出渐强波形区域906。这样,“rp”在当前再现周期内的907位置,在当前再现周期内在第一匀滑转换信道中读出渐弱波形区域910。
在前面的再现周期内,理想指针已经增加了T2-old×CRate达到位置904。此刻,累积的差值dif是dif-old1,如912所示,而理想指针位于区域906内,从而在当前再现周期内在第二匀滑转换信道内读出渐强波形区域911。
以这种方法,在当前再现周期内,在第一匀滑转换信道中读出的波形区域910和在第二匀滑转换信道内读出的波形区域911之间进行匀滑转换合成,从而使得读指针跃进两个周期达到908所示的“rp-next位置。
通过改变时间轴扩展/压缩比CRate的值,虚拟读地址在每个再现周期内的增量可以比图36的实例中的大或小。根据所述的实例,在每个再现周期内在第二匀滑转换信道内读出的数据组可以自由地向前或向后跳跃。
图37为一简图,它表示了当时间轴扩展/压缩比CRate为1.5时(如图31的读出实例413)的控制实例。参考标记1001表示读地址在第一匀滑转换信道内增进的方式。横轴表示正常(N)处理和压缩(C)处理以每再现周期一次处理的次序重复的次数。纵轴表示地址(ADRS),而线1005表示沿纵轴画出的数据组,以象征指出数据组A到F的大概位置。参考标记1002表示读地址在第二匀滑转换信道内增进的方式。参考标记1003表示读指针rp的数值变化,参考标记1004表示周期计数CC的数值变化,它是以每个再现周期累积增加的方式变化的。如上所述,读指针rp增进以依次指示数据组A、B、D和E。在第一匀滑转换信道内以1001所示的方式产生地址,该方式是通过将读指针rp的值与周期计数CC的值相加。在第二匀滑转换信道内产生的地址以1002所示方式增进,以指示数据组A、C、D和F。将用这些地址读出的两个波形区域经过匀滑转换合成,这样以指定的音调在对应于四个再现周期的再现时间内再现了一个音波形。
图38表示了当时间轴扩展/压缩比CRate为1.0时,以原始再现时间长度再现的实例,图39表示了当时间轴扩展/压缩比CRate为0.75时,以压缩再现时间长度再现的实例。
显然,上述使用按图29和30的方式安排波形发生部分111的最佳实施例可适用于多种目的,如使用图2的波形发生部分111的最佳实施例。
例如,本发明的控制适用于,使用特征形式来表演乐音的情况,诸如颤音、碎音等,所述特征形式是在对应于调制周期的时间长度内在波形存储器301内记录的。响应每个音发生指令,将这样记录的施加了调制的波形数据读出。于是,用本发明的控制,使实际读地址以对应于指定音调的速率增进同时使虚拟读指针以原始调制周期和指定的调制周期之比为基础的速率增进,能够从一套施以调制的波形数据产生具有所需音调和调制周期的音。
本发明的控制还很好地适用于这种情况,在波形存储器301中记录了在吉他或其他乐器上的音调变调特征基础上的波形。通过在从波形存储器301中读出施加了变调的波形数据时,使用本发明的控制,根据所需的音调控制实际读地址的增进速率并根据所需的变调率控制虚拟读地址的增进速率,能够从一套施以变调的波形数据产生具有所需音调和变调率的音。
进一步说,使用本发明的控制,可以彼此独立地控制表示一个音从开始到结束的波形数据的上升部分长度和下落部分长度,而与音调无关。图40A表示了仅用于上升部分和下落部分的扩展和压缩再现时间的扩展/压缩比参数的示范变化。
进一步说,通过用一个振动波形,如噪音或混乱波形,控制虚拟读地址的变化,可以给PCM音发生器的波形音色施加一个在时间轴扩展/压缩比基础上变化的调制。图40B表示了一个实例,其中用一个随时间振动的波形调制扩展/压缩比,从而得到一个音色变化。进一步说,通过实行使用这种振动波形的TSC控制可以避免由重复读出存储在波形存储器301中的波形数据的循环波形段造成的单调性,如上面关于图18的说明。
更进一步说,本发明的TSC控制还可以很好地适用于这种情况,当在波形存储器301中存储了用在管乐器,吉他或其他乐器上的连音符产生的波形的情况。通过在读出连音符波形数据时实施TSC控制,能够自如地控制从一个音调到另一个音调的转移(连音时间)而与音调无关。
此外,本发明的TSC控制可以方便地适用于这种情况,在波形存储器中存储了由弦乐器,管乐器或其它上的连音符特征产生的伴有预先敲击声音(或装饰音)的特征音的波形。通过在读出波形数据时实行TSC控制,可以控制预先敲击声音的时间长度,而与音调无关。
进一步说,当本发明的TSC控制用于PCM音发生器,并且以不同的再现音调读出同一套波形数据时,该TSC控制可以控制各自的音发生时间长度使其彼此相等(图16和17所示的实例)。
当本发明的TSC控制还是用于PCM音发生器,它可以从同样的一套多周期波形数据产生多个具有不同再现时间长度的音色波形。
此外,通过将当本发明的TSC控制用于PCM音发生器,可以读出波形存储器301中的一套波形数据,其再现时间长度根据指定的音符长度可变地变化。
尽管,在重复读出基础上的再现时间长度将导致在循环波形段的单调音色,本发明的TSC控制通过适当地控制扩展/压缩比可以改变在循环波形段的音色,从而避免单调性。除了上述的应用外,TSC控制还有多种应用。
根据本发明,再采样技术可以在存入波形存储器之前用于多周期波形各个数据组各自长度进行预处理。然而,即使在正常(N)处理中实施匀滑转换合成已经在上面介绍了最佳实施例,从前面显然可以理解,在正常(N)处理中实施匀滑转换合成不是必须的,因此可以省略。然而,当“表面上“在正常(N)处理中实施匀滑转换合成时,因为可以将上述本发明的控制安排为无条件执行匀滑转换合成,而这样可以省略判断的需要考虑时间轴扩展/压缩控制参数的内容,以及是否要进行匀滑转换合成。这种安排可以显著简化必要的控制和构成。
更进一步,如上所述,包括在每个数据组中的周期数可以仅为一个或两个或更多。或者,数据组的周期数可以彼此不同。
此外,关于控制每个再现周期虚拟和实际读地址的增进,上面已经介绍了实施例,地址增进控制可以以更短或更长的间隔进行。在一个波形再现的过程中,当进行地址比较控制时,再现周期还可以改变成另一个。
在上述最佳实施例中,尽管根据波形存储器中的地址数计算了累积的差值,在这种情况下,还可以用下面的等式根据数据组数计算dif=dif+Δdif在这种情况下,如果dif≥0.5(即如果累积的差值大于再现周期的一半),选择压缩(C)处理。
如果dif≤-0.5(即如果累积的差值大于再现周期的一半),选择扩展(S)处理。
否则,(即如果累积的差值小于再现周期的一半),选择正常(N)处理。
进一步说,如下计算Δdif对于扩展(S)处理,Δdif=CRate;对于正常(N)处理,Δdif=CRate-1;以及对于压缩(C)处理,Δdif=CRate-2。
注意,在上述最佳实施例中,将各个数据组各自的开始点根据一种相位值(幅值和变化的斜率)设置在相位相同的点是很重要的,还可以根据两个或更多相位值将他们设置在相位相同的点,在这种情况下,在一个相应的再现周期的结尾,一个数据组可以在任何一个相位值与另一个数据组相连。
进一步说,已经在上面的最佳实施例中介绍了在匀滑转换合成中固定使用渐强和渐弱波形数据区域,两个波形数据区域可以交替地用作渐强和渐弱波形数据区域。如上所述,可以根据实时的特征操作,可变地设置TSC控制的参数,或与多种音色和效果相关地进行表示。最好将用于TSC控制的扩展/压缩控制参数的随时间的变化模型化,在模型中,可方便地得到所需的TSC控制随时间的变化,并可以进行编程,从而可以在一个预定的音发生周期内完成时间轴扩展和压缩(例如,任意选择的部分周期,诸如一个音的上升部分或下落部分或整个音发生周期)。图41和42表示了这种TSC控制参数随时间变化的模型的实例。
具体说,图41A到41C表示了在利用扩展/压缩比CRate(换句话说,使用图29和30所示的波形发生部分111进行TSC控制)进行TSC控制的方案中,TSC控制参数(即扩展/压缩比CRate)随时间变化的模型。水平时间轴的开始点表示,例如一个音发生开始点。更具体说,图41A表示了扩展/压缩比CRate是固定的而不是沿时间变化的实例。图41B表示了另一个实例,其中扩展/压缩比CRate从开始部分的一个小值逐渐增加,之后变成在后面持续部分基本固定的值。用这种方式,执行TSC控制,这样产生的音表示在其开始部分为最大的时间轴扩展,接着逐渐返回到初始的时间轴位置。图41C依旧表示了另一个实例,其中扩展/压缩比CRate从在开始部分的大值逐渐减小,接着在变成在后面持续部分基本固定的值。用这种方式,执行TSC控制,这样产生的音表示在其开始部分为最大的时间轴压缩,接着逐渐返回到初始的时间轴位置。
图41D到图41F表示了用于使用虚拟读地址VAD(换句话说,使用图2所示波形发生部分111进行TSC控制)进行TSC控制的方案中,TSC控制参数(即虚拟读地址VAD)随时间变化的模型。除了使用虚拟读地址VAD作为TSC控制参数以外,图41D、41E和41F的实例与上述图41A、41B和41C的实例分别类似。
最好将图41所示的TSC控制参数(即扩展/压缩比CRate或虚拟读地址VAD)的模型预先以表格形式存储在存储器中。注意,当将图41D、41E和41F实例中的虚拟读地址VAD的随时间变化模型预先存储时,安排虚拟读地址计算器17与虚拟读地址VAD的时间函数相乘,该时间函数是通过“音调信息”从表格中读出的,而不是通过以采样频率累积“音调信息”读出的。显然,可以将扩展/压缩比scr(图2)随时间的变化模型以图41A、41B和41C所示的方式预先存储,代替将虚拟读地址VAD随时间的变化模型以图41D、41E和41F所示的方式直接预先存储。
图42表示了多种实例,使用一个数学算子,诸如包络线发生器,将其中类似于图41的TSC控制参数随时间变化模型生成折线图。具体说,图42A到42F表示了用实时数学运算创建类似于图42A到42F的TSC控制参数随时间变化模型的实例,而不是使用表格或存储器。
图41到图42所示的实例仅用于描述目的,可以预先存储或数学创建多种其他的模型,而不仅是那些描述的实例。
进一步说,图43A和图43B表示了使用任何如图41和图42所示的TSC控制参数的随时间的变化形式的音色控制实例,各自表示了对应于一个音色的控制信息表的示范设置情况。
具体说,图43A表示了对应于音色名“A”的多种控制信息实例。这里,使用图30所示的波形发生部分111进行TSC控制。根据这个实例,指定“波形数据文件1”作为波形数据文件说明信息,而指定“CRate变化2”作为TSC控制参数模型说明信息。这个控制信息表格也包括多个设置信息,诸如音量包络线(EG)设置信息。在此,上述“CRate变化2”说明了一个图41A到41C和图42A到图42C所示的预定时间变化。换句话说,根据这个实例,指定“波形数据文件1”的多周期波形数据,并从波形存储器301(图30)作为对应于音色名“A”的音波形将其读出。而以根据“CRate变化2”的时间变化方式进行TSC控制,从而创建所需的波形。在一些应用中,可以指定“CRate变化2”以外的其他CRate变化形式,同时指定同样的“波形数据文件1”。换句话说,根据这个实例,通过使用不同的CRate变化形式,而使用同样的数据文件,可以提供一个音色变化的增加的数。
图43B表示了对应于音色名“B”的多种控制信息实例。这里,使用图2所示的波形发生部分111进行TSC控制。根据这个实例,指定“波形数据文件2”作为波形数据文件说明信息,而指定“VAD变化3”作为TSC控制参数模型说明信息。这个控制信息表格也包括多个设置信息,诸如音量包络线(EG)设置信息。在此,上述“VAD变化3”说明了一个图41D到41F和图42D到图42F所示的预定时间变化。换句话说,根据这个实例,指定“波形数据文件2”的多周期波形数据,并从波形存储器10(图2)中作为对应于音色名“B”的音波形将其读出。而以根据“VAD变化3”的时间变化方式进行TSC控制,从而创建所需的波形。在这种情况下,也可以指定“VAD变化3”以外的其他VAD变化形式,同时指定同样的“波形数据文件2”。换句话说,根据这个实例,通过使用不同的VAD变化形式,而使用同样的数据文件,可以提供一个音色变化的减少的数。另一方面,在最佳实施例中已经介绍了由专用硬件执行的,包括波形发生部分111的音发生器单元103,也可以由软件来实现。
换句话说,为此,要以这样的方式建立一个软件系统,比如一个“TSC控制程序”,该方式可获得所需的到此为止关于图2到图43所述的本发明多种形式TSC控制的一种,并且在存储器中存储多周期波形数据。于是,通过这样建立的软件(TSC控制程序)的运行,从波形存储器中以基于上述TSC控制的方式读出波形数据。
图44是一个方框图,它表示了在计算机软件基础上的音发生器所采用的整个硬件构成。该硬件构成可以由一台个人计算机实现。
在所描述的音发生器系统中,个人计算机的CPU(中央处理单元)31用作主控制单元,它运行预定的“TSC控制程序”,以执行类似于由图1的音发生器单元103实施的TSC控制的TSC控制。必要时,CPU31可以执行任何其他程序,包括类似于图1的音发生器单元103执行的处理程序,现在由TSC控制程序执行。
通过数据和地址总线将多种组件连接到CPU31上,例如一个ROM(只读存储器)32,RAM(随机访问存储器)33,网络I/O(输入/输出装置)34,计时器35,鼠标36,键盘37,显示器38,硬盘39,DMAC(直接存储访问控制器)40,声音I/O 41,采样时钟发生电路42,外部存储器驱动器43和MIDI接口48。
声音I/O 41是一个声音输入/输出装置,称为CODEC,它包括一个模拟到数字转换器(ADC),一个与ADC相连的输入FIFO(先进先出)缓冲器,和一个与数字到模拟(DAC)转换器相连的输出FIFO(先进先出)缓冲器。通过外部音频信号输入端子45将模拟音频信号送给声音I/O 41中的ADC,其中根据由采样时钟发生器电路42产生的预定频率(例如,48kHz)的采样时钟脉冲Fs,将该信号转换成数字形式。于是将最终的经过A/D转换的音频信号送入FIFO缓冲器的输入端,声音I/O 41将记录处理需要信号送给DMAC 40。DMAC 40响应记录处理需要信号从输入缓冲器读出波形数据,并将读出的波形数据经由总线44存储在一个中间存储器内,诸如RAM 33。如上所述,如此存储在RAM中的波形数据接着经过初步运算,可以对其进行调整,从而根据TSC控制将其适当地读出并分成多个数据组以便处理。可以将这样的多套波形数据预存在硬盘39上,这样,在这个实施例中,ROM 32,RAM 33或硬盘39对应于图2的波形存储器或图30的波形存储器301。
可以将“TSC控制程序”存储在ROM 32、RAM 33或硬盘39中的任何一个当中。
外部记录介质46,诸如软盘,CD-ROM(光盘只读存储器)或MO(磁光盘),与外部存储器驱动器43可移动地连接,而外部存储器驱动器43从记录介质46读出并向其写入数据。外部记录介质46可以用于存储“TSC控制程序”,其他程序,波形数据和/或自动执行的顺序数据。
进一步说,可以将音发生器系统通过网络I/O34连接到通讯网络,从而它可以从外部服务器(未示出)接受“TSC控制程序”,其他程序和/或波形数据,并将它们存储在RAM 33,硬盘39或外部存储介质46内。
CPU31执行存储在,例如RAM33中的“TSC控制程序”,以实施如上述实施例中的TSC控制,从而,从波形存储器32、33或39中读出经过TSC控制的波形数据。接着,CPU 31将读出的波形数据暂时写入RAM 33中的输出缓冲器中。与来自声音I/O41的再现采样时钟脉冲同步,DMAC根据传统的直接存储处理方案,从输出缓冲器读出经过TSC控制的波形数据的采样值,每个时钟脉冲一次采样,并将采样值送到声音I/O 41。声音I/O 41将经过TSC控制的波形数据依次暂时写入那里的输出FIFO缓冲器。于是将D/A转换结果波形数据通过声音系统47进行声音再现。
注意,不必将所有的音发生器单元103的功能用软件音发生器实施并且可以将其安排成一种混合形式,它包括软件和硬件音发生器的组合。例如根据TSC控制从波形存储器的波形数据读出可以通过软件处理执行,而匀滑转换合成可以由硬件电路执行。
如此前所描述的本发明,提供了如下多种有益的效果。
适用于从波形存储器读出的波形数据基础上的音发生器时,本发明可以对数据读出速率(音调)随意进行可变的控制,并同时沿时间轴对波形数据进行有选择的扩展和压缩,而不必考虑读出速率。这样,作为一个独立的音控制参数,通过介绍沿时间轴方向对波形数据进行扩展和压缩,本发明具有很好的优点,它向一个待发音施加压缩,并显著地提高该音的表现力和可控性,通过使多个不同音调共同使用所存储的一套波形数据,即使用简单的结构,它也可以节省存储容量。
进一步说,当适用于这种情况,在波形存储器中存储了多周期波形的高品质波形数据,他们对应于任意的特征形式,诸如经过如颤音或碎音调制的,经过如音调变调或瞬态音调波动如瞬态音或装饰音,从而通过读出所存储的波形数据而产生一个音,本发明可以沿时间轴对波形数据的读出位置进行扩展和压缩而不必考虑对波形数据读出速率的控制(待发音的音调控制)。结果,本发明能够提供一个时间轴控制参数,作为附加的音控制参数用于任意特征形式,这样得到了对任意调整形式都适合的音发生和音控制,它具有数据所不曾具备的表现力和可控性。
进一步说,为了不考虑波形数据读出速率的控制(待发音的音调控制),沿时间轴在波形数据所需部分(整个或部分)对扩展和压缩读出位置进行控制从而任意地控制所需部分的音再现或音发生时间长度,本发明得到多种音波形的变化形式,从而使得音发生和音控制具有提高的数据所不具备的表现力和可控性。例如,本发明能够自由地对所发音的上升部分或下落部分等其它类似部分的音发生时间长度进行可变的控制,同时保持音在一个所需的音调。通过可变地控制所发音的整个时间长度同时保持音在一个所需的音调,本发明可以根据指定的音符长度或其它自由地控制音发生时间长度。
通过有选择地产生的时间变化特征的时间轴扩展/压缩控制信息,该时间变化特征对应于指定了音色或其它的信息,本发明得到了对应于指定的音色或其它类似量的音波形的多种变化形式,从而,通过时间轴控制,从仅一个多周期波形的波形数据建立了多种波形变化形式。
此外,当从波形存储器中以重复或循环的方式读出同一波形部分的波形数据时,通过沿时间轴在波形数据所需部分对扩展和压缩读出位置进行控制,从而任意地控制所需部分的音再现或音发生时间长度,本发明得到多种音波形的变化形式,并可以将循环读出造成的单调性最小化,或避免这种单调性。
另外,对应待发音,通过沿时间轴在波形数据所需部分对扩展和压缩读出位置进行控制,从而施加确定的控制,如振动,本发明得到了音波形的多种变化形式。
此外,即便在音波形的再现过程中,通过沿时间轴实施扩展和压缩波形数据的控制,以便沿时间轴动态改变压缩和扩展的比值,本发明通过实时控制获得了音波形的多种变化形式。
另外,当有选择地将多套存储波形用于产生一个音时,通过随时间的变化,依次将该套转换为用于另一套,本发明可以以更加多种的形式实施音控制。
通过在控制过程中进行匀滑转换合成,本发明获得了具有光滑波形连接的时间轴扩展和压缩控制。
进一步说,当要经过匀滑转换的波形数据组依次改变时,本发明固定在每个匀滑转换信道内的匀滑转换方向(渐强或渐弱),从而总是从第一匀滑转换信道的波形数据到第二匀滑转换信道的波形数据进行传输。使用这样的安排,可以固定每个匀滑转换信道的匀滑转换系数的函数波形,从而便于形成函数波形。
最后,即使当不进行时间轴扩展和压缩控制时,将本发明设置为在两个匀滑转换信道读出的同一个波形数据之间进行匀滑转换合成,从而避免波形数据的时间轴扩展或压缩。用这种方式,本发明表面上在任何时候都进行匀滑转换合成。结果,可以将本发明设置成在任何时刻都无条件进行匀滑转换合成,这样可以省去判断的必要,考虑时间轴扩展/压缩控制参数,是否需要进行匀滑转换合成。这种设置可以明显地简化必要的控制和构成。
权利要求
1.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个控制信息发生部分,它产生控制信息,随时间的变化指定要从所述波形存储器中读出的所述波形数据的地址位置;一个地址发生部分,它产生一个以对应于所述音调发生部分指定的所述音调的速率增进的读地址;一个控制单元,它在由控制信息指定的所述地址位置和由所述地址发生部分产生的所述读地址的位置之间进行比较,并根据所述比较的结果控制读地址的偏移;以及一个在由所述控制单元控制的所述读地址的基础上读出所述波形数据的部分。
2.如权利要求1所述的音发生装置,其特征在于将存储在所述波形存储器中的所述波形数据分成多个数据组,并将其以这样的方式进行处理,所述数据组的各自第一个波形数据与其它波形数据的第一波形数据相位一致,并且其中,当由所述控制信息指定的所述地址位置与由所述地址发生部分产生的所述读地址的位置之间的差值超出了一个预定的值时,所述控制单元将所述读地址偏移一个与一个或两个数据组相对应的量。
3.如权利要求1或2所述的音发生装置,其特征在于,它进一步包括一个匀滑转换部分,当所述控制单元进行读地址偏移时,该匀滑转换部分在基于所述偏移之前产生的所述读地址从所述波形存储器中读出的所述波形和基于偏移之后产生的所述读地址从所述波形存储器中读出的所述波形之间实施匀滑转换合成。
4.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据,该多周期波形数据具有施于其上的调制效果;一个音调指定部分,它指定待发音的音调;一个产生控制信息以控制时间轴调制的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,在由所述控制单元指定的所述所述位置上,以对应于所述音调指定部分指定的所述音调的速率读出所述波形数据。
5.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个根据从所述波形存储器中重复读出的所述波形数据预定部分产生控制信息的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,以对应于所述音调指定部分指定的所述音调的速率,从所述波形存储器中读出所述波形数据,其中,当重复读出预定部分时,所述读出部分在所述控制单元指定的所述位置,以对应于所述指定音调的速率读出所述波形数据。
6.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个产生随时间变化的控制信息的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,它在所述控制单元指定的所述位置,以对应于所述音调指定部分指定的所述音调的速率,从所述波形存储器中读出所述波形数据。
7.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据,所述波形数据在基于预定特征形式的预定周期内具有施于其上的音特征变化形式;一个音调指定部分,它指定待发音的音调;一个产生控制信息,以便控制在预定特征形式基础上的音发生周期的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,它在所述控制单元指定的所述位置,以对应于所述音调指定部分指定的所述音调的速率,从所述波形存储器中读出所述波形数据。
8.权利要求7所述的音发生装置,其特征在于施加在所述波形数据上的音特征变化至少是音调、音色和音量中间的一个的变化。
9.权利要求7或8所述的音发生装置,其特征在于所述控制信息指定了在预定特征形式基础上的音发生周期的开始点和结束点或指定了其中的一个,以及变化的时间长度。
10.权利要求7或8所述的音发生装置,其特征在于所述控制信息指定了在预定特征形式基础上的音发生周期的开始点和结束点其中的一个,以及变化的速率。
11.一种音发生装置,包括一个波形存储器,其中存储有表示第一波形的第一波形数据,表示第一波形的第一波形数据,以及多周期第三波形的第三波形数据,该第三波形数据具有施加在其上的音特征变化从而将所述第一和第二波形数据相互连接;一个音调指定部分,它指定待发音的音调;一个这样的部分,当执行从所述第一波形到所述第二波形的变换时,该部分执行控制,从而将所述第一和所述第二波形读出,同时将第三波形插入其中;一个产生控制信息以控制使用所述第三波形的时间;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的至少一部分所述第三波形的离散位置,同时由所述控制单元控制所述第三波形的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,以对应于所述音调指定部分指定的所述音调的速率,从所述波形存储器中读出所述波形数据,其中读出第三波形数据,所述读出部分在所述控制单元指定的位置,以对应于所述指定的音调的速率,将所述第三波形数据读出。
12.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个产生与预定的部分音发生周期相一致的控制信息的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,它在所述控制单元指定的所述位置,以对应于所述音调指定部分指定的所述音调的速率,从所述波形存储器中读出所述波形数据。
13.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个音色指定部分,它指定待发音的音色;一个从音发生开始点开始随时间的推移产生对应于所述音色指定部分指定的音色而变化的控制信息的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,以对应于所述音调指定部分指定的所述音调的速率,从所述波形存储器中读出对应于所述指定的音色的所述多周期波形数据,其中所述读出部分在所述控制单元指定的位置,以对应于所述指定的音调的速率,将所述波形数据读出,其中存储在所述波形存储器中的多周期波形的波形数据由至少两个不同的音色共用,并且以不同方式对两个不同的音色的控制信息进行设置。
14.一种音发生装置,包括一个波形存储器,其中存储有多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个在音发生过程中实时地产生控制信息的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,以对应于所述音调指定部分指定的所述音调的速率,在所述控制单元指定的位置,从所述波形存储器中读出所述波形数据。
15.一种音发生装置,包括一个波形存储器,其中存储有多组不同的多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个波形指定部分,它指定任何一组波形数据,所述波形指定部分随时间的推移,将指定的组依次切换为另一组;一个产生控制信息的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述一组波形数据的离散位置,该组波形数据是有所述波形指定部分指定的,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,以对应于所述音调指定部分指定的所述音调的速率,在所述控制单元指定的位置,从所述波形存储器中读出所述波形数据。
16.一种音发生装置,包括一个波形存储器,其中存储有多组不同的多周期波形的波形数据;一个音调指定部分,它指定待发音的音调;一个产生控制信息,以控制发出一个音的时间的部分;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出部分,以对应于所述音调指定部分指定的所述音调的速率,在所述控制单元指定的位置,从所述波形存储器中读出所述波形数据。
17.一种在从波形存储器中读出的基础上产生一个音的方法,所述波形存储器中存储了多周期的波形数据,所述方法包括一个指定待发音音调的步骤;一个产生控制信息的步骤,该步骤在一个时间函数中指定一个从所述波形存储器中读出的波形数据的地址位置;一个产生读地址的步骤,该读地址以对应于所述指定音调的步骤指定的音调的速率增进;一个控制步骤,在由控制信息指定的地址位置和由所述产生读地址的步骤产生的读地址位置之间进行比较,并且根据比较的结果控制读地址的偏移;以及一个在由控制步骤控制的读地址的基础上读出波形数据的步骤。
18.如权利要求17所述的方法,其特征在于,将存储在所述波形存储器中的所述波形数据分成多个数据组,并以这样的方式对其进行处理,所述数据组各自的引导波形数据彼此相位一致,以及其中,当由控制信息指定的地址位置和所述产生读地址的位置之间的差值超过一个预定的值时,所述偏移步骤将读地址偏移一个与一个或更多数据组相对应的量。
19.如权利要求17所述的方法,其特征在于进一步包括一个这样的步骤,当由所述偏移步骤进行读地址偏移时,在基于所述偏移前产生的读地址从所述波形存储器中读出的波形数据和基于所述偏移后产生的读地址从所述波形存储器中读出的波形数据之间进行匀滑转换合成。
20.一种在从波形存储器中读出的基础上产生一个音的方法,所述波形存储器中存储了多周期的波形数据,所述方法包括一个指定待发音音调的步骤;一个产生控制信息的步骤;一个控制步骤,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制步骤控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及一个读出步骤,以对应于所述音调指定步骤指定的所述音调的速率,在所述控制步骤指定的位置,从所述波形存储器中读出所述波形数据,从而,由所述控制步骤,根据控制信息沿时间轴对所产生的音进行扩展和压缩,上述所产生的音具有指定的音调和经过特征控制的波形数据。
21.一种机械易读的存储介质,它包括一系列由计算机执行的程序指令,该指令用于在从波形存储器中读出的波形数据的基础上产生一个音,所述波形存储器中存储了多周期波形的波形数据,所述程序包括一个指定待发音的音调的装置;一个产生控制信息的装置,它随时间的变化指定从要所述波形存储器中读出的所述波形数据的地址位置;一个产生一个以对应于所述音调发生部分指定的所述音调的速率增进的读地址的装置;控制装置,它在由控制信息指定的所述地址位置和由所述地址发生装置产生的所述读地址的位置之间进行比较,并根据所述比较的结果控制读地址的偏移;以及一个在由所述控制装置控制的所述读地址的基础上读出所述波形数据的装置。
22.一种机械易读的存储介质,它包括一系列由计算机执行的程序指令,该指令用于在从波形存储器中读出的波形数据的基础上产生一个音,所述波形存储器中存储了多周期波形的波形数据,所述程序包括一个指定待发音的音调的装置;用于产生控制信息的部分;控制装置,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制步骤控制所述波形数据的时间轴,根据所述控制信息对其进行扩展或压缩;以及用于以对应于所述音调指定装置指定的所述音调的速率,在所述控制装置指定的位置,从所述波形存储器中读出所述波形数据的装置。
23.一种音发生装置,包括一个波形发生部分,它在两个信道内产生波形数据;一个波形指定部分,它指定所述波形发生部分的所述两个个信道中的第一个中产生的波形数据,以及所述波形发生部分的所述两个个信道中的第二个中产生的波形数据;一个匀滑转换合成部分,它执行匀滑转换合成,从而从所述第一信道中产生的波形数据到从所述第二信道中产生的波形数据进行变换;一个第一控制部分,它依次指示所述波形发生部分产生具有任意长度的附加的波形数据,并控制所述匀滑转换合成部分在一个对应于附加波形数据长度的周期内,执行所述匀滑转换合成;以及一个第二控制部分,它在所述匀滑转换合成部分完成所述匀滑转换合成后,以这样的方式控制波形指定部分的指定,将到此为止在第二信道内所产生的波形数据在所述第一信道内产生,并且在所述第二信道内产生所述附加波形数据。
24.一种音发生装置,包括一个波形存储器,它存有多周期的波形数据一个音调指定部分,它产生待发音的音调;一个波形指定部分,它随时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时控制所述波形数据的时间轴,对其进行扩展或压缩,从而在当前指定的位置识别第一波形数据并在后面的位置识别第二波形数据,已经相对于当前指定的位置对该位置进行了控制,将其进行了扩展和压缩;一个读出部分,它从波形存储器中读出由所述波形指定部分指定的所述第一和第二波形数据,以通过所述第一和第二信道分别输出该第一和第二波形数据;一个匀滑转换合成部分,它一直执行匀滑转换合成,从而从所述第一信道提供的波形数据到所述第二信道提供的波形数据进行变换;一个控制部分,它在所述匀滑转换合成部分完成所述匀滑转换合成后,以这样的方式控制波形指定部分的指定,将到此为止在第二信道内所产生的波形数据由所述读出部分通过所述第一信道输出,并由所述读出部分通过所述第二信道输出在新位置的波形数据,所述新位置是相对于第二波形数据进行了控制,对其进行了扩展或压缩的位置。
25.一种音发生装置,包括一个波形存储器,它存有多周期的波形数据一个音调指定部分,它产生待发音的音调;一个波形指定部分,它随时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时控制所述波形数据的时间轴,对其进行扩展或压缩,从而在当前指定的位置识别第一波形数据并在后面的位置识别第二波形数据,已经相对于当前指定的位置对该位置进行了控制,将其进行了扩展和压缩;一个读出部分,它从波形存储器中读出由所述波形指定部分指定的所述第一和第二波形数据,以通过所述第一和第二信道分别输出该第一和第二波形数据;一个匀滑转换合成部分,它执行匀滑转换合成,从而从所述第一信道提供的波形数据到所述第二信道提供的波形数据进行变换;以及一个控制单元,它在所述匀滑转换合成部分完成所述匀滑转换合成后,以这样的方式控制波形指定部分的指定,由所述读出部分通过第一和第二信道中已经使用的同样的一个信道继续读出所述第二波形数据,并由所述读出部分通过所述第一和第二信道中的另一个信道输出新位置的波形数据,所述新位置是相对于第二波形数据进行了控制,对其进行了扩展或压缩的位置,并且还改变了在所述匀滑转换合成部分内的匀滑转换方向。
26.一种音发生装置,包括一个波形存储器,它存有多周期的波形数据;一个音调指定部分,它产生待发音的音调;一个控制单元,它随着时间的推移,指定从所述波形存储器中读出的所述波形数据的离散位置,同时由所述控制单元控制所述波形数据的时间轴,对其进行扩展或压缩;一个波形指定部分,它相应所述控制单元的指定,当进行波形数据的扩展时,在当前位置指定波形数据的第一部分并在当前位置之后的位置指定波形数据的第二部分,当进行波形数据的压缩时,在当前位置指定波形数据的第一部分,并在当前位置之前的位置指定波形数据的第二部分,并且在不进行波形数据的用处和压缩时,在当前位置指定波形数据的同一部分作为波形数据的第一和第二部分;一个读出部分,它以对应于所述音调指定部分指定的音调的速率,从波形存储器中读出由所述控制单元指定的所述波形数据的第一和第二部分;一个匀滑转换合成部分,它执行匀滑转换合成,从而从所述波形数据的第一部分到所述波形数据的第二部分进行变换。
27.一种波形数据匀滑转换方法包括一个产生第一波形数据的多个周期的步骤;一个这样的步骤,以预定的定时,开始第二波形数据的发生,该第二波形数据具有与以所述预定定时产生的第一波形数据相同的相位;一个产生这样一个第一参数的步骤,它经过一个预定的周期,从初始值1减少到最终值0,并且同时产生一个第二参数,它经过一个预定的周期,从初始值0增加到最终值1;以及一个步骤,控制所述预定周期的长度,使其与所述第二波形数据的一个周期长度相一致。我们建议的附加权利要求
28.一种波形再现装置,包括一个波形存储器,它存有多周期部分的波形数据;一个音发生指令部分,它指示一个音调发生并指定所述音的音调;一个部分,产生控制数据以控制所述波形部分的读出位置的增进;一个地址发生部分,它产生以对应于所述音发生指令部分指定的音调的速率增进的读地址;一个读出部分,它在所述读地址的基础上,从所述波形存储器中读出所述波形部分的所述波形数据;一个控制单元,它在以所述控制数据为基础指定的所述读出位置的增进和由所述地址发生部分产生的所述读地址的位置的增进之间进行比较,并且在比较结果的基础上选择指定一个接着要读出的波形部分的地址,从而实施控制,这样所述的地址发生部分在某点产生所选择的指定波形部分的地址,在所述的点,在读地址基础上读出的波形数据的相位与所选择的地址指定的波形数据的相位相一致;以及一个在由所述读出部分读出的波形数据的基础上再现一个波形的部分。
29.一个波形再现装置,包括一个波形存储器,它存有多周期部分的波形数据;一个音发生指令部分,它指示一个音调发生并指定所述音的音调;一个部分,产生随时间变化的控制数据以控制所述波形部分的读出位置的增进;一个地址发生部分,它产生以对应于所述音发生指令部分指定的音调的速率增进的读地址;一个读出部分,它在所述读地址的基础上,从所述波形存储器中读出所述波形部分的所述波形数据;一个控制单元,对于每个预定再现周期,它在以所述控制数据为基础指定虚拟波形部分位置的增进和由所述地址发生部分产生的所述读地址指定的波形部分位置的增进之间进行比较,并且在比较结果的基础上选择指定一个接着要读出的波形部分,从而实施控制,这样所述的地址发生部分在下一个再现周期中开始产生所述指定波形部分的地址;以及一个在由所述读出部分读出的波形数据的基础上再现一个波形的部分。
30.如权利要求28或29所述的波形再现装置,其特征在于,通过匀滑转换将在一个时刻所选择的所述波形部分和在另一个时刻所选择的所述波形部分相互连接。
31.一种波形再现方法,它利用存储有多周期波形部分数据的存储器再现波形,所述方法包括一个音发生指令步骤,指示一个音的产生并指定所述音的音调;一个步骤,产生控制数据以控制所述波形部分的读出位置的增进;一个地址发生步骤,它产生以对应于所述音发生指令步骤指定的音调的速率增进的读地址;一个读出步骤,它在所述读地址的基础上,从所述波形存储器中读出所述波形部分的所述波形数据;一个控制步骤,它在以所述控制数据为基础指定的所述读出位置的增进和由所述地址发生步骤产生的所述读地址的位置的增进之间进行比较,并且在比较结果的基础上选择指定一个接着要读出的波形部分的地址,从而实施控制,这样所述的地址发生步骤在某点产生所选择的指定波形部分的地址,所述的点为在读地址基础上读出的波形数据的相位与所选择的地址指定的波形数据的相位相一致;以及一个在由所述读出部分读出的波形数据的基础上再现一个波形的部分。
32.一种机械易读的存储介质,它包括一系列由计算机执行的程序指令,该指令用于在从波形存储器中读出的波形数据的基础上产生一个音,所述波形存储器中存储了多周期波形的波形数据,所述介质包括;一个音发生指令装置,指示一个音的产生并指定所述音的音调;一个装置,产生控制数据以控制所述波形部分的读出位置的增进;地址发生装置,它产生以对应于所述音发生指令装置指定的音调的速率增进的读地址;读出装置,它在所述读地址的基础上,从所述波形存储器中读出所述波形部分的所述波形数据;控制装置,它在以所述控制数据为基础指定的所述读出位置的增进和由所述地址发生装置产生的所述读地址的位置的增进之间进行比较,并且在比较结果的基础上选择指定一个接着要读出的波形部分的地址,从而实施控制,这样所述的地址发生步骤在某点产生所选择的指定波形部分的地址,所述的点为在读地址基础上读出的波形数据的相位与所选择的地址指定的波形数据的相位相一致;以及在由所述读出装置读出的波形数据的基础上再现一个波形的装置。
33.一种波形再现方法,它利用存储有多周期波形部分数据的存储器再现波形,所述方法包括一个音发生指令步骤,指示一个音的产生并指定所述音的音调;产生随时间变化的控制数据以控制所述波形部分的读出位置的增进的一个步骤;一个地址发生步骤,它产生以对应于所述音发生指令步骤指定的音调的速率增进的读地址;一个读出步骤,它在所述读地址的基础上,从所述波形存储器中读出所述波形部分的所述波形数据;一个控制步骤,对于每个预定再现周期,它在以所述控制数据为基础指定虚拟波形部分位置的增进和由所述地址发生步骤产生的所述读地址指定的波形部分位置的增进之间进行比较,并且在比较结果的基础上选择指定一个接着要读出的波形部分,从而实施控制,这样所述的地址发生部分在下一个再现周期中开始产生所述指定波形部分的地址;以及在由所述读出部分读出的波形数据的基础上再现一个波形一个步骤。
34.一种机械易读的存储介质,它包括一系列由计算机执行的程序指令,该指令用于在从波形存储器中读出的波形数据的基础上产生一个音,所述波形存储器中存储了多周期波形的波形数据,所述介质包括音发生指令装置,指示一个音的产生并指定所述音的音调;产生随时间变化的控制数据以控制所述波形部分的读出位置的增进的装置;地址发生装置,它产生以对应于所述音发生指令装置指定的音调的速率增进的读地址;读出装置,它在所述读地址的基础上,从所述波形存储器中读出所述波形部分的所述波形数据;控制装置,对于每个预定再现周期,它在以所述控制数据为基础指定虚拟波形部分位置的增进和由所述地址发生装置产生的所述读地址指定的波形部分位置的增进之间进行比较,并且在比较结果的基础上选择指定一个接着要读出的波形部分,从而实施控制,这样所述的地址发生部分在下一个再现周期中开始产生所述指定波形部分的地址;以及在由所述读出部分读出的波形数据的基础上再现一个波形的装置。
全文摘要
指定待发音的音调,并同时产生用于时间轴扩展/压缩的控制信息。指定从存储器读出的波形数据的离散位置,同时控制所述波形数据的时间轴,根据控制信息将其扩展或压缩,并且以对应于指定音调的速率在指定位置读出部分所述波形数据。这样可变地控制从存储器读出波形的速率以产生所需的音调,在这个时间内可以容易控制波形存储器将其沿时间轴扩展或压缩,而不必考虑所述的读出速率和音调控制。通过给多种特征形式实施该时间轴扩展/压缩控制,能够明显地提高所发音的表现力和可控性。
文档编号G10H7/00GK1197974SQ9810691
公开日1998年11月4日 申请日期1998年1月26日 优先权日1997年1月31日
发明者铃木秀雄 申请人:雅马哈株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1