專利名稱:形成樂音波形的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于根據(jù)借助算術(shù)處法裝置進(jìn)行的波形形成計算而形成樂音波形取樣的方法。
本發(fā)明還涉及用于壓縮波形數(shù)據(jù)的方法,該數(shù)據(jù)將被存儲在電子樂器的存儲器或帶有基于波形存儲器的樂音發(fā)生器的其他樂音再現(xiàn)裝置中。
背景技術(shù):
在傳統(tǒng)的能夠同時在多個通道中產(chǎn)生樂音的樂音發(fā)生器中,樂音波形取樣是通過采用算術(shù)處理裝置而借助算術(shù)方法產(chǎn)生的,且在各個樂音發(fā)生通道中每一個預(yù)定單位時間里借助算術(shù)方法形成的波形取樣的數(shù)目(以下稱為“波形取樣形成分辨率”)對于每一個通道都是保持固定的。另外,波形取樣形成分辨率從每個樂音的開始至結(jié)束都是保持固定的,且傳統(tǒng)的已知樂音發(fā)生器都不允許在樂音的算法形成期間改變波形取樣形成分辨率。
術(shù)語“波形取樣形成分辨率”在這里被作為描述本發(fā)明的特征概念中的一個基本量度,且每預(yù)定單位時間里借助于算術(shù)方法所形成的波形取樣的數(shù)目的改變將導(dǎo)致由所產(chǎn)生的樂音覆蓋的頻帶的上限頻率的改變。
如果用每秒所要形成的取樣的數(shù)目(等價取樣頻率)來表示波形取樣形成分辨率,根據(jù)已知的取樣理論,該上限頻率將大約等于取樣頻率的1/2。例如,如果每1/375秒的單位時間算法形成128個取樣,等價取樣頻率將為128×375=48(kHz),因而產(chǎn)生的樂音將包合上限至24kHz的頻率分量。一般地,樂音的質(zhì)量取決于波形取樣形成分辨率,因為取樣頻率是確定數(shù)字樂音的質(zhì)量的一個因素。
波形取樣形成分辨率將直接確定每單位時間的樂音波形形成計算量,且所需的計算量將與每單位時間的取樣數(shù)成正比地增大,因為每個取樣的計算對不同的取樣是沒有顯著的不同的。即,如果為了提高樂音的質(zhì)量提高了波形取樣形成分辨率,則所需的計算量將增大,且有時如果沒有大規(guī)模的電路計算將是不可能的。因此,波形取樣形成分辨率與電路規(guī)模之同的平衡在設(shè)計樂音發(fā)生器中是一個重要的因素。
然而,如樂音已知的,各個樂音發(fā)生通道中形成的樂音波形的各個頻帶,通常根據(jù)所要產(chǎn)生的音色而有所不同。因此,如果在這些通道中采用固定的共同波形取樣形成分辨率,將會產(chǎn)生一個問題,即對于每個形成不需要寬頻帶的樂音波形的通道,直到一個不需要的頻帶都進(jìn)行了無用的計算。如果將波形取樣形成分辨率設(shè)定為對應(yīng)于不需要寬頻帶的樂音波形,將產(chǎn)生另一個問題,即不能形成需要寬頻帶的樂音波形取樣。
另外,在從衰減樂音的開始至結(jié)束的波形(開始至結(jié)束波形)的情況下,升高部分(attack portion)覆蓋了包含很多諧波分量的寬頻帶,而發(fā)生了相當(dāng)大程度衰減的延音部分(sustain portion)只覆蓋了包含很少諧波分量的較窄頻帶。如果在此情況下,采用了固定的波形取樣形成分辨率以形成樂音,則對于這種不需要寬頻帶的部分,直到一個不需要的頻帶都進(jìn)行了無用的計算。另外,如果將波形取樣形成分辨率設(shè)定為對應(yīng)于不需要寬頻帶的波形的部分,則將產(chǎn)生另一個問題,即不能為需要寬頻帶的另一部分形成樂音波形取樣。
另外,在采用基于波形存儲器的樂音發(fā)生器(其中在波形存儲器中預(yù)記錄了多個樂音波形)中,如果希望高質(zhì)量的樂音的話,通常需要記錄很多樂音波形,從而要求大的波形存儲器容量。為了克服這種不便,已經(jīng)提出了各種方法,以降低存儲樂音波形所需的存儲器容量,一個例子是根據(jù)不同的樂音波形通常具有不同的頻率分量這一事實。具體地,提出了在由低頻分量組成的樂音波形的情況下,為了減少取樣數(shù)據(jù)量應(yīng)該在記錄期間以低取樣頻率對樂音波形進(jìn)行取樣,從而減小所需的波形存儲器容量。然而,記錄取樣頻率有時對于不同的樂音波形是變化的,在此情況下,如果根據(jù)預(yù)定的、只由所要發(fā)聲的音符數(shù)(note number)確定的頻率數(shù)(即限定再現(xiàn)樂音的音高(Pitch)的數(shù)字,以下稱為“F數(shù)”)來從波形存儲器中讀出任何一個樂音波形,則在樂音波形中取樣頻率與讀取時序之間的關(guān)系將顯著不同,從而產(chǎn)生不能獲得具有希望的音高的樂音的問題。
另外,借助基于波形存儲器的樂音發(fā)生器—其中F數(shù)的采用使得能夠?qū)υ佻F(xiàn)頻率進(jìn)行精細(xì)的控制,可以根據(jù)任何記錄取樣頻率,通過只控制F數(shù)來以所希望的音高讀出樂音波形,從而補(bǔ)償記錄取樣頻率的不同。
以上述方式,可以在減小所需的波形存儲器容量方面進(jìn)行努力。另外,由于這樣的事實,盡管在衰減樂音的波形的升高部分中包含諸如基波的諧波分量的高頻分量,但延音部分使這些諧波分量幾乎完全衰減了,在延音部分中沒有被衰減的幾乎只有基波,因而維持部分的頻率分量低于升高部分。另外,在能夠延音逐漸增大的亮度的音色的情況下,波形的頻率分量變得更高,雖然它在開始發(fā)出相應(yīng)的樂音時不一定具有那樣高的頻率分量。
然而,在過去,在記錄樂音的開始至結(jié)束波形中所用的取樣頻率是固定在這樣的頻率上的,即能夠在不涉及不希望的混淆噪聲的情況下進(jìn)行適當(dāng)?shù)淖罡哳l分量的取樣,雖然對于不同的樂音波形取樣頻率是變化的。借助這種固定的記錄取樣頻率,甚至可能將不需要頻帶的波形數(shù)據(jù)無用地記錄在波形存儲器中,其結(jié)果是不能對波形存儲器進(jìn)行有效的利用。
發(fā)明內(nèi)容
因此,本發(fā)明的第一個目的是,提供一個樂音發(fā)生方法,用于根據(jù)借助算法處理裝置進(jìn)行的波形形成計算來形成樂音波形取樣,該方法能夠在不涉及無用計算的情況下有效地形成寬頻帶的樂音波形取樣。
本發(fā)明的第二個目的是,提供一種波形數(shù)據(jù)壓縮方法,該方法可應(yīng)用于帶有基于波形存儲器的樂音發(fā)生器或其他樂音再現(xiàn)裝置的電子樂器中,該方法能夠?qū)⒁涗浀讲ㄐ未鎯ζ髦械牟ㄐ螖?shù)據(jù)進(jìn)行有效的壓縮。
為了實現(xiàn)第一個目的,本發(fā)明提供了一種樂音發(fā)生方法,該方法用于根據(jù)借助算法處理裝置的波形形成計算來形成樂音波形取樣,其特征在于對于多個樂音發(fā)生通道中的每一個通道,波形形成計算的分辨率是根據(jù)在該通道中所要形成的波形的特性和該通道相對于其他通道的重要性,而獨(dú)立地確定的。
本發(fā)明還提供了一種樂音發(fā)生方法,用于根據(jù)借助算法處理裝置的波形形成計算來形成樂音波形取樣,其特征在于波形形成計算的分辨率在計算期間是根據(jù)樂音中的諧波成分的隨時間變化的比值而變化的。
本發(fā)明還提供了一種樂音發(fā)生方法,其中為多個樂音發(fā)生信道進(jìn)行樂音形成計算,以形成對應(yīng)于這些通道的多個樂音的波形數(shù)據(jù),且該方法包括產(chǎn)生第一控制數(shù)據(jù)的樂音控制步驟,該第一控制數(shù)據(jù)用于為每一個樂音發(fā)生通道指定將要在通道中形成的波形數(shù)據(jù)的一個樂音特性;計算控制步驟,用于產(chǎn)生第二控制數(shù)據(jù),該第二控制數(shù)據(jù)用于為每一個樂音發(fā)生通道指定將要在該通道中每單位時間里形成的樂音取樣的具體數(shù)目;樂音形成步驟,用于根據(jù)第一控制數(shù)據(jù)指定的樂音特性并以第二控制數(shù)據(jù)指定的取樣形成速率,為每一個樂音發(fā)生通道,以算術(shù)方法形成相應(yīng)于該通道的樂音波形數(shù)據(jù);以及,根據(jù)在樂音形成步驟中形成的波形數(shù)據(jù)為多個樂音發(fā)生通過產(chǎn)生樂音的步驟。
在上述樂音發(fā)生方法中,計算控制步驟產(chǎn)生與各個通道中所要形成的波形數(shù)據(jù)的隨時間變化的樂音特性相應(yīng)的第二控制數(shù)據(jù)。該計算控制步驟與在各個樂音發(fā)生通道中所要形成的波形數(shù)據(jù)的樂音特性的時間變化相對應(yīng)地改變所要產(chǎn)生的第二控制數(shù)據(jù)。另外,第一控制數(shù)據(jù)包括指定在各個樂音發(fā)生通道中所要產(chǎn)生的樂音的音高的音高信息,且樂音形成步驟根據(jù)第二控制數(shù)據(jù)指定的取樣形成速率,將各個通道的音高信息轉(zhuǎn)換成所要產(chǎn)生的樂音的相位變化速率。
本發(fā)明還提供了用于同時產(chǎn)生至少兩個樂音的樂音發(fā)生方法,它包括第一形成步驟,用于以每單位時間N個取樣的形成速率形成包合大量高頻分量的第一樂音波形的取樣;第二形成步驟,用于以每單位時間M(M小于N)個取樣的形成速率形成包含少量高頻分量的第二樂音波形的取樣;使第二樂音波形的M個取樣受到插值操作以提供第二樂音波形的N個取樣的步驟;混合步驟,用于將第一第二樂音波形的N個取樣和第二第二樂音波形的N個取樣一個取樣一個取樣地依次加起來,以提供混合樂音波形的N個取樣;以及,根據(jù)混合步驟提供的混合樂音波形產(chǎn)生樂音的步驟。
本發(fā)明還提供了一種樂音發(fā)生方法,其中對多個樂音發(fā)生通道進(jìn)行了樂音形成計算,以形成與這些通道對應(yīng)的多個樂音的波形數(shù)據(jù),且它包括分割步驟,用于將多個樂音發(fā)生通道分成第一和第二組;第一形成步驟,用于對于第一組的各個通道每單位時間形成N個樂音波形取樣并將通道之間的N個取樣依次加起來,以提供第一混合波形的N個取樣;第二形成步驟,用于對于第二組中的各個信道每單位時間形成M個樂音波形取樣,并將通道之間的M個取樣依次相加以提供第二混合波形的M個取樣(其中M小于N);使第二樂音波形的M個取樣受到插值操作以提供第二樂音波形的N個取樣的步驟,混合步驟,用于將第一第二樂音波形的N個取樣和第二第二樂音波形的N個取樣一個取樣一個取樣地依次相加,以提供混合樂音波形的N個取樣;以及,根據(jù)混合步驟提供的混合樂音波形產(chǎn)生樂音的步驟。
由于對于各個樂音發(fā)生通道,都能夠根據(jù)所要發(fā)出的樂音波形是否具有寬頻帶,或者根據(jù)相應(yīng)樂音的相對重要性,來確定波形取樣形成分辨率,因而本發(fā)明能夠以算法的方式形成樂音波形取樣,而不論所要發(fā)出的樂音波形是具有寬頻帶還是窄頻帶,而不包含無用計算。另外,由于對于衰減樂音的升高部分波形取樣形成分辨率得到提高以形成較多的波形取樣,且對于延音部分波形取樣形成分辯率得到降低以形成較少的波形取樣,可以避免無用計算,因而能夠在沒有無用計算的情況下有效地形成從開始至結(jié)束的波形取樣。通過對于具體的樂音發(fā)生通道節(jié)約無用計算,可以增大另一個樂音發(fā)生通道的波形計算量,從而提高該通道中產(chǎn)生的樂音的質(zhì)量,并能夠增大可以同時產(chǎn)生樂音的通道的數(shù)目。另外,由于本發(fā)明能夠?qū)τ诟鱾€通道獨(dú)立地控制每單位時間所要形成的樂音波形取樣的數(shù)目,所以能夠在這些通道中產(chǎn)生具有不同質(zhì)量的樂音。另外,即使具體通道中產(chǎn)生的樂音的質(zhì)量較低,也能夠降低其中沒有顯著效果的計算量。
另外,為了實現(xiàn)第二個目的,本發(fā)明提供了一種波形數(shù)據(jù)壓縮方法,它包括輸入步驟,用于輸入持續(xù)預(yù)定時期的波形;控制步驟,用于在該預(yù)定時期中改變記錄取樣頻率;取樣步驟,用于利用記錄取樣頻率對波形進(jìn)行取樣,以獲得波形數(shù)據(jù);以及,寫入步驟,用于將取樣步驟獲得的波形數(shù)據(jù)依次寫入到存儲器中。
在上述波形數(shù)據(jù)壓縮方法中,記錄取樣頻率在預(yù)定時期中以預(yù)定的時序逐階地變化?;蛘?,記錄取樣頻率在預(yù)定時期中以預(yù)定的時序逐漸地變化。
本發(fā)明還提供了一種波形數(shù)據(jù)壓縮方法,它包括輸入步驟,用于輸入持續(xù)預(yù)定時期的波形;控制步驟,用于在預(yù)定時期中改變記錄取樣頻率;取樣步驟,用于利用該記錄取樣頻率對波形進(jìn)行取樣,以獲得波形數(shù)據(jù);記錄步驟,用于將取樣步驟獲得的波形數(shù)據(jù)依次記錄到一個波形存儲器中;指定步驟,用于指定再現(xiàn)速率;產(chǎn)生步驟,用于產(chǎn)生對應(yīng)于一個音高變化的變化數(shù)據(jù),該音高變化是由于控制步驟造成的記錄取樣頻率的變化而出現(xiàn)在記錄在波形存儲器中的波形數(shù)據(jù)中的,修正步驟,用該變化數(shù)據(jù)對指定步驟指定的再現(xiàn)速率進(jìn)行修正;以及,再現(xiàn)步驟,用于以對應(yīng)于修正步驟修正的再現(xiàn)速率的速率,對波形存儲器進(jìn)行讀出。
在上述波形數(shù)據(jù)壓縮方法中,如果以固定速率讀出波形數(shù)據(jù),變化數(shù)據(jù)是表示該波形數(shù)據(jù)代表的對數(shù)區(qū)中的頻率的數(shù)據(jù)。修正步驟進(jìn)行再現(xiàn)速率與變化數(shù)據(jù)之間的相加或相減。
根據(jù)以上述方式設(shè)置的波形數(shù)據(jù)壓縮方法,在所要記錄的樂音的、其中波形數(shù)據(jù)包含有高頻分量的升高部分中,取樣頻率得到提高,而在其中波形數(shù)據(jù)包含不那樣高的頻率分量的延音部分中,取樣頻率得到降低,因而所要記錄在波形存儲器中的波形取樣數(shù)據(jù)的量得到了有效的減小,且該波形取樣數(shù)據(jù)得到了較大的壓縮。因此,本發(fā)明減小了所需的波形存儲器存儲容量,并使存儲器的利用效率得到了提高。
為了更好地理解本發(fā)明的上述和其他特征,下面結(jié)合附圖對本發(fā)明的最佳實施例進(jìn)行描述。
在附圖中圖1是框圖,顯示了實施本發(fā)明的樂音發(fā)生方法所用的樂音發(fā)生裝置的結(jié)構(gòu)的例子;圖2顯示了圖1的RAM提供的音色數(shù)據(jù)和波形數(shù)據(jù)區(qū);圖3顯示了圖1的RAM提供的輸入緩存區(qū);圖4顯示了圖1的RAM提供的樂音發(fā)生器寄存器區(qū);圖5A至5F顯示了圖1的RAM提供的各種輸出緩存區(qū)的結(jié)構(gòu)和操作;圖6顯示了從樂音的開始至結(jié)束的波形數(shù)據(jù)的一個例子;圖7A至7D顯示了圖6的波形數(shù)據(jù)的各個點(diǎn)處的頻譜;圖8顯示了在樂音的開始至結(jié)束中原有的音高的時間變化的一個例子;圖9顯示了在樂音的算法形成期間波形取樣形成分辨率相對于時間的變化的一個例子;圖10顯示了在樂音的算法形成期間再現(xiàn)頻率數(shù)隨時間變化的一個例子;圖11是時序圖,顯示了圖1的CPU進(jìn)行的用于形成樂音波形的樂音發(fā)生器處理;圖12是在實施本發(fā)明的樂音發(fā)生方法的軟件樂音發(fā)生器中,由圖1的CPU所執(zhí)行有主程序的流程圖;圖13是該CPU進(jìn)行的MIDI接收中斷處理的流程圖;圖14是對部分1進(jìn)行的音色選擇事件處理的流程圖,該處理是主程序中面板開關(guān)事件處理的一個例子;圖15A是流程圖,顯示了主程序中的接收數(shù)據(jù)處理中進(jìn)行的音符關(guān)斷處理的細(xì)節(jié)的一個例子;圖15B是流程圖,顯示了在主程序中的接收數(shù)據(jù)處理中進(jìn)行的音符關(guān)斷處理的細(xì)節(jié)的一個例子;圖16是流程圖,顯示了主程序中執(zhí)行的樂音發(fā)生器處理的細(xì)節(jié);圖17是流程圖,顯示了在樂音發(fā)生器處理中執(zhí)行的通道控制處理的一個細(xì)節(jié);圖18是流程圖,顯示了波形計算處理的細(xì)節(jié);圖19顯示了當(dāng)覆蓋單個樂音的開始至結(jié)束的時間串行波形數(shù)據(jù)得到記錄時根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法改變記錄取樣頻率的方式的一個例子;圖20顯示了根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法改變原有音高的方式的一個例子;圖21顯示了根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法改變記錄取樣頻率的方式的另一個例子;圖22是框圖,顯示了實現(xiàn)波形預(yù)處理以根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法將波形取樣數(shù)據(jù)記錄到波形存儲器中的設(shè)置的一個例子;圖23是框圖,顯示了包括波形存儲器的電子樂器的一般結(jié)構(gòu),在該波形存儲器中以根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法的壓縮形式記錄有波形數(shù)據(jù);圖24顯示了根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法改變記錄取樣頻率的方式的又一個例子;圖25顯示了根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法改變原有音高的一種方式。
具體實施例方式
圖1是框圖,顯示了用于實施本發(fā)明的樂音發(fā)生方法的樂音發(fā)生裝置19的結(jié)構(gòu)的一個例子。
圖1的樂音發(fā)生裝置19包括算法處理單元(CPU)1,它執(zhí)行應(yīng)用程序等等,以執(zhí)行各種控制、樂音波形取樣的算法形成等等;只讀存儲器(ROM)2,其中存儲有CPUI的運(yùn)行程序、預(yù)設(shè)定的音色數(shù)據(jù)等等;隨機(jī)訪問存儲器(RAM)3,它具有用于CPUI的工作存儲區(qū)和用于音色數(shù)據(jù)的存儲區(qū)等等,定時器4,用于保持時間并向CPUI表示定時器中斷時序;MIDI接口5,通過它將一個MIDI事件輸入到裝置19并將產(chǎn)生的MIDI事件從裝置19輸出;以及,鍵盤6,它與通常的個人計算機(jī)鍵盤類似,具有英語和日語字母、數(shù)字、符號等等健。如現(xiàn)有技術(shù)中已知的,“MIDI”是樂器數(shù)字接口的縮寫。
樂音發(fā)生裝置19進(jìn)一步包括顯示器(監(jiān)視器)7,通過它用戶可以與裝置19進(jìn)行對話;硬盤(HDD)8,其中有應(yīng)用程序,諸如用于產(chǎn)生樂音的程序,并且其中記錄有用于以算法的方式形成樂音波形取樣的樂音波形數(shù)據(jù);再現(xiàn)部分(DMA直接存儲器存取)9,它在沒有CPUI干預(yù)的情況下,允許樂音波形取樣數(shù)據(jù)從和至RAM3由CPUI指定的一個RAM3區(qū)的直接傳送;數(shù)字至模擬(D/A)轉(zhuǎn)換器(DAC)10,用于將樂音波形取樣數(shù)據(jù)轉(zhuǎn)換成模擬樂音信號;以及,發(fā)聲系統(tǒng)11,它包括放大器和揚(yáng)聲器,用于對來自D/A轉(zhuǎn)換器10的模擬樂音信號進(jìn)行聲頻再現(xiàn)或發(fā)聲。
在硬盤8中,可以存儲各種其他的數(shù)據(jù),諸如自動演奏數(shù)據(jù)、和弦數(shù)據(jù)以及上述運(yùn)行程序。通過將運(yùn)行程序預(yù)先存儲在硬盤8而不是ROM2中,并將運(yùn)行程序裝載到RAM3中,CPUI能夠與將運(yùn)行程序存儲在ROM2中完全一樣地進(jìn)行操作。這大大地便利了運(yùn)行程序的升級、運(yùn)行程序的加入等等。可以用一個CD-ROM13作為可拆下的外部記錄介質(zhì),用于記錄各種數(shù)據(jù),諸如自動演奏數(shù)據(jù)、和弦數(shù)據(jù)及樂音波形數(shù)據(jù)和可選的運(yùn)行程序。存儲在CD-ROMI3中的這種運(yùn)行程序和數(shù)據(jù)可以由一個CD-ROM驅(qū)動器14讀出,以傳送到硬盤8進(jìn)行存儲。這便利了運(yùn)行程序的安裝和升級??刹鹣碌匕惭b的外部記錄介質(zhì)可以是CD-ROM以外的,諸如軟盤和磁光盤(MO)。
一個通信接口15可以與總線12相連,從而使裝置19經(jīng)過接口15而與諸如LAN(局域網(wǎng))、互聯(lián)網(wǎng)絡(luò)和電話線的通信網(wǎng)絡(luò)16相連,且可以經(jīng)過通信網(wǎng)絡(luò)16而與適當(dāng)?shù)姆?wù)計算機(jī)17相連。因此,當(dāng)硬盤8中沒有包含運(yùn)行程序和各種數(shù)據(jù)時,可以從服務(wù)計算機(jī)17接收這些運(yùn)行程序和數(shù)據(jù)并裝載到硬盤8中。在這種情況下,樂音發(fā)生裝置19即“客戶”,將送出一個指令,請求服務(wù)計算機(jī)17通過通信接口15和通信網(wǎng)絡(luò)16下載運(yùn)行程序和各種數(shù)據(jù)。響應(yīng)于該指令,服務(wù)計算機(jī)17經(jīng)過通信網(wǎng)絡(luò)16將所請求的運(yùn)行程序和數(shù)據(jù)傳送到樂音發(fā)生裝置19。該樂音發(fā)生裝置19經(jīng)過通信網(wǎng)16接收該運(yùn)行程序和數(shù)據(jù)而完成所需的下裝,并將它們存儲到硬盤8中。
應(yīng)該注意的是,樂音發(fā)生裝裝置19可以通過將對應(yīng)于本發(fā)明的運(yùn)行程序和各種數(shù)據(jù)裝入到可商業(yè)獲得的個人計算機(jī)中,而得到實施。在這種情況下,可以以能夠被個人計算機(jī)所讀取的記錄介質(zhì)(諸如CD-ROM或軟盤)上的記錄形式,將對應(yīng)于本發(fā)明的運(yùn)行程序和各種數(shù)據(jù)提供給用戶。在個人計算機(jī)與諸如LAN的通信網(wǎng)絡(luò)相連的情況下,運(yùn)行程序和各種數(shù)據(jù)可以經(jīng)過通信網(wǎng)絡(luò)而以與上述方式類似的方式提供給個人計算機(jī)。
圖2至5顯示了提供在RAM3中的各種寄存區(qū),其中圖2顯示了存儲各種數(shù)據(jù)和波形數(shù)據(jù)的區(qū)域,圖3顯示了其中存儲經(jīng)過MIDI接口5輸入的MIDI消息的輸入緩存區(qū),且圖4顯示了樂音發(fā)生器寄存區(qū)—其中存儲有產(chǎn)生多個通道的樂音波形取樣所需的各種參數(shù)。在圖2的區(qū)域中,存儲有16種音色數(shù)據(jù)“PDI、PD2、……PDI6”和n種波形數(shù)據(jù)“WDI、WD2、……WDn”。后面將要描述的OPEG(原有音高包絡(luò)線,originalpitch envelope)波形與波形數(shù)據(jù)“WDI、WD2、……WDn”一起以與其對應(yīng)的關(guān)系而得到存儲。
各個音色數(shù)據(jù)都由以下數(shù)據(jù)組成指定給定音高范圍的波形數(shù)據(jù)(音高范圍波形指定數(shù)據(jù));用于控制所要用于產(chǎn)在振動效果等的低頻振蕩(LFO)數(shù)據(jù)(LFO控制數(shù)據(jù)OD);用于控制濾波器包絡(luò)線的產(chǎn)生以隨時間改變音色濾波器特性的數(shù)據(jù)(FEG控制數(shù)據(jù)OD);用于控制樂音音量包絡(luò)線以控制樂音音量變化特性的數(shù)據(jù)(AEG控制數(shù)據(jù)OD);用于根據(jù)檢測到的觸鍵速度來改變樂音的上升速度等的接觸控制數(shù)據(jù)(接觸控制數(shù)據(jù)OD);以及包括波形取樣形成分辨率控制數(shù)據(jù)的其他數(shù)據(jù)(其他數(shù)據(jù)OD)。上述各個數(shù)據(jù)的末端的“OD”表示受到諸如調(diào)制的控制之前的“原始數(shù)據(jù)”。
在圖3的輸入緩存區(qū)中,表示諸如音符接通和音符關(guān)斷事件的各種經(jīng)過MIDI接口5而輸入的MIDI事件數(shù)據(jù)ID1、ID2、ID3、……,被依次寫入。通過讀出這些MIDI事件數(shù)據(jù)ID1、ID2、ID3、……,在樂音發(fā)生裝置中進(jìn)行事件處理,以形成與讀取的MIDI事件數(shù)據(jù)對應(yīng)的樂音波形取樣。各個MIDI事件數(shù)據(jù)ID1、ID2、ID3……,都包括表示MIDI事件的內(nèi)容和事件數(shù)據(jù)出現(xiàn)的時間(數(shù)據(jù)出現(xiàn)時間或事件發(fā)生時間)的數(shù)據(jù)。數(shù)據(jù)出現(xiàn)時間可以在接收到MIDI事件時通過讀出定時器4保持的現(xiàn)行時間來確定。
圖4所示的區(qū)域,被用作樂音發(fā)生器寄存器區(qū),該區(qū)包括為多個樂音發(fā)生通道(在此例中為32個通道CHI至CH32)設(shè)置的寄存器,且各個寄存器中已經(jīng)存儲有各種樂音參數(shù),用于控制將要在相應(yīng)的樂音發(fā)生通道中形成的樂音波形取樣。在各個寄存器(通道寄存器)中,存儲有在相應(yīng)通道中所要形成的樂音的音符數(shù)、指定存儲在RAM3中的任何波形數(shù)據(jù)的數(shù)據(jù)(波形指定數(shù)據(jù)D)、LFO控制數(shù)據(jù)D、濾波器包絡(luò)線控制數(shù)據(jù)(FEG控制數(shù)據(jù)D)、樂音音量包絡(luò)線控制數(shù)據(jù)(AEG控制數(shù)據(jù)D)、音符接通數(shù)據(jù)和其他數(shù)據(jù)D。各個信道寄存器還包括一個工作區(qū),該工作區(qū)將要在在相應(yīng)樂音發(fā)生通道中以算法的方式形成樂音取樣期間采用。在上述各個數(shù)據(jù)末端的“D”是數(shù)據(jù)的縮寫并表示已經(jīng)分配了通道以發(fā)出樂音聲音的數(shù)據(jù),以與上述的原始數(shù)據(jù)(OD)相區(qū)別。
各個樂音發(fā)生通道的波形指定數(shù)據(jù)D、LFO控制數(shù)據(jù)D、FEG控制數(shù)據(jù)D和AEG控制數(shù)據(jù)D,是通過根據(jù)MIDI事件的內(nèi)容,對音色數(shù)據(jù)PD1、PD2、PD3、……PD16中的任何一個進(jìn)行處理而獲得的樂音形成數(shù)據(jù)。
圖5顯示了RAM3中設(shè)置的輸出緩存區(qū)。由于在本發(fā)明的樂音發(fā)生方法中,借助波形取樣形成分辨率CC(其概念已經(jīng)在本說明書的開始討論過了)的改變而使在各個計算時間到來時欲用算術(shù)方法一起形成的樂音波形取樣的數(shù)目發(fā)生改變,因而提供了與多個波形取樣形成分辨率CC有對應(yīng)關(guān)系的多個輸出緩存器。即,在本發(fā)明的最佳實施例中,如圖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是為每一個樂音發(fā)生通道和每一個所要發(fā)聲的樂音波形指定的,且波形取樣形成分辨率CC規(guī)定了在相應(yīng)信道中所要用算術(shù)方法形成的樂音波形取樣的數(shù)目。因此,波形取樣形成分辨率CC可以用與所要形成的樂音波形取樣的數(shù)目相對應(yīng)的等價取樣頻率來表示。根據(jù)所要形成的樂音波形取樣所覆蓋的頻帶,來選擇這三種波形取樣形成分辨率CC之一。
當(dāng)所要形成的樂音波形取樣具有寬頻帶時,采用圖5A所示的輸出緩存器BO,且它存儲在各個預(yù)定計算時刻形成的128個樂音波形取樣(SD1、SD2、SD3、……SD128)。當(dāng)所要形成的樂音波形取樣具有不那樣寬的頻帶時,采用圖5B所示的輸出緩存器B1,且它存儲在各個預(yù)定的計算時刻形成的64個樂音波形取樣(SD1、SD2、SD3、……SD64)。當(dāng)所要形成的樂音波形取樣具有窄頻帶時,采用圖5C中所示的輸出緩存器B2,且它存儲在各個預(yù)定計算時刻形成的32個樂音波形取樣(SD1、SD2、SD3、……SD32)。
在這些緩存器BO至B2的每一個中,都還存儲有各個通道的樂音波形取樣,這些取樣是以相同的波形取樣形成分辨率CC(即以覆蓋基本上相同的頻帶的方式)形成的,而不是以一個通道一個通道的方式存儲的。即,每一個新形成的樂音波形取樣,都被加到輸出緩存器之一中已經(jīng)存儲的樂音波形取樣中,并隨后被存儲在緩存器的相同的存儲單元中。
一旦對所有的樂音發(fā)生通道都完成了樂音波形取樣形成,這些波形取樣被累積起來并被傳送到再現(xiàn)部分9以進(jìn)行聲頻再現(xiàn)。然而,由于在輸出緩存器BO、輸出緩存器B1和輸出緩存器B2中存儲有不同數(shù)目的樂音波形取樣,不能以簡單的方式匯集這些取樣。
即,在存儲在緩存器B1中的64個樂音波形取樣的每一個相鄰取樣之間,進(jìn)行內(nèi)插,以提供128個樂音波形取樣,然后將這些取樣存儲在圖5D所示的緩存器B1’中,且類似地在存儲在緩存器B2中的32個樂音波形取樣的每一個相鄰取樣之間進(jìn)行內(nèi)插,以提供將要存儲在圖5E的緩存器B2’中的128個樂音波形取樣。在此情況下,緩存器B1’中每隔一個樂音波形取樣,將具有與緩存器B1中的相應(yīng)位置上的64個樂音波形取樣之一相同的值,且緩存器B2’中每隔三個的樂音波形取樣,將具有與緩存器B2中相應(yīng)位置處的32個樂音波形取樣之一相同的值。
此時,在現(xiàn)在包含128個取樣的緩存器BO、緩存器B1’和緩存器B2’的各個相應(yīng)位置處的樂音波形取樣,被積累起來并被存儲到例如緩存器B0的相應(yīng)位置。在此之后,積累在緩存器BO中的波形取樣被保留以進(jìn)行再現(xiàn),以使這些取樣隨后被再現(xiàn)部分9所讀取,以通過發(fā)聲系統(tǒng)進(jìn)行聲頻再現(xiàn)。所有通道的樂音波形取樣不一定要存儲在緩存器BO中,而是可以存儲在具有128個取樣的存儲區(qū)的其他任何輸出緩存器中。
結(jié)合圖6至11,將描述本發(fā)明的樂音發(fā)生方法,它通過采用上述的輸出緩存器而在圖1的樂音發(fā)生裝置中得到了實施。在此最佳實施例中,樂音發(fā)生裝置19采用了根據(jù)已知的波形存儲方法的樂音發(fā)生器(基于波形存儲的樂音發(fā)生器)。圖6顯示了存儲在緩存器中的樂音從開始至結(jié)束波形數(shù)據(jù)(即用于完成(從開始至結(jié)束)樂音的發(fā)聲的一組波形數(shù)據(jù))的一個例子;圖7A至7D顯示了在圖6的波形數(shù)據(jù)的各個時刻提取的頻譜;圖8顯示了當(dāng)以固定的再現(xiàn)速率再現(xiàn)用算術(shù)方法形成的樂音波形取樣時樂音從開始至結(jié)束的波形中的音高隨時間改變的一個例子;圖9顯示了波形取樣形成分辨率CC的變化與取樣計算時間的關(guān)系的一個例子;圖10顯示了F數(shù)隨時間變化的方式的一個例子,以用算術(shù)方法形成波形取樣;且圖11是時序圖,顯示了形成樂音波形的樂音發(fā)生器處理。
根據(jù)本發(fā)明的樂音發(fā)生方法,如圖11的(a)所示,每當(dāng)計算時刻T1、T2、T3、T4……到來時,為預(yù)定單位的部分用算術(shù)方法形成樂音波形取樣,該部分將被從再現(xiàn)部分9讀出。在如圖11的(b)所示的計算時刻之間接收新的音符接通和/或音符關(guān)斷事件,且在圖11所示的時序一起以算術(shù)方法形成與這些事件對應(yīng)的多個樂音波形取樣。
因此,借助再現(xiàn)部分9,讀出存儲在輸出緩存器BO中的所有樂音發(fā)生通道的以算術(shù)方法形成的樂音波形取樣,以作為單位部分的波形取樣,從而使它們能夠以恒定的再現(xiàn)速率(即以固定的再現(xiàn)取樣頻率)而得到再現(xiàn)。
如在之前結(jié)合輸出緩存器描述的,當(dāng)在本發(fā)明中以算術(shù)方法形成用于單個單位部分的多個樂音波形取樣時,系統(tǒng)中的波形取樣形成分辨率CC被改變到與所要形成的樂音波形的頻帶相對應(yīng)的波形取樣形成分辨率,如前面所述。
圖6中水平拉長的頻帶代表衰減樂音中包含的一組多個波形數(shù)據(jù),而水平軸代表時間,且為了說明起見,在時刻a、b、c和d處的波形數(shù)據(jù)被抽取出來并在圖中用影線進(jìn)行了強(qiáng)調(diào)。在圖7A至7D中,顯示了在這些時剜a、b、c和d處包含在波形數(shù)據(jù)中的基波和諧波的頻譜分布。更具體地說,在時刻a的部分是升高部分,其具有代表性的波形在圖6中得到了詳細(xì)描述,且它包含大量的諧波頻譜分量,如圖7A所示。在時刻b的部分是高頻諧波頻譜分量已經(jīng)略微衰減的部分,如圖7B所示。
在時刻c的部分,是延音部分,其中發(fā)生了進(jìn)一步的衰減,如與圖6所示的其代表波形對比可見。如圖7c所示,在時刻c處的波形是簡單的波形,它與基波類似,其中高頻譜波分量得到了進(jìn)一步的衰減。最后,在時刻d的部分是高頻譜波頻譜分量已經(jīng)幾乎完全衰減至零的部分,只剩下了基波。
由于產(chǎn)生的樂音的波形數(shù)據(jù)的頻帶隨時間改變,因而產(chǎn)生了一個問題,即只要采用能夠形成具有最寬的樂音頻帶的固定波形取樣形成分辨率,則對不需要的頻帶也進(jìn)行了波形數(shù)據(jù)的算術(shù)形成。
為了避免這種不便,本發(fā)明的樂音發(fā)生方法的特征在于,通過在如圖9所示的樂音的算法形成期間根據(jù)時間的推移,改變波形取樣形成分辨率CC。在所示的例子中,波形取樣形成分辨率CC在開始時被設(shè)定為48kHz的基本值并直到時刻t2,隨后在時刻t2和t4之間被設(shè)定為24kHz即基本值的一半,然后在時刻t4之后被設(shè)定為12kHz即第二個值的一半。波形取樣形成分辨率CC的這種變化,只在圖11的各個單位部分開始時進(jìn)行一次,而在單位部分的中間則不發(fā)生波形取樣形成分辨率變化。
通過根據(jù)隨時間改變的頻帶而采用不同的波形取樣形成分辨率CC,本發(fā)明有效地防止了對無用的頻帶進(jìn)行波形數(shù)據(jù)形成,從而避免了無用計算。將節(jié)約下來的計算時間分配給其他的樂音發(fā)生通道,能夠提高該通道中產(chǎn)生的樂音的質(zhì)量,并能夠增大可以同時產(chǎn)生樂音的通道的數(shù)目。
根據(jù)本發(fā)明的一種修正,在單位部分的中間,可以對各個樂音發(fā)生通道中的波形取樣形成分辨率進(jìn)行改變。在此情況下,該通道中的波形數(shù)據(jù)的算術(shù)形成,響應(yīng)于變化的波形取樣形成分辨率CC而得到改變,且用于積累該通道的輸出數(shù)據(jù)的輸出緩存器在單位部分中間得到了改變。
另外,如前面所述,在相應(yīng)樂音的形成期間,由于存儲在圖2所示的RAM3中的波形數(shù)據(jù)WD1、WD2、……WDn的頻帶的改變,本發(fā)明響應(yīng)于該頻帶的改變而改變對波形數(shù)據(jù)進(jìn)行取樣以進(jìn)行存儲的記錄取樣頻率,從而減小了所要存儲的波形數(shù)據(jù)量。在此方面,在現(xiàn)有技術(shù)中,通常的作法是使取樣頻率在升高部分很高并根據(jù)波形數(shù)據(jù)的衰減而逐漸降低。如果以固定的速率從RAM3讀出以上述方式在相應(yīng)樂音的形成期間以相繼變化的取樣頻率存儲的波形數(shù)據(jù),波形數(shù)據(jù)將根據(jù)取樣頻率而引起音高的變化。
在圖6的時刻a和c處的各個一周期波形中,由于所產(chǎn)生的樂音中的上述取樣頻率變化,在時刻c處的波形寬度(沿著水平軸)減小到時刻a處的一半。即,雖然時刻a和c處的波形原來有相同的音高,由于時刻c處記錄波形的取樣頻率為時刻a處的大約一半,波形存儲器中存儲時刻c處的一周期波形的地址區(qū)的長度,約為時刻a處的一半。
圖8中的波形的例子(OPEG)顯示了在樂音形成期間,當(dāng)采用基本的波形取樣形成分辨率(在圖9的例子中為48kHz)讀出波形數(shù)據(jù)時原有音高(OP)的變化。在圖8所示的例子中,音符數(shù)C2的原有音高OP從時刻t1至?xí)r刻t3線性地改變至音符數(shù)C3的音高,而音符數(shù)C3比C2高一個八度;縱軸代表音分(cent)標(biāo)度。因此,當(dāng)這種波形數(shù)據(jù)被讀出以形成樂音取樣時,需要以這樣的方式控制讀出速率(F數(shù),即所要形成的樂音的每個取樣期間讀取地址在波形存儲器中行進(jìn)的速率),即在樂音產(chǎn)生期間沒有音高變化。OP表示原有音高,且OPEG表示原有音高包絡(luò)。
這里,用于對波形數(shù)據(jù)進(jìn)行取樣以將其存儲在波形存儲器中的取樣頻率,具有與上述OPEG波形正好相反的(沿著音分標(biāo)度)變化,且用于控制OPEG波形的形狀的OPEG控制數(shù)據(jù)是根據(jù)控制記錄期間的取樣頻率變化的數(shù)據(jù)而產(chǎn)生的。
為了產(chǎn)生指定音高的樂音,只要根據(jù)指定音高和OPEG波形產(chǎn)生一個F數(shù),作為移動原有音高(用OPEG波形的值表示)的音高變化量。
具體地,指定的發(fā)聲音高與原有音高之差是以音分計算的。隨后,計算出的差從音分表示被轉(zhuǎn)換成Hz表示,以確定F數(shù)。在此情況下,一旦OPEG變化,F(xiàn)數(shù)隨著OPEG變化,即使指定的發(fā)聲音高沒有變化也是如此。
在各個計算時刻,以算術(shù)方法形成由波形取樣形成分辨率CC指定的預(yù)定數(shù)目的波形取樣,作為用于單個單位部分的取樣。然而,當(dāng)在樂音的形成期間波形取樣形成分辨率CC如圖9所示地變化時,需要同時改變所形成的每個取樣期間讀取波形歌據(jù)的讀出速率(F數(shù))。如果例如將48kHz的基本波形取樣形成分辨率(CC=0)減半至24kHz(CC=1),則每個取樣的波形讀出速率需要增大到原來的兩倍;且如果它降低到12kHz(CC=2),每個取樣的波形讀出速率需要增大到原來的四倍。
因此,本發(fā)明得到適當(dāng)設(shè)置,以在波形取樣形成分辨率改變的同時,改變F數(shù),即用于讀出算法形成時指定的波形數(shù)據(jù)的地址計數(shù)器的每個取樣的增值。對于每一個樂音發(fā)生通道,都設(shè)定波形取樣形成分辨率,以盡量減小該通道的無用波形計算量。
本發(fā)明既通過波形數(shù)據(jù)取樣頻率的改變(圖8所示OPEG波形的變化)而實施了波形壓縮,又通過波形取樣形成分辨率CC的變化(圖9所示的波形取樣形成分辨率CC的變化)而節(jié)省了波形計算,其結(jié)果,F(xiàn)數(shù)在樂音產(chǎn)生期間以圖10所示的方式變化。如圖10所示,具有初始值FN0的F數(shù),從時刻t1至?xí)r刻t2響應(yīng)于OPEG波形變化而沿著弧形曲線減小。F數(shù)在時刻t2處響應(yīng)于已經(jīng)減半至24kHz的波形取樣形成分辨率CC而加倍,并隨后從時刻t2至?xí)r刻t3響應(yīng)于OPEG波形變化而再次沿著弧形曲線減小。從時刻t3至?xí)r刻t4,F(xiàn)數(shù)被延音在值FN0(即通過使OPEG波形加倍并使波形取樣形成分辨率CC減半從而使它們彼此抵消,而使原有的F數(shù)得到了恢復(fù)),并隨后在時刻t4響應(yīng)于已經(jīng)減小至原來的1/4的波形取樣形成分辨率CC而進(jìn)一步得到加倍。在時刻t4之后,F(xiàn)數(shù)被保持在值2FN0。
用于計算F數(shù)的公式是;F數(shù)=2(SP-OP)/1200×2CC公式(1)其中SP表示所要發(fā)出的音符數(shù)的音高,OP表示原有音高,且CC表示相對于基本波形取樣形成分辨率(48kHz)的比值。當(dāng)采用基本波形取樣形成分辨率時,CC=0;當(dāng)波形取樣形成分辨率被減半時,CC=1;且當(dāng)波形取樣形成分辨率被降低至1/4時,CC=2。
圖12是在采用本發(fā)明的樂音發(fā)生方法的軟件樂音發(fā)生器中,由圖1的CPU1所執(zhí)行的主程序的流程圖。在該主程序開始時,在步驟S10進(jìn)行初始化,其中所有的樂音發(fā)生通道都得到清除且進(jìn)行音色數(shù)據(jù)、波形數(shù)據(jù)等等的初始準(zhǔn)備。
在下一個步驟S20,通過確定是否有MIDI接收數(shù)據(jù)已經(jīng)被存儲在圖3的上述輸入緩存器中,而判定是否有接收數(shù)據(jù)。如果沒有接收數(shù)據(jù)被記錄在輸入緩存器中,CPU進(jìn)行到步驟S40,但如果有接收數(shù)據(jù)被記錄在輸入緩存器中,CPU進(jìn)行到步驟S30,在那里借助與接收的MIDI事件相對應(yīng)的操作(音符接通處理、音符關(guān)斷處理等等)和其他所需的操作,執(zhí)行對接收數(shù)據(jù)的處理。
在步驟S40,檢查是否有任何開關(guān)得到激活。如果在步驟S40的答案是否定的,CPU1進(jìn)行到步驟S60;如果已經(jīng)有開關(guān)被激活,則判定有開關(guān)事件,從而在步驟S50進(jìn)行面板開關(guān)事件處理,以按照激活的開關(guān)的指令設(shè)定多個演奏部分之一的音色。
隨后,在步驟S60執(zhí)行樂音發(fā)生器處理,以在各個計算時刻到來時一起用算術(shù)方法形成樂音波形取樣。當(dāng)在步驟S70進(jìn)行了其他必要的處理之后,CPU1回到步驟S20以重復(fù)步驟S20至S70的操作(正則環(huán),regular loop)。如果再現(xiàn)部分9包括根據(jù)可選擇的算法的專用樂音發(fā)生器或DSP樂音發(fā)生器,則可以省略步驟S60處的樂音發(fā)生器處理。
圖13是CPU1執(zhí)行的MIDI接收中斷處理的流程圖。該MIDI接收中斷處理是當(dāng)MIDI接口5接收到來自外部的MIDI事件時而激活的,且相優(yōu)先于其他處理。在MIDI接收中斷處理開始時,在步驟S80裝載接收數(shù)據(jù),且在步驟S90將其與其接收時間數(shù)據(jù)(表示接收數(shù)據(jù)的接收時間)一起,以圖3所示的形式,寫入輸入緩存器。在步驟S90之后,CPU1返回到在中斷處理之前進(jìn)行的處理。通過這些操作,MIDI數(shù)據(jù)與相應(yīng)的接收時間數(shù)據(jù)一起被依次寫入到輸入緩存器中。
圖14是部分1的音色選擇事件處理的流程圖,該處理是作為主秩序在步驟S50進(jìn)行的面板開關(guān)事件處理的一個例子而執(zhí)行的,其中對于各個演奏部分,在步驟S100,通過激活預(yù)定的開關(guān)而選定的樂音數(shù)被存儲在音色寄存器TC中。在對于所有演奏部分完成了步驟S100的操作之后,樂音設(shè)定處理結(jié)束。
在圖15A和15B中,分別顯示了音符接通處理和音符關(guān)斷處理的細(xì)節(jié),這些處理是在主程序的步驟S30處的接收數(shù)據(jù)處理中進(jìn)行的。
當(dāng)接收數(shù)據(jù)是音符接通事件數(shù)據(jù)時,如圖15A所示地執(zhí)行音符接通處理,其中在步驟S110存儲在輸入緩存器中的音符接通事件數(shù)據(jù)的音符數(shù)、速度和部分指定的音色分別裝載到相應(yīng)的寄存器NN、VEL和TC中,且音符接通事件的發(fā)生時間也被裝載到相應(yīng)的寄存器TM。在下一個步驟S120,進(jìn)行通道分配處理,以將裝載的音符數(shù)NN分配到通道中的一個并將分配的通道的號i存儲在寄存器中。
隨后,在步驟S130,根據(jù)音符數(shù)NN和速度VEL,對現(xiàn)在為各個演奏部分設(shè)定的音色TC的音色數(shù)據(jù)TP(TC)進(jìn)行處理。這里,音色數(shù)據(jù)是從圖2所示的音色數(shù)據(jù)PDI至PD16中選出的一個。在下一個步驟S140,處理過的、包括所要產(chǎn)生的樂音的音高SP的音色數(shù)據(jù),與音符接通事件的發(fā)生時間TM一起,被寫入到圖4的通通號i的樂音發(fā)生器寄存器中。另外,將要寫入該樂音發(fā)生器寄存器的波形指定數(shù)據(jù)D,通過采用指示圖2所示的音色數(shù)據(jù)的音高范圍波形指定數(shù)據(jù)的音符數(shù)NN,而得到確定,且波形數(shù)據(jù)WDI至WDn中的任何一個被指定為將要用于產(chǎn)生與音符數(shù)NN對應(yīng)的樂音的波形。
隨后,在步驟S150,將用于改變通道i的波形取樣形成分辨率的時序和指定波形取樣形成分辨率值的形成分辨率控制數(shù)據(jù),設(shè)定到i通道的樂音發(fā)生器寄存器中。這種形成分辨率控制數(shù)據(jù)的設(shè)定,是根據(jù)包含在為i通道選出的音色數(shù)據(jù)中的形成分辨率控制數(shù)據(jù)而進(jìn)行的。由于改變波形取樣形成分辨率的時序是對于每一個單位部分指定一次的(在該單位部分每個計算時刻都進(jìn)行計算),波形取樣形成分辨率的變化可以通過檢測計算時刻的到達(dá)數(shù)目而實現(xiàn)。隨后,在步驟S160,將從波形數(shù)據(jù)區(qū)讀出的OPEG控制數(shù)據(jù)設(shè)定到i通道樂音發(fā)生器寄存器中。所讀出的OPEG控制數(shù)據(jù)是用于控制OPEG波形的形狀的數(shù)據(jù),該OPEG波形代表了圖8所示的樂音的產(chǎn)生期間原有音高的變化方式。
在下一個步驟S170,將音符接通數(shù)據(jù)寫入i通道的樂音發(fā)生器寄存器,且隨后音符接通事件處理結(jié)束。
當(dāng)接收數(shù)據(jù)是音符關(guān)斷事件數(shù)據(jù)時,如圖15B所示地進(jìn)行音符關(guān)斷處理,其中在步驟S180,將存儲在輸入緩存器中的音符關(guān)斷事件數(shù)據(jù)的音符數(shù)、速度和部分指定音色分別裝載到相應(yīng)的寄存器NN、VEL和TC中,且音符關(guān)斷事件的發(fā)生時間也被裝載到相應(yīng)的寄存器TM中。隨后,在步驟S190,標(biāo)明產(chǎn)生具有音色TC和音符數(shù)NN的樂音的一個樂音發(fā)生通道,且標(biāo)明的通道號i被存儲在寄存器中。
在步驟S200,發(fā)生時間TM和音符關(guān)斷數(shù)據(jù)被寫入i通道樂音發(fā)生器寄存器,且隨后音符關(guān)斷處理結(jié)束。
現(xiàn)在,結(jié)合圖16,對主程序的正則環(huán)中在步驟S60執(zhí)行的樂音發(fā)生器處理進(jìn)行詳細(xì)描述。
首先,在步驟S210,檢查樂音發(fā)生器寄存器以判定其中是否已經(jīng)寫入了新的數(shù)據(jù)。如果沒有新數(shù)據(jù)已經(jīng)被寫入,CPU1直接進(jìn)行到步驟S250;如果有新數(shù)據(jù)已經(jīng)被寫入,CPU1進(jìn)行到步驟S230,在那里寫入的數(shù)據(jù)被轉(zhuǎn)換成用于控制波形形成的控制數(shù)據(jù)。
隨后,在步驟S240,根據(jù)轉(zhuǎn)換的控制數(shù)據(jù),進(jìn)行用于計算的預(yù)定準(zhǔn)備,諸如樂音發(fā)生器控制準(zhǔn)備,例如關(guān)于音符接通/音符關(guān)斷、音高帶、EXP、底殼(pan)和其他數(shù)據(jù)的準(zhǔn)備以及控制時間和控制數(shù)據(jù)組的產(chǎn)生。即,每次有新數(shù)據(jù)寫入時,都在步驟S230和步驟S240對隨后在步驟S270和步驟S290進(jìn)行的樂音形成計算進(jìn)行預(yù)定的準(zhǔn)備。
在下一個步驟S250,以不打斷再現(xiàn)部分9中的波形數(shù)據(jù)讀出的方式,進(jìn)行計算時間管理處理,以在現(xiàn)行的波形數(shù)據(jù)再現(xiàn)結(jié)束之前指定預(yù)定的時刻。更具體地說,在圖11(a)所示的各個計算時刻對應(yīng)于圖11(c)所示的單個單位部分的多個樂音波形取樣的算術(shù)形成中,進(jìn)行計算時間管理處理,以在考慮到算法形成所需的時間的情況下設(shè)定計算時刻,從而防止對再現(xiàn)部分9進(jìn)行的波形取樣讀出造成不希望的中斷。
隨后,在步驟S260,判定經(jīng)過上述計算時間管理處理而設(shè)定的計算時刻是否已經(jīng)到達(dá)。如果步驟S260處的答案是否定的,CPU1結(jié)束樂音發(fā)生器處理而不進(jìn)行其他的處理。如果在樂音發(fā)生器寄存器中沒有寫入新的數(shù)據(jù)且還沒有到計算時刻,則在樂音發(fā)生器處理中不進(jìn)行具體的操作。一旦在執(zhí)行了主程序的正則環(huán)幾次之后設(shè)定的計算時刻已經(jīng)來到,在步驟S270和其之后,進(jìn)行處理以用算術(shù)方法法形成對應(yīng)于單個單位部分的多個樂音波形取樣。
即,在步驟S270,根據(jù)在各個通道中所要產(chǎn)生的樂音,進(jìn)行各種通道控制處理,諸如形成分辨率改變處理,用于指定所要形成的一組具體的樂音波形取樣;計算順序確定處理,用于以這樣的方式確定通道之間的計算順序,即按照從發(fā)出最重要的樂音的通道至發(fā)出最不重要的樂音的通道的順序,進(jìn)行所需的計算;以及,樂音消音通道確定處理,用于確定計算順序中的最后一個通道,作為其中現(xiàn)行發(fā)聲的樂音應(yīng)該得到消音的通道。
在隨后的步驟S280,進(jìn)行控制數(shù)據(jù)展開處理,其中在上述步驟S240準(zhǔn)備的數(shù)據(jù)沿著時間軸被展開,以為計算作準(zhǔn)備。在此之后,進(jìn)行波形形成計算處理,其中在步驟S290根據(jù)展開的數(shù)據(jù),計算單個單位部分的再現(xiàn)波形數(shù)據(jù)(樂音波形取樣)。另外,如結(jié)合圖5所述的,以這樣的方式使具有不同波形取樣形成分辨率的再現(xiàn)波形數(shù)據(jù)受到內(nèi)插處理,即使其數(shù)目與以基本波形取樣形成分辨率形成的那些的數(shù)目相同;且隨后所有通道的再現(xiàn)的波形數(shù)據(jù)都被積累起來,以存儲在例如緩存器B0中。隨后,在步驟S300,對于存儲來自所有通道的積累的再現(xiàn)波形數(shù)據(jù)的緩存器B0,進(jìn)行再現(xiàn)保留,以使再現(xiàn)部分9隨后讀取再現(xiàn)的波形數(shù)據(jù)。
如上所述,本發(fā)明能夠?qū)τ诿恳粋€樂音發(fā)生通道并在通道中的樂音的產(chǎn)生中的任何中間點(diǎn),單獨(dú)地改變波形取樣形成分辨率。圖17是流程圖,顯示了在樂音發(fā)生器處理的步驟S270執(zhí)行的通道控制處理的細(xì)節(jié)。
在該通道控制處理中,波形取樣形成分辨率改變處理是在步驟S310進(jìn)行的,以根據(jù)提供給各個通道的形成分辨率控制數(shù)據(jù),在樂音產(chǎn)生期間改變波形取樣形成分辨率。在此控制處理中,對經(jīng)歷的時間進(jìn)行計數(shù),以對波形取樣形成分辨率的改變時序進(jìn)行管理。如果目前不需要改變波形取樣形成分辨率,CPU1直接進(jìn)行到步驟S340;然而,如果有需要改變波形取樣形成分辨率的通道(即當(dāng)通道的形成分辨率控制數(shù)據(jù)指定的改變時序到來時),步驟S320產(chǎn)生肯定的判定結(jié)果,因而在步驟S330通道的波形取樣形成分辨率CC被改變到一個新的值(一個由控制數(shù)據(jù)指定的值)。
在步驟S340,執(zhí)行計算順序確定處理,以便以這樣的方式確定通道之間的計算順序,即使得發(fā)出重要樂音或不應(yīng)該消音的樂音的通道的所需的計算優(yōu)先于其他的通道。這里,目前不發(fā)出樂音的通道不需要計算,因而不需要將其包括在計算順序中。隨后,在步驟S350,匯集所有通道的計算量,以確定總計算量。在此情況下,由于不同的通道有不同的波形取樣形成分辨率,且如果這些信道中采用了不同的樂音發(fā)生方法則樂音發(fā)生方法也不同,因而各個通道的相應(yīng)計算量是不同的。在隨后的步驟S360,判定總計算量是否超過了預(yù)定的范圍。如果總計算量處于預(yù)定范圍之內(nèi),CPU1終止通道控制處理而不進(jìn)行任何其他的操作,以執(zhí)行波形計算處理,如下面描述的。
如果在步驟S360判定總計算量超過了預(yù)定范圍,這意味著在再現(xiàn)部分9的預(yù)定讀出時序之前將不能完成所需的計算,且再現(xiàn)的波形數(shù)據(jù)將有中斷。因此,在計算順序的預(yù)定位置之后的各個通道的波形取樣形成分辨率CC將減小1,以減小所要形成的取樣的數(shù)目;即,波形取樣形成分辨率CC=0被改變成波形取樣形成分辨率CC=1,且波形取樣形成分辨率CC=1被改變成波形取樣形成分辨率CC=2。
在此之后,在步驟S380,判定總計算量現(xiàn)在是否處于預(yù)定范圍。如果在步驟S380判定總計算量處于預(yù)定范圍之內(nèi),通道控制處理結(jié)束;然而,如果總計算量仍然超過預(yù)定范圍,則計算順序中最后位置處或之后的一或多個通道被確定為樂音消音通道,且隨后所確定的通道中目前正在發(fā)出的樂音被消音。
如果所要產(chǎn)生的樂音的數(shù)目太多,傳統(tǒng)的樂音發(fā)生器控制技術(shù)的通常作法是進(jìn)行所謂的“切去”處理,以強(qiáng)行使正在產(chǎn)生的所有樂音消音。與此相反,本發(fā)明的最佳實施例,即使當(dāng)在步驟S360判定總計算量超過了預(yù)定范圍的情況下,仍然首先通過步驟S370至步驟S390的操作以降低波形取樣形成分辨率,而試圖避免這種傳統(tǒng)的樂音消音。由于只對重要性較低的一或多個樂音進(jìn)行了波形取樣形成分辨率降低,不會產(chǎn)生顯著的音樂效果。然而,當(dāng)僅通過降低形成分辨率不能適當(dāng)?shù)貞?yīng)付超過的計算量時,最佳實施例依賴于傳統(tǒng)的樂音消音處理。
一旦以上述方式完成了通道控制處理,以下面描述的方式進(jìn)行波形計算處理。
圖18是流程圖,顯示了波形計算處理的細(xì)節(jié)。首先,在步驟S400,對于處于計算順序中第一位的樂音發(fā)生通道,進(jìn)行必要的準(zhǔn)備,且在計算之前對圖5的所有輸出緩存器進(jìn)行消除。在隨后的步驟S410,根據(jù)所要產(chǎn)生的樂音的音高SP、波形取樣形成分辨率CC和原有音高OP,利用上述公式(1),產(chǎn)生F數(shù)。由于各個通道的F數(shù)是在步驟S410的各次執(zhí)行中產(chǎn)生的,所以在樂音產(chǎn)生過程的中間,F(xiàn)數(shù)能夠響應(yīng)于波形取樣形成分辨率CC和原有音高OP的變化而迅速地改變。F數(shù)也能夠響應(yīng)于音高帶、振動或其他效應(yīng)造成的音高SP的變化,而在樂音產(chǎn)生期間改變。
通常不需要在單個單位部分的樂音波形取樣形成計算的中間改變F數(shù),因為計算時刻一般是以約幾毫秒的間隔出現(xiàn)。
隨后,在步驟S420,產(chǎn)生一個讀出地址,以根據(jù)產(chǎn)生的讀出地址的整數(shù)部分讀出波形數(shù)據(jù),且在兩個相繼讀出的波形數(shù)據(jù)之間根據(jù)讀出地址的小數(shù)部分進(jìn)行內(nèi)插。在隨后的步驟S420,上述每個取樣的讀出地址的產(chǎn)生和隨后的內(nèi)插被重復(fù)與形成分辨率CC對應(yīng)的預(yù)定次數(shù),以形成對應(yīng)于形成分辨率CC的預(yù)定數(shù)目的內(nèi)插取樣。各個內(nèi)插取樣的讀出地址,是通過將F數(shù)加到最后的內(nèi)插取樣的讀出地址上而獲得的。因此,對于每一個內(nèi)插取樣,讀出地址都以與F數(shù)對應(yīng)的速率增值,且讀出的波形的音高根據(jù)地址的增值速率而得到控制。
隨后,在步驟S430,在前一步驟產(chǎn)生的內(nèi)插取樣受到根據(jù)樂音音量包絡(luò)線波形的樂音音量控制,并隨后被加到與當(dāng)前波形取樣形成分辨率CC相應(yīng)的緩存器B0和B2中的一個中。樂音音量包絡(luò)波形是用于控制從樂音的上升至衰減的樂音音量包絡(luò)線變化的波形,且是根據(jù)存儲在各個通道的樂音發(fā)生器寄存器區(qū)中的AEG控制數(shù)據(jù)D而與各個內(nèi)插取樣相對應(yīng)地、以算術(shù)方法形成的。如前所述,所要形的內(nèi)插取樣的數(shù)目和所要存儲在輸出緩存器中選定的一個之中的取樣的數(shù)目,都受到形成分辨率CC的控制,因而是相同的。因此,步驟S430的操作,與上述的步驟S420一樣,是一個取樣一個取樣地進(jìn)行的。即,根據(jù)樂音音量包絡(luò)波形的樂音音量控制以及至輸出緩存器的加入,都是一個取樣一個取樣地進(jìn)行的。
通過以上述順序執(zhí)行各種處理,可以盡量減小CPU寫入和讀取計算寄存器的次數(shù),從而增大總體的處理速度。
以此方式,采用基本波形取樣形成分辨率在通道中計算的樂音波形取樣,被存儲到緩存器B0中;在采用基本波形取樣形成分辨率的1/2的通道中計算出的樂音波形取樣被存儲到緩存器B1中;且在采用基本波形取樣形成分辨率的1/4的通道中計算出的樂音波形取樣,被存儲到緩存器B2中。
隨后,在步驟S440,判定計算是否對于需要這種計算的所有樂音發(fā)生通道都已經(jīng)完成。如果還有需要計算的樂音發(fā)生通道留下(即仍然發(fā)出一個樂音),步驟S440的判定結(jié)果就是否定的,因而CPU1進(jìn)行到步驟S480,以進(jìn)行上述的為下一個樂音發(fā)生通道的準(zhǔn)備,并隨后返回到步驟S410。因此,步驟S410至步驟S480的操作得到重復(fù),直到對于所有的樂音發(fā)生通道都完成了計算。
當(dāng)CPU1與本發(fā)明的程序平行地運(yùn)行另一個軟件程序時,由于在軟件處理上花費(fèi)了太多的時間,所需的計算可能被延遲。在此情況下,為了避免對現(xiàn)現(xiàn)部分9的再現(xiàn)產(chǎn)生不希望的打斷,即使仍然有需要計算的樂音發(fā)生通道,也可以在步驟S440確定對所有樂音發(fā)生通道的計算都已經(jīng)完成。
作為上述操作的結(jié)果,根據(jù)波形取樣形成分辨率CC計算出的多個樂音發(fā)生通道的內(nèi)插取樣,被累加存儲到緩存器B0、B1和B2中,如圖5所示。
一旦對需要這種計算的所有樂音發(fā)生通道都完成了計算,在步驟S450對存儲在緩存器B1中的波形取樣進(jìn)行內(nèi)插操作(雙重再取樣),以使內(nèi)插取樣的數(shù)目與用基本波形取樣形成分辨率計算的取樣的數(shù)目相同,并隨后被存儲到具有與緩存器B0相同的結(jié)構(gòu)的緩存器Bi’中(參見圖5D)。然后在步驟S460對存儲在緩存器B2中的波形取樣進(jìn)行插值操作以使插值取樣的數(shù)目與用基本波形取樣分辨率計算的相同,然后存儲到與緩存器B0(見圖5E)具有相同結(jié)構(gòu)的緩存器B2’中去。
隨后,通過將緩存器B1’和緩存器B2’中的波形取樣加到緩存器B0中,將所有通道的波形取樣都存儲到緩存器B0中(見圖5F)。這終止了波形計算處理,且存儲在緩存器B0中的波形取樣隨后將被保留起來,以便由再現(xiàn)部分9讀出以進(jìn)行聲頻再現(xiàn)。
上述的本發(fā)明的樂音發(fā)生方法,是作為由圖1的樂音發(fā)生裝置執(zhí)行的程序來描述的,但它可以作為由諸如“Windows”(美國的微軟公司生產(chǎn)的用于個人計算機(jī)的操作系統(tǒng))的各種操作系統(tǒng)運(yùn)行的通用計算機(jī)上的單個應(yīng)用程序而得到執(zhí)行。
雖然以上還沒有對預(yù)定單位時間中共同形成多個波形取樣的計算過程進(jìn)行詳細(xì)描述,計算過程可以不僅是如上述實施例中那樣的波形存儲器讀出操作,諸如已知的FM同步操作、AM合成操作或付里葉合成操作。
借助上述設(shè)置,本發(fā)明能夠?qū)Ω鱾€樂音發(fā)生通道,根據(jù)所要發(fā)聲的樂音波形是否具有寬頻帶或者根據(jù)樂音的重要性,確定波形取樣形成分辨率。本發(fā)明還能夠在不進(jìn)行無用計算的情況下,以用算術(shù)方法形成樂音波形取樣,而不論所要發(fā)生的樂音波形是具有寬頻帶還是窄頻帶。
另外,由于提高了衰減樂音的升高部分的波形取樣形成分辨率以形成大量的波形取樣,且降低了延音部分的波形取樣形成分辨率以形成較少的波形取樣,所以能夠避免無用計算,從而從樂音的開始至結(jié)束都能夠有效地形成波形取樣,而不出現(xiàn)無用計算。
通過如此地節(jié)約對于具體的樂音發(fā)生通道的波形計算,可以增大對于其他樂音發(fā)生通道的波形計算量,從而提高該通道中產(chǎn)生的樂音的質(zhì)量,且能夠增大可同時產(chǎn)生樂音的通道的數(shù)目。
另外,由于本發(fā)明能夠?qū)τ诟鱾€通道獨(dú)立地控制每單位時間中形成的樂音波形取樣的數(shù)目,各個通道可以以不同的質(zhì)量產(chǎn)生樂音。另外,還允許對于沒有顯著影響的具體通道減小計算量,即使其中產(chǎn)生的樂音是低質(zhì)量的。
下面結(jié)合圖6、7A至7D和19至25,描述根據(jù)本發(fā)明的另一個方面的波形數(shù)據(jù)壓縮方法。
如前所述,圖6示意顯示了存儲在緩存器中以用于完成單個樂音的發(fā)聲(從開始至結(jié)束)的波形數(shù)據(jù)組,圖7A至7D顯示了圖6的波形數(shù)據(jù)在各個點(diǎn)a,b,c和d處提取的頻譜,且圖19顯示了當(dāng)用于完成單個樂音的發(fā)聲的時間串行波形數(shù)據(jù)得到取樣和存儲時取樣頻率Fs的變化方式的一個例子。
首先,結(jié)合圖6、7A至7D和19,描述取樣頻率Fs是如何設(shè)定的。
如圖7A中所示,圖6的點(diǎn)a處的升高部分的波形數(shù)據(jù)具有較寬的頻帶并具有諧波分量眾多且直到高頻F1的頻譜分布。在對具有圖7A所示的頻譜分布的升高部分波形數(shù)據(jù)進(jìn)行取樣的取樣頻率Fs,必須至少高于頻率2f1。
圖6的點(diǎn)b處的、略微衰減的波形數(shù)據(jù)的頻譜分布具有直到頻率f2的頻率分量,如圖7B所示。即,較高次的諧波分量衰減得較快,剩下了比升高部分的頻帶窄的頻帶。在對具有圖7B所示的頻譜分布的波形數(shù)據(jù)進(jìn)行取樣時的取樣頻率Fs,必須至少高于頻率2f2。
另外,諧波分量已經(jīng)進(jìn)一步衰減的點(diǎn)c處的延音部分的波形數(shù)據(jù)的頻譜分布,具有只到頻率f3的分量,并具有窄得多的頻帶,如圖7C所示。對具有圖7C所示的頻率分布的波形數(shù)據(jù)進(jìn)行取樣時的取樣頻率Fs,必須至少高于2f3;這意味著取樣頻率Fs可以大大低于用于升高部分的上述取樣頻率2f1。
另外,如圖7D所示,在圖6的點(diǎn)d處的、得到進(jìn)一步衰減的波形數(shù)據(jù),只包含低次的諧波,其頻譜分布只有直到接近于基波的頻率f4分量,其頻帶遠(yuǎn)窄于升高部分的頻帶。對具有圖7D所示的頻譜分布的波形數(shù)據(jù)進(jìn)行取樣時的取樣頻率Fs,必須至少高于2f4;這意味著取樣頻率Fs可以非常低,例如比用于升高部分的上述取樣頻率2f1低好幾倍。
如所述,對應(yīng)于單個樂音的完全(開始至結(jié)束)發(fā)聲的波形數(shù)據(jù)所需的取樣頻率,隨著波形數(shù)據(jù)的衰減的進(jìn)行,可以很低。因此,本發(fā)明通過以上述方式在記錄波形中改變?nèi)宇l率Fs,來壓縮所要記錄的波形數(shù)據(jù)。
在圖19所示的例子中,對于直到包括當(dāng)升高部分結(jié)束的時間的時刻t1的期間,將取樣頻率Fs設(shè)定在初始的最高頻率48kHz,且取樣頻率Fs在時刻t1切換到較低的頻率32kHz,并隨后再在時刻t2切換到升高部分的頻率的一半24kHz。這里,時刻t1至?xí)r刻t2的單位時間波形取樣數(shù)據(jù)量,是時刻t1之前的初始單位時間波形取樣數(shù)據(jù)量的2/3;從時刻t2至?xí)r刻t3的單位時間波形取樣數(shù)據(jù)量,是時刻t1之前的初始單位時間波形取樣數(shù)據(jù)量的1/2;且從時刻t3開始單位時間波形取樣數(shù)據(jù)量是時刻t1之前的初始單位時間波形取樣數(shù)據(jù)量的1/4。因此,在整體上,單個樂音的完全發(fā)聲所需的波形取樣量能夠得到顯著的減小,且當(dāng)多個波形數(shù)據(jù)得到取樣以進(jìn)行存儲時波形取樣量的減小將具有更大的效果。
如此減小的用于樂音的完全發(fā)聲的波形取樣數(shù)據(jù),被直接寫入到波形存儲器中,因而它們將隨后被從該存儲器讀出,以便以固定再現(xiàn)速率進(jìn)行聲頻再現(xiàn)。固定的再現(xiàn)速率是D/A轉(zhuǎn)換器的轉(zhuǎn)換時序。然而,如果用于樂音的完全發(fā)聲的波形取樣數(shù)據(jù)是如圖19所示地在改變?nèi)宇l率Fs的同時被記錄的,并隨后以固定再現(xiàn)速率進(jìn)行再現(xiàn),則產(chǎn)生的再現(xiàn)波形取樣數(shù)據(jù)的音高在樂音產(chǎn)生期間將自然發(fā)生改變。
作為原有音高OP的變化的一個例子,圖20顯示了當(dāng)從波形存儲器讀出波形取樣數(shù)據(jù)并以每少48k個取樣的固定再現(xiàn)速率再現(xiàn)時檢測到的音高與波形存儲器的讀出地址之間的關(guān)系。在圖20中,“NNO”表示在記錄時發(fā)出的一個音符的音高,在地址Ad1之前的地址范圍是用于讀出圖19的時刻t1之前形成的波形取樣數(shù)據(jù)的地址范圍,從地址Ad1開始至地址Ad2的地址范圍是用于讀出從圖19的時刻t1至?xí)r刻t2形成的波形取樣數(shù)據(jù)的地址范圍,從地址Ad2至地址Ad3的地址范圍是用于讀出從圖19的時刻t2至?xí)r刻t3形成的波形取樣數(shù)據(jù)的地址范圍,且地址Ad3之后的地址范圍是用于讀出在圖19的時刻t3之后形成的波形取樣數(shù)據(jù)的地址范圍。
圖20中顯示的是這樣的情況下,即其中固定再現(xiàn)速率是與波形數(shù)據(jù)記錄期間采用的最高取樣頻率Fs相等的48kHz,且由于采用了這種固定再現(xiàn)速率,從地址Ad1之前的地址范圍讀出的波形取樣數(shù)據(jù)的音高等于記錄時發(fā)聲的音符的音高NNO。如果在圖6的點(diǎn)a處的波形數(shù)據(jù)的一個周期等于100個取樣,則該音高將為48kHz/100=48Hz。從地址Ad1至地址Ad2的地址范圍讀出的波形取樣數(shù)據(jù)的音高為音高NNO的3/2,因為它們是以等于記錄時的速率的3/2的固定再現(xiàn)速率再現(xiàn)的。即,其音高將為480Hz/(3/2)=720Hz。
另外,從自地址Ad2至地址Ad3的地址范圍讀出的波形取樣數(shù)據(jù)的音高,將等于960Hz,這是音高NNO的兩倍,因為它們是以兩倍于記錄時使用的速率的固定再現(xiàn)速率再現(xiàn)的。即,從自地址Ad2至地址Ad3的地址范圍讀出的波形取樣數(shù)據(jù)的音高比音高NNO高一個八度(NNO+1八度)。類似地,從地址Ad3之后的地址范圍讀出的波形取樣數(shù)據(jù)的音高,將是1,920Hz,這是音高NNO的22部,因為它們是以記錄時采用的速率的22倍的固定再現(xiàn)速率再現(xiàn)的。即,從地址Ad3之后的地址范圍讀出的波形取樣數(shù)據(jù)的音高,比音高NNO高兩個八度(NNO+2八度)。
如果以在如圖19所示的樂音的中間處改變的取樣頻率Fs,記錄波形取樣數(shù)據(jù),且如此記錄的波形取樣數(shù)據(jù)以固定再現(xiàn)速率得到再現(xiàn),則再現(xiàn)的波形取樣數(shù)據(jù)的音高在樂音的發(fā)聲期間將如圖20所示地出現(xiàn)不利的變化。因此,需要對從波形存儲器的取樣數(shù)據(jù)讀出進(jìn)行控制,以防止再現(xiàn)波形取樣數(shù)據(jù)的音高變化。
為此,在波形數(shù)據(jù)的記錄期間,輸出如圖20所示的音高變化速率,以作為用于產(chǎn)生F數(shù)的原有音高變化控制數(shù)據(jù),且該原有音高變化控制數(shù)據(jù)被存儲在電子樂器的控制部分中,如下面所要描述的。如果在此情況下,原有音高變化控制數(shù)據(jù)是以音分表示的數(shù)據(jù),則所需的音高控制處理可以得到顯著的簡化。該原有音高變化控制數(shù)據(jù)是用于合成如圖20所示的原有音高OP的變化曲線的控制數(shù)據(jù),且在此情況下,它們指定了變化時序Ad1、Ad2、……和音高值NNO、NN(720Hz)、NNO+1八度、……圖21顯示了其中在波形數(shù)據(jù)記錄期間改變?nèi)宇l率Fs以進(jìn)行單個樂音的完全發(fā)聲的方式的一個例子,該音色具有產(chǎn)生逐漸增大的亮度的效果的樂音。
在所示的例子中,波形數(shù)據(jù)在從時刻t至?xí)r刻t3的時期里具有最高的諧波分量,且在此時期中取樣頻率Fs被保持在最高的48kHz。在從發(fā)聲開始點(diǎn)至?xí)r刻t1的時期里,取樣頻率Fs被設(shè)定為12kHz,隨后在從時刻t1至?xí)r刻t2的時期里被設(shè)定為24kHz,并在時刻t3之后被恢復(fù)到24kHz。
如果以在樂音的中間改變的取樣頻率Fs記錄波形取樣數(shù)據(jù)且如此記錄的波形取樣數(shù)據(jù)以固定再現(xiàn)速率得到再現(xiàn),則再現(xiàn)的波形取樣數(shù)據(jù)的音高將不利地不同于記錄音高,如上所述。因此,在此情況下,在波形數(shù)據(jù)的記錄期間,也輸出形式與前述的不同的樂音的音高變化速率,以作為將要用來產(chǎn)生F數(shù)的原有音高變化控制數(shù)據(jù),且該原有音高變化控制數(shù)據(jù)被存儲在電子樂器的控制部分中。
圖22是框圖,顯示了進(jìn)行波形準(zhǔn)備工作以將在取樣頻率Fs改變的同時取樣的波形數(shù)據(jù)記錄在波形存儲器中的設(shè)置的一個例子。
在所示的例子中,經(jīng)過諸如麥克風(fēng)的波形輸入部分20引入的波形數(shù)據(jù),被A/D轉(zhuǎn)換器21轉(zhuǎn)換成數(shù)字信號。具體地,在此例中,A/D轉(zhuǎn)換器21對引入的模擬波形數(shù)據(jù)以固定的最高取樣頻率Fs(例如48kHz)進(jìn)行取樣并將它們轉(zhuǎn)換成數(shù)字波形取樣數(shù)據(jù)。由A/D轉(zhuǎn)換器21以固定取樣頻率Fs轉(zhuǎn)換成數(shù)字表示的原有波形取樣數(shù)據(jù),借助存儲器寫入電路22,而被寫入到原有波形存儲器23中。
隨后,從原有波形存儲器23讀出原有波形取樣數(shù)據(jù)并借助取樣頻率改變部分24來改變?nèi)宇l率。即,在取樣頻率改變部分24中,波形取樣數(shù)據(jù)以這樣的方式得到再取樣,即在經(jīng)過低通濾波器(LPF)對頻帶進(jìn)行了限制之后,取樣頻率Fs得到了降低,因而即使在頻率Fs得到降低的情況下也避免了混淆噪聲的出現(xiàn)。
從樂音的開始至結(jié)束取樣頻率Fs的變化,是以圖19至21所示的模式下在取樣頻率改變部分24中實現(xiàn)的,且取樣頻率Fs的變化的模式,即波形數(shù)據(jù)和取樣頻率應(yīng)該如何和在什么時序改變,是由變化模式指定部分26指定的。已經(jīng)被取樣頻率改變部分24改變到變化模式指定部分26指定的取樣頻率的波形取樣數(shù)據(jù),被寫入到波形存儲器25中,它根據(jù)本實施例可以被直接地用于電子樂器中。
如果如此寫入的波形取樣數(shù)據(jù)被以固定再現(xiàn)速率再現(xiàn),則在樂音的發(fā)聲期間再現(xiàn)的波形取樣數(shù)據(jù)的音高將產(chǎn)生不利的改變。因為如圖19和20所示,音高按照變化模式指定部分26的指定而變化,產(chǎn)生了對應(yīng)于由指定部分26指定的原有音高變化控制數(shù)據(jù)。該原有音高變化控制數(shù)據(jù)包括變化值,而該變化值以音分表示的并預(yù)先設(shè)定在從波形存儲器25讀出波形取樣數(shù)據(jù)以進(jìn)行再現(xiàn)的波形再現(xiàn)裝置或電子樂器中。
圖23是框圖,顯示了包括波形存儲器的電子樂器的一般結(jié)構(gòu),該波形存儲器中以根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法的壓縮方式記錄有波形數(shù)據(jù)。為了簡化描述,假定電子樂器在一個時刻只產(chǎn)生單個的樂音。
在所示的例子中,電子樂器包括由演奏者操作的鍵盤(KB)31;檢測電路32,用于檢測音符接通事件(NON)和鍵盤31的操作或按下的鍵上音分中音符數(shù)(NN);音高包絡(luò)發(fā)生器(音高EG)33,用于響應(yīng)于從檢測電路32檢測到的音符接通事件NON的發(fā)生開始所經(jīng)歷的時間、產(chǎn)生以音分表示的音高包絡(luò)波形△P以根據(jù)選定的樂音數(shù)TC來改變樂音的音高;以及,加法器34,用于將來自音高包絡(luò)發(fā)生器33的音高包絡(luò)波形△P加到檢測電路32檢測到的音符數(shù)NN上。
電子樂器進(jìn)一步包括原有音高(OP)發(fā)生器37,用于根據(jù)以音分表示的上述原有音高變化控制數(shù)據(jù)來產(chǎn)生原有音高數(shù)據(jù)OP;減法器35,用于從由加法器34輸出的、已經(jīng)加上了音高包絡(luò)波形的音符數(shù)(即NN+△P)減去產(chǎn)生的原有音高數(shù)據(jù)OP;以及,頻率數(shù)(FN)發(fā)生器36,用于根據(jù)來自減法器35的修正的音符數(shù)(即NN+△P-OP),產(chǎn)生與所要產(chǎn)生的樂音的音高成正比的頻率數(shù)(FN)。原有音高發(fā)生器37中存儲有與將要存儲在波形存儲器39中的多個波形數(shù)據(jù)對應(yīng)的多個原有音高變化控制數(shù)據(jù);且原有音高發(fā)生器37響應(yīng)于樂音數(shù)TC和音符數(shù)NN,利用與從波形存儲器39讀出的波形對應(yīng)的原有音高變化控制數(shù)據(jù),產(chǎn)生原有音高數(shù)據(jù)OP。
一個地址發(fā)生器38,根據(jù)樂音數(shù)TC和音符數(shù)NN的鍵范圍,從存儲在波形存儲器中的波形中選擇波形,且它在音符接通ON事件的時序,作為第一讀出地址而輸出選定波形的開始地址。隨后,地址發(fā)生器38以對應(yīng)于提供的F數(shù)的速率,對讀出地址進(jìn)行增值。從其中根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法而存儲有壓縮的波形數(shù)據(jù)的波形存儲器39,響應(yīng)于地址發(fā)生器38產(chǎn)生的讀出地址的整數(shù)部分,讀取波形取樣數(shù)據(jù)MSD。一個內(nèi)插電路40提供取樣數(shù)據(jù)ISD,該取樣數(shù)據(jù)響應(yīng)于產(chǎn)生的讀出地址的小數(shù)部分并利用從波形存儲器39相繼讀出的波形取樣數(shù)據(jù),而得到內(nèi)插。另外,一個乘法器41用樂音音量包絡(luò)波形AEG乘來自內(nèi)插電路40的內(nèi)插取樣數(shù)據(jù)ISD。樂音音量包絡(luò)波形AEG表示對應(yīng)于樂音數(shù)TC的樂音中的樂音音量變化,且是由樂音音量包絡(luò)發(fā)生器42響應(yīng)于音符接通事件NON的時序而產(chǎn)生的。
D/A轉(zhuǎn)換器43以固定再現(xiàn)速率將乘法器41輸出的數(shù)字樂音數(shù)據(jù)(即乘以了樂音音量包絡(luò)波形AEG的內(nèi)插取樣數(shù)據(jù)ISD)轉(zhuǎn)換成模擬音色數(shù)據(jù)。另外,一個發(fā)聲系統(tǒng)44對D/A轉(zhuǎn)換器43提供的模擬樂音信號進(jìn)行聲頻再現(xiàn)。乘法器41為當(dāng)D/A轉(zhuǎn)換器以固定再現(xiàn)速率(固定取樣頻率)實現(xiàn)模擬轉(zhuǎn)換時的每一個時序輸出數(shù)字音色數(shù)據(jù)。標(biāo)號45表示的框表示多個音色開關(guān)(SW),其每一個都是為了讓用戶能夠選擇所要產(chǎn)生的音色,且標(biāo)號46表示的框是一個檢測電路,用于檢測音色開關(guān)的用戶操作以對應(yīng)于用戶選擇的樂音而輸出音色數(shù)TC。
該電子樂器以如下的方式運(yùn)行。當(dāng)演奏者按下鍵盤31上的任何一個鍵時,檢測電路32檢測按下的鍵以產(chǎn)生并向音高包絡(luò)發(fā)生器33、樂音音量包絡(luò)發(fā)生器42、原有音高發(fā)生器37和地址發(fā)生器38提供按下的鍵的音符數(shù)NN和音符接通信號NON。響應(yīng)于此,音高包絡(luò)發(fā)生器33和樂音音量包絡(luò)發(fā)生器42分別開始產(chǎn)生音高包絡(luò)波形△P和樂音音量包絡(luò)波形AEG,原有音高發(fā)生器37產(chǎn)生原有音高數(shù)據(jù)OP,且地址發(fā)生器38產(chǎn)生由整數(shù)部分ADI和小數(shù)部分ADF組成的讀出地址。
假定波形數(shù)據(jù)是以如圖19所示的方式變化的取樣頻率Fs預(yù)先記錄在波形存儲器39中的,且演奏者已經(jīng)指定了與記錄的波形數(shù)據(jù)具有相同的音高的鍵。
在此情況下,原有音高發(fā)生器37產(chǎn)生出由與從檢測電路32輸出的音符數(shù)NN相同的音分值表示的原有音高數(shù)據(jù)OP。這里,如果忽略遠(yuǎn)小于音符數(shù)NN的音高包絡(luò)波形△P,則從減法器5輸出的值(即NN-OP)大約為0音分。當(dāng)接收到該0音分?jǐn)?shù)據(jù)時,頻率數(shù)發(fā)生器36輸出“1”作為F數(shù)。
地址發(fā)生器38通過積累從頻率數(shù)發(fā)生器36輸出的第一個F數(shù),產(chǎn)生由整數(shù)部分ADI和小數(shù)部分ADF組成的讀出地址。如果開始地址是SD,該讀出地址的整數(shù)部分ADI對于D/A轉(zhuǎn)換器從音符接通時序開始的第一個取樣周期加一,如SD、SD+1、SD+2、SD+3……,而讀出地址的小數(shù)部分ADF始終被保持為“0”。
每當(dāng)整數(shù)部分ADI被提供給波形存儲器39時,就從波形存儲器39讀出存儲的波形取樣數(shù)據(jù)。由于讀出地址的小數(shù)部分ADF是0,讀取的波形取樣數(shù)據(jù)MSD通過內(nèi)插電路40而到達(dá)乘法器41,后者又用樂音音量包絡(luò)波形AEG乘取樣數(shù)據(jù)MSD,且將所產(chǎn)生的相乘數(shù)據(jù)送到D/A轉(zhuǎn)換器43。D/A轉(zhuǎn)換器43以固定再現(xiàn)速率將波形取樣數(shù)據(jù)MSD轉(zhuǎn)換成模擬樂音信號,且該模擬樂音信號通過發(fā)聲系統(tǒng)44而得到聲頻再現(xiàn)或發(fā)聲。
由于各個整數(shù)部分ADI被作為相繼的地址產(chǎn)生,所有記錄的波形取樣數(shù)據(jù)都被從波形存儲器39讀出,且以固定再現(xiàn)速率再現(xiàn)的波形數(shù)據(jù)將具有與記錄時相同的音高。
當(dāng)演奏者按下了與記錄的音符名不同的音符名的鍵時,從檢測電路32向頻率數(shù)發(fā)生器36輸出一個音符數(shù)NN,該音符數(shù)NN對應(yīng)于按下的鍵的音符名和八度編碼(例如,當(dāng)按下比一個整樂音記錄的音高高的鍵時,檢測電路32輸出一個增值了200音分的音符數(shù)NN),頻率數(shù)發(fā)生器36隨后產(chǎn)生與按下的音符名和八度編碼(例如高于由一個整樂音記錄的音高)并將產(chǎn)生的F數(shù)傳送到地址發(fā)生器38。根據(jù)此時產(chǎn)生的讀出地址,波形取樣數(shù)據(jù)MSD被從波形存儲器39讀出,以受到內(nèi)插處理。在此內(nèi)插處理中,根據(jù)小數(shù)部分SDF,進(jìn)行相繼的波形取樣數(shù)據(jù)MSD之間的內(nèi)插,諸如線性內(nèi)插。
如此內(nèi)插的取樣數(shù)據(jù)ISD,借助乘法器41,被乘以樂音包絡(luò)波形,并被傳送到D/A轉(zhuǎn)換器,在那里將取樣數(shù)據(jù)ISD以固定再現(xiàn)速率恢復(fù)成模擬波形數(shù)據(jù)?;謴?fù)的波形數(shù)據(jù)將提供對應(yīng)于F數(shù)的音高(即高于由一個整樂音所記錄的音高)。
地址發(fā)生器31向原有音高發(fā)生器37提供產(chǎn)生的讀出地址,而原有音高發(fā)生器37根據(jù)響應(yīng)于音色數(shù)TC和音符數(shù)NN而選擇的原有音高控制數(shù)據(jù),檢測讀出地址什么時間到達(dá)地址Ad1、Ad2或Ad3。因此,借助這種檢測,原有音高發(fā)生器37依次改變原有音高數(shù)據(jù)OP的值,如NNO→NN(720Hz)→NNO+1八度。
以上述方式,如圖20所示的原有音高數(shù)據(jù)OP的變化曲線響應(yīng)于讀出地址而得到再現(xiàn)。例如,在地址單元Ad1至Ad2,原有音高發(fā)生器37將產(chǎn)生從最后的數(shù)據(jù)OP增值700音分和另一500音分的原有音高數(shù)據(jù)OP,并將這些增值的原有音高數(shù)據(jù)OP送到減法器35。在通過Ad2的地址單元,從加有從加法器34輸出的音高包絡(luò)波形△P的音符數(shù),減去1200音分。由于1200音分對應(yīng)于一個八度,在地址存儲單元Ad2輸出了比Ad1之前的點(diǎn)產(chǎn)生的F數(shù)低一個八度的音符數(shù)(NN+△P-OP),并隨后被提供給FN發(fā)生器36。因此,F(xiàn)N發(fā)生器36產(chǎn)生對應(yīng)于一個音高的F數(shù),該音高比Ad1之前的時刻產(chǎn)生的F數(shù)低一個八度,因而地址發(fā)生器38產(chǎn)生以對應(yīng)于該F數(shù)的速率增值的讀出地址。
讀出地址的整數(shù)部分ADI被提供到波形存儲器39,從而讀出所記錄的波形取樣數(shù)據(jù),每個讀出時序一個取樣數(shù)據(jù)。如果例如至地址Ad1的F數(shù)是“1”,則使來自地址Ad2F數(shù)為0.5,從而使從地址發(fā)生器38產(chǎn)生的讀出地址的整數(shù)地址ADI以0、1、1、2、2、……的方式變化,同時小數(shù)部分ADF以0.5、0、0.5、0……的方式變化(在這里不考慮開始地址)。整數(shù)地址ADI被提供到波形存儲器39,以從其讀出波形取樣數(shù)據(jù)MSD,且讀出的取樣數(shù)據(jù)MSD被提供到內(nèi)插電路40,以根據(jù)小數(shù)部分ADF進(jìn)行內(nèi)插。
在地址Ad2處和其之后,每一個取樣周期都從波形存儲器39讀出波形取樣數(shù)據(jù),且該波形取樣數(shù)據(jù)由內(nèi)插電路40根據(jù)各個小數(shù)部分ADF進(jìn)行內(nèi)插。然而,由于記錄在波形存儲器39中在地址Ad2處及其之后的波形取樣數(shù)據(jù)的量,從開始就是直到地址Ad1記錄的量的一半,所以每隔一個讀出時序從波形存儲器39讀出記錄的波表取樣數(shù)據(jù)。這補(bǔ)償了記錄所用的減半的取樣頻率Fs,因而能夠以與記錄時相同的音高從波形存儲器39讀出波形取樣數(shù)據(jù)。
隨后,使來自內(nèi)插電路40的內(nèi)插取樣數(shù)據(jù)ISD借助乘法器41而與樂音音量包絡(luò)發(fā)生器42產(chǎn)生的樂音音量包絡(luò)波形AEG相乘并借助D/A轉(zhuǎn)換器43而被轉(zhuǎn)換成具有固定再現(xiàn)速率的模擬形式。
應(yīng)該注意的是,當(dāng)壓縮波形數(shù)據(jù)時,用于記錄從開始至結(jié)束的波形數(shù)據(jù)的取樣頻率Fs,不僅可以如圖19所示地以逐階的方式變化,而且還可以如圖24所示地以連續(xù)的方式變化。在圖24中,取樣頻率Fs從時刻t4處的48kHz連續(xù)降低到時刻t5處的24kHz,且這種連續(xù)變化還使得波形數(shù)據(jù)能夠以壓縮的方式被記錄在波形存儲器中。在此情況下,以音分表示的原有音高數(shù)據(jù)OP得到設(shè)定,以從樂音的開始至結(jié)束線性地變化。即,當(dāng)以固定再現(xiàn)速率再現(xiàn)從波形存儲器讀出的波形數(shù)據(jù)時,再現(xiàn)的波形數(shù)據(jù)的音高沿著音高軸從地址Ad4至地址Ad5線性地變化,如圖25所示。
因此,在以如圖25所示的方式變化的取樣頻率記錄波形數(shù)據(jù)時,圖23所示的電子樂器的原有音高發(fā)生器37只需要輸出以虛線方式變化的原有音高數(shù)據(jù)OP,因而能夠在結(jié)構(gòu)上得到很大的簡化。
在根據(jù)本發(fā)明的波形數(shù)據(jù)壓縮方法在波形存儲器中記錄波形取樣數(shù)據(jù)的設(shè)置中,以及在包括其中記錄有波形取樣數(shù)據(jù)的這種波形存儲器的電子樂器中,由框表示的功能可以用硬件部件實施,但也可以用MPU(微處理單元)或DSP(數(shù)字信號處理器)實施。
根據(jù)以上描述的本發(fā)明,在所要記錄的樂音的、其中波形數(shù)據(jù)包含高頻分量的升高部分,取樣頻率得到提高,且在其中波形數(shù)據(jù)包含不那樣高的頻率分量的延音部分取樣頻率被降低,因而所要記錄在波形存儲器中的波形取樣數(shù)據(jù)在量上能夠得到有效的減小并能夠得到較大的壓縮。其結(jié)果,本發(fā)明減小了波形存儲器的存儲容量并使存儲器得到有更為有效的利用。
權(quán)利要求
1.一種用于同時產(chǎn)生至少兩個樂音的樂音發(fā)生方法,包括第一形成步驟,用于以每單位時間N個樣本的形成速率形成包含大量的高頻分量的第一樂音波形的樣本;第二形成步驟,用于以每單位時間M個樣本的形成速率形成包含少量高頻分量的第二樂音波形的樣本,其中M小于N;使所述第二混合波形的M個樣本受到插值運(yùn)算以提供所述第二樂音波形的N個樣本的步驟;混合步驟,用于一個樣本接著一個樣本地將所述第一樂音波形的N個樣本和所述第二樂音波形的N個樣本依次相加,以提供混合樂音波形的N個樣本;以及根據(jù)所述混合步驟提供的混合樂音波形產(chǎn)生樂音的步驟。
2.一種樂音發(fā)生方法,其中為多個樂音發(fā)生通道執(zhí)行樂音形成計算以形成與這些通道對應(yīng)的多個樂音的波形數(shù)據(jù),所述方法包括分組步驟,用于將多個樂音發(fā)生通道分成第一和第二組;第一形成步驟,用于為第一組的每一個通道每單位時間形成樂音波形的N個樣本,并依次在通道之間將N個樣本相加,以提供第一混合波形的N個樣本;第二形成步驟,用于為所述第二組的每一個通道每單位時間形成樂音波形的M個樣本,并依次在通道之間將M個樣本相加,以提供第二混合波形的M個樣本,其中M小于N;使所述第二樂音波形的M個樣本受到插值操作以提供所述第二混合波形的N個樣本的步驟;混合步驟,用于將所述第一混合波形的N個樣本與所述第二混合波形的N個樣本一個樣本接著一個樣本地依次相加,以提供混合樂音波形的N個樣本;以及根據(jù)所述混合步驟提供的混合樂音波形產(chǎn)生樂音的步驟。
3.一種用于在多個通道中形成與所希望的聲音相對應(yīng)的波形樣本數(shù)據(jù)的方法,包括以下步驟按照以獨(dú)立于每個通道的方式確定的采樣率,在每個通道中形成波形樣本數(shù)據(jù),其中被確定的采樣率之一是預(yù)定輸出采樣率;使用除了預(yù)定輸出采樣率之外的相同采樣率混合在一個或多個通道中形成的波形樣本數(shù)據(jù),從而以除了預(yù)定輸出采樣率之外的每個不同采樣率提供混合波形樣本數(shù)據(jù);以除了輸出采樣率之外的每個不同采樣率對混合的波形樣本數(shù)據(jù)進(jìn)行再取樣,從而提供具有輸出采樣率的再取樣的波形樣本數(shù)據(jù);混合被再取樣的波形樣本數(shù)據(jù)和輸出采樣率的波形樣本數(shù)據(jù),以提供具有輸出采樣率的波形樣本數(shù)據(jù);以及輸出具有輸出采樣率的輸出波形樣本數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其中所述輸出步驟包括將各個通道的再取樣波形樣本數(shù)據(jù)加在一起。
5.根據(jù)權(quán)利要求3的方法,其中所述輸出步驟包括在波形樣本數(shù)據(jù)之間進(jìn)行內(nèi)插。
6.根據(jù)權(quán)利要求3的方法,其中各個通道的采樣率是根據(jù)在所述通道中所要產(chǎn)生的聲音的時間段而可變地確定的。
7.一種用于同時產(chǎn)生至少兩個樂音的樂音發(fā)生設(shè)備,包括第一形成裝置,用于以每單位時間N個樣本的形成速率形成包含大量的高頻分量的第一樂音波形的樣本;第二形成裝置,用于以每單位時間M個樣本的形成速率形成包含少量高頻分量的第二樂音波形的樣本,其中M小于N;使所述第二混合波形的M個樣本受到插值運(yùn)算以提供所述第二樂音波形的N個樣本的裝置;混合裝置,用于一個樣本接著一個樣本地將所述第一樂音波形的N個樣本和所述第二樂音波形的N個樣本依次相加,以提供混合樂音波形的N個樣本;以及根據(jù)所述混合裝置提供的混合樂音波形產(chǎn)生樂音的裝置。
8.一種樂音發(fā)生設(shè)備,其中為多個樂音發(fā)生通道執(zhí)行樂音形成計算以形成與這些通道對應(yīng)的多個樂音的波形數(shù)據(jù),所述設(shè)備包括分組裝置,用于將多個樂音發(fā)生通道分成第一和第二組;第一形成裝置,用于為第一組的每一個通道每單位時間形成樂音波形的N個樣本,并依次在通道之間將N個樣本相加,以提供第一混合波形的N個樣本;第二形成裝置,用于為所述第二組的每一個通道每單位時間形成樂音波形的M個樣本,并依次在通道之間將M個樣本相加,以提供第二混合波形的M個樣本,其中M小于N;使所述第二樂音波形的M個樣本受到插值操作以提供所述第二混合波形的N個樣本的裝置;混合裝置,用于將所述第一混合波形的N個樣本與所述第二混合波形的N個樣本一個樣本接著一個樣本地依次相加,以提供混合樂音波形的N個樣本;以及根據(jù)所述混合裝置提供的混合樂音波形產(chǎn)生樂音的裝置。
9.一種用于在多個通道中形成與所希望的聲音相對應(yīng)的波形樣本數(shù)據(jù)的設(shè)備,包括以下裝置用于按照以獨(dú)立于每個通道的方式確定的采樣率,在每個通道中形成波形樣本數(shù)據(jù)的裝置,其中被確定的采樣率之一是預(yù)定輸出采樣率;用于使用除了預(yù)定輸出采樣率之外的相同采樣率混合在一個或多個通道中形成的波形樣本數(shù)據(jù),從而以除了預(yù)定輸出采樣率之外的每個不同采樣率提供混合波形樣本數(shù)據(jù)的裝置;用于以除了輸出采樣率之外的每個不同采樣率對混合的波形樣本數(shù)據(jù)進(jìn)行再取樣,從而提供具有輸出采樣率的再取樣的波形樣本數(shù)據(jù)的裝置;用于混合被再取樣的波形樣本數(shù)據(jù)和輸出采樣率的波形樣本數(shù)據(jù),以提供具有輸出采樣率的波形樣本數(shù)據(jù)的裝置;以及用于輸出具有輸出采樣率的輸出波形樣本數(shù)據(jù)的裝置。
10.一種由算術(shù)處理裝置來執(zhí)行的用于形成樂音波形取樣的樂音發(fā)生方法,所述方法包括執(zhí)行波形形成計算以形成一個波形的步驟,其特征在于所述方法進(jìn)一步包括如下步驟以獨(dú)立于所述波形的樂音音高的方式,改變由所述執(zhí)行波形形成計算的步驟所形成的波形的取樣頻率,而執(zhí)行分辨率控制,以控制所述波形形成計算的分辨率。
11.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中所述執(zhí)行波形形成計算的步驟執(zhí)行所述波形形成計算,以形成對應(yīng)多個樂音發(fā)生通道的多個波形,并且包括執(zhí)行音高控制的步驟,以獨(dú)立于所述多個樂音發(fā)生通道中的每個通道的方式,控制對每個所述樂音發(fā)生通道的音高,以及其中所述執(zhí)行分辨率控制的步驟執(zhí)行所述分辨率控制,以根據(jù)要形成在每個所述通道中的所述多個波形中的每個波形的特性以及每個所述通道相對于其他所述通道的重要性,以獨(dú)立于所述多個樂音發(fā)生通道的方式,控制所述波形形成計算的所述分辨率,以及從而以獨(dú)立于其他所述通道的方式,控制在每個所述通道中的每個所述波形的分辨率。
12.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中所述執(zhí)行分辨率控制的步驟執(zhí)行所述分辨率控制,以根據(jù)所述波形的諧波分量的時間變化率,在計算過程中改變所述波形形成計算的所述分辨率,從而所述波形由在產(chǎn)生一個樂音過程中變化的所述波形形成計算的所述分辨率而形成。
13.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中所述執(zhí)行波形形成計算的步驟執(zhí)行所述波形形成計算,以形成與多個樂音發(fā)生通道相對應(yīng)的多個樂音的波形數(shù)據(jù),并且該步驟包括產(chǎn)生用于為每個樂音發(fā)生通道控制要形成在所述通道中的波形數(shù)據(jù)的第一控制數(shù)據(jù)的步驟,以及其中所述執(zhí)行分辨率控制的步驟包括產(chǎn)生用于為每個樂音發(fā)生通道指定要在每單位時間中要形成在所述通道中的特定數(shù)目的樂音取樣的第二控制數(shù)據(jù)的計算控制步驟,以及其中所述執(zhí)行波形形成計算的步驟進(jìn)一步包括一個樂音形成步驟,其對于每個樂音發(fā)生通道,根據(jù)所述第一控制數(shù)據(jù)以及由所述第二控制數(shù)據(jù)所指定的取樣形成速率而算術(shù)地形成與所述通道相對應(yīng)的樂音的波形數(shù)據(jù),以及其中所述方法進(jìn)一步包括根據(jù)對于多個樂音發(fā)生通道在所述樂音形成步驟中形成的波形數(shù)據(jù)產(chǎn)生樂音的步驟。
14.根據(jù)權(quán)利要求13所述的樂音發(fā)生方法,其中所述計算控制步驟形成第二控制數(shù)據(jù),其響應(yīng)構(gòu)成在每一個樂音發(fā)生通道中所要形成的波形數(shù)據(jù)的波形分量隨時間變化而變化。
15.根據(jù)權(quán)利要求13所述的樂音發(fā)生方法,其中與在每一個樂音發(fā)生通道中所要形成的波形數(shù)據(jù)的樂音特性隨時間的變化相對應(yīng),所述計算控制步驟改變所要產(chǎn)生的所述第二控制數(shù)據(jù)。
16.根據(jù)權(quán)利要求13所述的樂音發(fā)生方法,其中所述第一控制數(shù)據(jù)包括指定在每一個樂音發(fā)生通道中所要產(chǎn)生的樂音的音高的音高信息,且其中所述樂音形成步驟根據(jù)所述第二控制數(shù)據(jù)指定的取樣形成速率,將每一個通道的音高信息轉(zhuǎn)換成所要產(chǎn)生的樂音的相位變化速率。
17.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中所述執(zhí)行波形形成計算的步驟執(zhí)行該計算,用于同時產(chǎn)生至少兩個樂音,并且包括第一形成步驟,用于以每單位時間N個取樣的形成速率形成包含高頻分量的第一樂音波形的取樣;第二形成步驟,用于以每單位時間M個取樣的形成速率形成包含高頻分量的第二樂音波形的取樣,其中M和N為整數(shù),并且M小于N,其中包含在所述第二樂音波形中的高頻分量比包含在所述第一樂音波形中的高頻分量更少;使所述第二樂音波形的M個取樣受到插值操作以提供所述第二樂音波形的N個取樣的步驟;以及混合步驟,用于將所述第一樂音波形的N個取樣和所述第二樂音波形的N個取樣一個取樣接著一個取樣地依次相加,以提供混合樂音波形的N個取樣;以及根據(jù)所述混合步驟提供的混合樂音波形產(chǎn)生樂音的步驟。
18.根據(jù)權(quán)利要求10所述的樂音產(chǎn)生方法,其中所述執(zhí)行波形形成計算的步驟執(zhí)行對應(yīng)于多個樂音發(fā)生通道的多個樂音的波形數(shù)據(jù)的形成,并且包括分組步驟,用于將多個樂音發(fā)生通道分成第一和第二組;第一形成步驟,用于為第一組的每一個通道每單位時間形成樂音波形的N個取樣,并依次在通道之間將N個取樣相加,以提供第一混合波形的N個取樣;第二形成步驟,用于為所述第二組的每一個通道每單位時間形成樂音波形的M個取樣,并依次在通道之間將M個取樣相加,以提供第二混合波形的M個取樣,其中M和N為整數(shù),并且M小于N;使所述第二樂音波形的M個取樣受到插值操作以提供所述第二樂音波形的N個取樣的步驟;以及混合步驟,用于將所述第一混合波形的N個取樣與所述第二混合波形的N個取樣一個取樣接著一個取樣地依次相加,以提供混合樂音波形的N個取樣;以及其中所述方法進(jìn)一步包括根據(jù)所述混合步驟提供的混合樂音波形產(chǎn)生樂音的步驟。
19.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中所述執(zhí)行波形形成計算的步驟執(zhí)行所述波形形成計算,以在多個連續(xù)時間段中形成波形取樣數(shù)據(jù),以及所述執(zhí)行分辨率控制的步驟包括根據(jù)包含在要被形成的一個樂音中的諧波分量對于所述多個連續(xù)時間段的每個時間段指定一個取樣頻率的步驟,以及從而對于所述多個時間段的每個時間段,用已經(jīng)為每個所述時間段指定的所述取樣頻率形成波形取樣數(shù)據(jù)。
20.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中要被產(chǎn)生的一個樂音被分配多個連續(xù)時間段,以及其中所述執(zhí)行波形形成計算的步驟執(zhí)行所述波形形成計算,以在每個時間段中形成波形取樣數(shù)據(jù),以及其中所述執(zhí)行分辨率控制的步驟包括確定要形成在獨(dú)立于所述其他時間段的每個時間段中形成的波形取樣的時間分辨率的步驟,以及其中所述執(zhí)行波形形成計算的步驟包括執(zhí)行算術(shù)運(yùn)算以利用對每個所述時間段確定的時間分辨率形成用于每個時間段的波形取樣數(shù)據(jù)的步驟,以及其中所述方法進(jìn)一步包括輸出由所述執(zhí)行波形形成計算的步驟所形成的波形取樣數(shù)據(jù)的步驟。
21.根據(jù)權(quán)利要求20所述的樂音發(fā)生方法,其中所述執(zhí)行算術(shù)運(yùn)算的步驟利用該時間段中的可選時間形成與確定的分辨率對應(yīng)的特定數(shù)目的波形取樣,且其中所述輸出步驟包括暫時緩存利用可選時間形成的波形取樣數(shù)據(jù)并以所希望的再現(xiàn)速率讀出緩存的波形取樣數(shù)據(jù)的步驟。
22.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中所述執(zhí)行波形形成計算的步驟在多個通道中形成與所希望的聲音相對應(yīng)的波形取樣數(shù)據(jù)的步驟,并且包括以下步驟在每一個通道中以為各個通道獨(dú)立確定的取樣速率形成波形取樣數(shù)據(jù),其中所確定的一個取樣速率是一個輸出取樣速率;使用除了輸出取樣速率之外的用于一個或多個通道的一個相同取樣速率混合在一個或多個通道中形成的波形取樣數(shù)據(jù),從而利用除了輸出取樣速率之外的每個不同的取樣速率提供混合的波形取樣數(shù)據(jù);利用除了該輸出的取樣速率之外的每個不同的取樣速率,對混合的波形取樣數(shù)據(jù)進(jìn)行再取樣,從而提供具有該輸出取樣速率的再取樣的波形取樣數(shù)據(jù);以及混合該再取樣的波形取樣數(shù)據(jù)和該輸出取樣速率的波形取樣數(shù)據(jù),以提供具有該輸出取樣速率的輸出波形取樣數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的樂音發(fā)生方法,其中進(jìn)一步包括在波形取樣數(shù)據(jù)之間進(jìn)行內(nèi)插的步驟。
24.根據(jù)權(quán)利要求22所述的樂音發(fā)生方法,其中各個通道的取樣速率是根據(jù)在所述通道中所要產(chǎn)生的聲音的時間段而可變地確定的。
25,根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中進(jìn)一步包括輸入時序一個周期的波形的輸入步驟,以及其中所述執(zhí)行分辨率控制包括在所述周期過程中改變一個記錄取樣頻率的控制步驟,以及其中所述執(zhí)行波形形成計算的步驟包括通過使用所述記錄取樣頻率對該波形取樣以獲得波形數(shù)據(jù)的一個取樣步驟,以及其中所述方法進(jìn)一步包括把通過所述取樣步驟所獲得的波形數(shù)據(jù)順序地寫入到一個存儲器的寫入步驟。
26.根據(jù)權(quán)利要求25所述的樂音發(fā)生方法,其中該記錄取樣頻率在該周期過程中逐級變化。
27.根據(jù)權(quán)利要求25所述的樂音發(fā)生方法,其中進(jìn)一步包括指定步驟,用于指定一個再現(xiàn)速率;產(chǎn)生步驟,用于產(chǎn)生與記錄在波形存儲器中的波形數(shù)據(jù)中出現(xiàn)的音高變化相對應(yīng)的變化數(shù)據(jù),這種音高變化是由于所述控制步驟產(chǎn)生的記錄取樣頻率的變化而產(chǎn)生的;修正步驟,用于用該變化數(shù)據(jù)對由所述指定步驟指定的再現(xiàn)速率進(jìn)行修正;以及再現(xiàn)步驟,用于以對應(yīng)于由所述修正步驟修正的再現(xiàn)速率的速率,對波形存儲器進(jìn)行讀取。
28.根據(jù)權(quán)利要求27所述的樂音發(fā)生方法,其中在以固定速率讀出波形數(shù)據(jù)的情況下,所述變化數(shù)據(jù)是表示由波形數(shù)據(jù)表示的對數(shù)區(qū)的頻率的數(shù)據(jù)。
29.根據(jù)權(quán)利要求28所述的樂音發(fā)生方法,其中所述修正步驟在再現(xiàn)速率與變化數(shù)據(jù)之間進(jìn)行相加或相減。
30.根據(jù)權(quán)利要求10所述的樂音發(fā)生方法,其中進(jìn)一步包括根據(jù)該取樣頻率和樂音音高產(chǎn)生一個增量的步驟,其中所述執(zhí)行波形形成計算的步驟累計所述增量,根據(jù)所述增量的累計值讀出存儲在一個存儲器中的波形數(shù)據(jù)以及根據(jù)該讀出的波形數(shù)據(jù)形成根據(jù)該取樣頻率的波形數(shù)據(jù)。
31.根據(jù)權(quán)利要求30所述的樂音發(fā)生方法,其中所述產(chǎn)生一個增量的步驟通過執(zhí)行包含隨著該樂音音高變化的第一變量和隨著該取樣頻率變化的第二變量的一個數(shù)學(xué)表達(dá)式而產(chǎn)生該增量。
32.一種樂音發(fā)生設(shè)備,包括算術(shù)處理部分,用于形成樂音波形取樣,所述算術(shù)處理部分包括用于執(zhí)行波形形成計算,以形成一個波形的裝置,其特征在于所述算術(shù)處理部分進(jìn)一步包括執(zhí)行分辨率控制的裝置,用于以獨(dú)立于所述波形的一個樂音音高的方式,改變要由用于執(zhí)行波形形成計算的所述裝置所形成的波形取樣頻率而控制所述波形形成計算的分辨率。
33.根據(jù)權(quán)利要求32所述的樂音發(fā)生設(shè)備,其中所述用于執(zhí)行分辨率控制的裝置執(zhí)行所述分辨率控制,以根據(jù)所述波形的諧波分量的時間變化率,在計算過程中改變所述波形形成計算的所述分辨率,從而所述波形由在產(chǎn)生一個樂音過程中變化的所述波形形成計算的所述分辨率而形成。
34.根據(jù)權(quán)利要求32所述的樂音發(fā)生設(shè)備,其中所述執(zhí)行波形形成計算的裝置執(zhí)行用于同時產(chǎn)生至少兩個樂音的計算,并且包括第一形成裝置,用于以每單位時間N個取樣的形成速率形成包含高頻分量的第一樂音波形的取樣;第二形成裝置,用于以每單位時間M個取樣的形成速率形成包含高頻分量的第二樂音波形的取樣,其中M和N為整數(shù),并且M小于N,其中包含在所述第二樂音波形中的高頻分量比包含在所述第一樂音波形中的高頻分量更少;使所述第二樂音波形的M個取樣受到插值操作以提供所述第二樂音波形的N個取樣的裝置;以及混合裝置,用于將所述第一樂音波形的N個取樣和所述第二樂音波形的N個取樣一個取樣接著一個取樣地依次相加,以提供混合樂音波形的N個取樣;以及其中所述設(shè)備進(jìn)一步包括根據(jù)所述混合裝置提供的混合樂音波形產(chǎn)生樂音的裝置。
35.根據(jù)權(quán)利要求32所述的樂音發(fā)生設(shè)備,其中要被產(chǎn)生的一個樂音被分配多個連續(xù)時間段,以及其中所述執(zhí)行波形形成計算的裝置執(zhí)行所述波形形成計算,以在每個時間段中形成波形取樣數(shù)據(jù),以及其中所述執(zhí)行分辨率控制的裝置包括確定要形成在獨(dú)立于所述其他時間段的每個時間段中的波形取樣的時間分辨率的裝置,以及其中所述執(zhí)行波形形成計算的裝置包括執(zhí)行算術(shù)運(yùn)算以利用對每個所述時間段確定的時間分辨率形成用于每個時間段的波形取樣數(shù)據(jù)的裝置,以及其中所述設(shè)備進(jìn)一步包括一個輸出部分,用于輸出由所述算術(shù)處理部分所形成的波形取樣數(shù)據(jù)的裝置。
36.根據(jù)權(quán)利要求35所述的樂音發(fā)生設(shè)備,其中所述算術(shù)處理部分利用對所述通道獨(dú)立確定的分辨率,形成要在每個通道中產(chǎn)生的樂音的波形取樣數(shù)據(jù)。
37.根據(jù)權(quán)利要求32所述的樂音發(fā)生設(shè)備,其中所述算術(shù)處理部分進(jìn)一步包括用于根據(jù)該取樣頻率和樂音音高產(chǎn)生一個增量的裝置,其中所述執(zhí)行波形形成計算的裝置累計所述增量,根據(jù)所述增量的累計值讀出存儲在一個存儲器中的波形數(shù)據(jù)以及根據(jù)該讀出的波形數(shù)據(jù)形成根據(jù)該取樣頻率的波形數(shù)據(jù)。
38.根據(jù)權(quán)利要求37所述的樂音發(fā)生設(shè)備,其中所述產(chǎn)生一個增量的裝置通過執(zhí)行包含隨著該樂音音高變化的第一變量和隨著該取樣頻率變化的第二變量的一個數(shù)學(xué)表達(dá)式而產(chǎn)生該增量。
全文摘要
根據(jù)所要產(chǎn)生的樂音的特性(諸如樂音中的諧波分量的構(gòu)成),使每單位時間的波形取樣的數(shù)目即波形取樣形成分辨率得到可變的設(shè)定。對于包含較多高次諧波分量的樂音或樂音部分,增加每單位時間的波形取樣數(shù)目。相反地,對于包含較少高次諧波分量的樂音或樂音部分,減少每單位時間的波形取樣數(shù)目。通過如此變化地設(shè)定波形取樣分辨率,可以在不產(chǎn)生顯著浪費(fèi)的情況下進(jìn)行用算術(shù)方法形成波形取樣數(shù)據(jù)的處理。
文檔編號G10H7/02GK1591564SQ20041006167
公開日2005年3月9日 申請日期1996年6月18日 優(yōu)先權(quán)日1995年6月19日
發(fā)明者鈴木秀雄, 田邑元一 申請人:雅馬哈株式會社