国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      樂(lè)音合成方法和用于合成樂(lè)音的設(shè)備的制作方法

      文檔序號(hào):2829495閱讀:339來(lái)源:國(guó)知局
      專利名稱:樂(lè)音合成方法和用于合成樂(lè)音的設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種聲音數(shù)據(jù)傳輸方法,聲音數(shù)據(jù)傳輸設(shè)備,和根據(jù)從較低速度的存儲(chǔ)介質(zhì),例如,以較低存取速率存儲(chǔ)數(shù)據(jù)的硬盤(pán)中讀取的信息,產(chǎn)生樂(lè)音、語(yǔ)音和任何其他聲音的設(shè)備程序。更確切地說(shuō),本發(fā)明涉及波形的產(chǎn)生或合成,所產(chǎn)生或合成的波形能根據(jù)演奏者不同的演奏風(fēng)格或常規(guī)樂(lè)器的發(fā)音特性準(zhǔn)確地表現(xiàn)樂(lè)音的音調(diào)。本發(fā)明不僅廣泛應(yīng)用于電子樂(lè)器,而且還適用于能夠產(chǎn)生樂(lè)音、語(yǔ)音或所有其他聲音的所有領(lǐng)域中的裝置、設(shè)備或方法。所述裝置、設(shè)備包括例如機(jī)械樂(lè)器、計(jì)算機(jī)、電子游戲設(shè)備和其它多媒體裝置。在本說(shuō)明書(shū)中,樂(lè)音波形并不限于純音樂(lè)感覺(jué)的波形,還可以包括語(yǔ)音或其它任何聲音的波形。
      背景技術(shù)
      “波形存儲(chǔ)器讀取”技術(shù)是眾所周知的技術(shù)。該技術(shù)能夠存儲(chǔ)用任何編碼系統(tǒng)例如PCM(脈沖編碼調(diào)制)、DPCM(差分PCM)和ADPCM(自適應(yīng)差分PCM)編碼的波形數(shù)據(jù)(例如波形采樣數(shù)據(jù)),并根據(jù)所需要的音樂(lè)定音讀取存儲(chǔ)的數(shù)據(jù),以產(chǎn)生或合成樂(lè)音。此外,公知的還有各種類型的“波形存儲(chǔ)器讀取系統(tǒng)”技術(shù)??梢杂米顐鹘y(tǒng)的“波形存儲(chǔ)器讀取系統(tǒng)”技術(shù)產(chǎn)生從發(fā)音期開(kāi)始到發(fā)音期結(jié)束的單音波形。一個(gè)實(shí)例是存儲(chǔ)從發(fā)音期開(kāi)始到發(fā)音期結(jié)束的整個(gè)聲音波形的波形數(shù)據(jù)。另一個(gè)實(shí)例是用復(fù)雜變化在聲音硬起音(attack)部分,存儲(chǔ)部分波形數(shù)據(jù),和用少變化在保持部分存儲(chǔ)連續(xù)部分的特定環(huán)狀波形(loop waveform)。在本說(shuō)明書(shū)中,術(shù)語(yǔ)“環(huán)狀波形”指的是在一個(gè)環(huán)狀中反復(fù)讀取的波形。
      公知的作為存儲(chǔ)波形數(shù)據(jù)的裝置有ROM、RAM、硬盤(pán)、CD-ROM等。硬盤(pán)和CD-ROM每單位存儲(chǔ)容量的單位價(jià)格較低,并且,適合存儲(chǔ)大量數(shù)據(jù)。然而,硬盤(pán)和CD-ROM的存取速度較慢且不穩(wěn)定,不能在剛好輸出樂(lè)音信號(hào)的時(shí)刻瞬間讀取所需波形數(shù)據(jù)。為此,而提出了以下技術(shù)。
      日本待審專利申請(qǐng)公開(kāi)號(hào)平成6-308964(對(duì)應(yīng)于美國(guó)專利5463183)中公開(kāi)了預(yù)先向RAM傳送存儲(chǔ)在硬盤(pán)中的多個(gè)波形數(shù)據(jù)起始部分的技術(shù)。即,當(dāng)給出發(fā)聲指令時(shí),開(kāi)始執(zhí)行從硬盤(pán)中先行讀取合適波形的數(shù)據(jù)后續(xù)部分的操作,并且同時(shí)播放先前存儲(chǔ)在RAM中的數(shù)據(jù)起始部分。在完成了播放數(shù)據(jù)開(kāi)始部分的操作后,播放波形數(shù)據(jù)的后續(xù)部分。
      日本待審專利申請(qǐng)公開(kāi)號(hào)昭63-181188公開(kāi)了通過(guò)順序讀取從而播放波形數(shù)據(jù)的技術(shù)。將順序發(fā)聲的波形數(shù)據(jù)預(yù)先定義為序列數(shù)據(jù)。該技術(shù)預(yù)定了與時(shí)序?qū)?yīng)的每個(gè)波形數(shù)據(jù)的開(kāi)始讀取時(shí)間,從而使啟動(dòng)時(shí)間早于添加音符時(shí)刻的時(shí)間。

      發(fā)明內(nèi)容
      然而,根據(jù)日本待審專利申請(qǐng)公開(kāi)號(hào)平成6-308964的技術(shù),需要預(yù)先向RAM傳送所有波形數(shù)據(jù)的起始部分,因此妨礙了精密RAM的有效使用。由于按照日本待審專利申請(qǐng)公開(kāi)號(hào)昭63-181188的技術(shù),是以非實(shí)時(shí)產(chǎn)生樂(lè)音信號(hào)的假設(shè)為基礎(chǔ)的,所以在實(shí)時(shí)提供音樂(lè)序列數(shù)據(jù)的情況下不可能應(yīng)用該技術(shù)。
      本發(fā)明是在考慮了上述問(wèn)題的情況下做出的。因此,本發(fā)明的第一個(gè)目的是提供一種聲音數(shù)據(jù)傳輸方法,聲音數(shù)據(jù)傳輸設(shè)備,和有效地以及大量地使用RAM和同時(shí)使用硬盤(pán)等裝置實(shí)時(shí)產(chǎn)生樂(lè)音信號(hào)用的設(shè)備程序。
      按照日本待審專利申請(qǐng)公開(kāi)號(hào)平成6-308964所述技術(shù),需要預(yù)先向RAM傳輸所有波形數(shù)據(jù)的開(kāi)始部分。按照日本待審專利申請(qǐng)公開(kāi)號(hào)昭63-181188所述的技術(shù),總是要求硬盤(pán)存取每一個(gè)事件,因此,增加了來(lái)自硬盤(pán)的噪音并會(huì)縮短硬盤(pán)的壽命。此外,硬盤(pán)頻繁存取會(huì)消耗應(yīng)分配給其他程序的額外資源。
      本發(fā)明是在考慮了上述問(wèn)題的情況下做出的。因此,本發(fā)明的第二個(gè)目的是提供一種聲音數(shù)據(jù)傳輸方法,聲音數(shù)據(jù)傳輸設(shè)備,和用于減少硬盤(pán)不必要存取的設(shè)備程序。
      通常,“波形存儲(chǔ)器讀取系統(tǒng)”技術(shù)存儲(chǔ)的是一種從聲音發(fā)聲期開(kāi)始到發(fā)聲期結(jié)束這一完整波形的波形數(shù)據(jù),或存儲(chǔ)作為硬起音部分的一種聲音中的分音波形數(shù)據(jù)。這種技術(shù)必須存儲(chǔ)大量與各種演奏風(fēng)格(或發(fā)音)對(duì)應(yīng)的不同波形數(shù)據(jù),因此,需要大儲(chǔ)存容量來(lái)存儲(chǔ)這些不同的波形數(shù)據(jù)。
      上述用于存儲(chǔ)完整波形之波形數(shù)據(jù)的系統(tǒng)能如實(shí)地表達(dá)因各種演奏風(fēng)格(或發(fā)音)特別是常規(guī)樂(lè)器產(chǎn)生的音調(diào)(timbre)。然而,這種系統(tǒng)可以僅根據(jù)存儲(chǔ)的波形數(shù)據(jù)來(lái)簡(jiǎn)單地播放音樂(lè),并提供有限的可控性和編輯性。例如,很難根據(jù)音樂(lè)特性數(shù)據(jù)提供與所需演奏風(fēng)格(或發(fā)音)相應(yīng)的例如波形數(shù)據(jù)之時(shí)間軸控制的特征控制。
      本發(fā)明是在考慮了上述問(wèn)題的情況下做出的。因此,本發(fā)明的第三個(gè)目的是提供一種波形合成方法,聲音數(shù)據(jù)傳輸設(shè)備,和能夠容易、簡(jiǎn)單和實(shí)時(shí)產(chǎn)生適合各種演奏風(fēng)格(或發(fā)音)的高質(zhì)量波形數(shù)據(jù)的設(shè)備程序。
      按照日本待審專利申請(qǐng)公開(kāi)號(hào)平成6-308964所述技術(shù),需要預(yù)先向RAM傳輸各種音調(diào)的全部波形數(shù)據(jù)的起始部分,因此不利于RAM的充分利用。此外,按照日本待審專利申請(qǐng)公開(kāi)號(hào)昭63-181188所述的技術(shù),總是要求硬盤(pán)存取每一個(gè)事件,因此,增加了來(lái)自硬盤(pán)的噪音,并會(huì)縮短硬盤(pán)的壽命。此外,硬盤(pán)頻繁存取會(huì)損失機(jī)器的有限資源。
      本發(fā)明是在考慮了上述問(wèn)題的情況下做出的。因此,本發(fā)明的第四個(gè)目的是提供一種聲音數(shù)據(jù)傳輸方法,聲音數(shù)據(jù)傳輸設(shè)備,和節(jié)約硬盤(pán)存取等的設(shè)備程序。
      為了實(shí)現(xiàn)上述第一目的,本發(fā)明的特征在于具備以下構(gòu)成特點(diǎn)。同時(shí)應(yīng)注意括號(hào)內(nèi)的實(shí)例。
      按照本發(fā)明第一方案所提及的構(gòu)成特點(diǎn),涉及聲音數(shù)據(jù)傳輸方法,該方法使用了用于存儲(chǔ)樂(lè)音波形的聲音數(shù)據(jù)(矢量數(shù)據(jù))的低速存儲(chǔ)裝置(硬盤(pán)109),和用于高速緩存聲音數(shù)據(jù)的高速存儲(chǔ)裝置(高速緩沖存儲(chǔ)器44),并將存儲(chǔ)在低速存儲(chǔ)裝置中的一部分聲音數(shù)據(jù)輸送到高速存儲(chǔ)裝置。所述方法的特征在于具有接收音調(diào)類別(specification)(MIDI程序變化信息)的音調(diào)類別接收程序(process),所述音調(diào)類別與將要傳輸?shù)礁咚俅鎯?chǔ)裝置的聲音數(shù)據(jù)有關(guān);預(yù)測(cè)候選聲音數(shù)據(jù)的聲音數(shù)據(jù)預(yù)測(cè)程序(步驟S30),所述候選聲音數(shù)據(jù)是指后面將根據(jù)接收到的音調(diào)類別指定的數(shù)據(jù);和將預(yù)測(cè)的候選聲音數(shù)據(jù)從低速存儲(chǔ)裝置傳輸?shù)礁咚俅鎯?chǔ)裝置的程序(步驟S43)。
      優(yōu)選的是,存儲(chǔ)在低速存儲(chǔ)裝置中的聲音數(shù)據(jù)包括與發(fā)聲起始部分(硬起音部分)對(duì)應(yīng)的第一聲音數(shù)據(jù)和與除發(fā)聲開(kāi)始部分之外的后續(xù)部分(主體部分)對(duì)應(yīng)的第二聲音數(shù)據(jù),而按照音調(diào)類別預(yù)測(cè)的聲音數(shù)據(jù)是第一聲音數(shù)據(jù)。所述方法的特征在于還具有接收任何第一類聲音數(shù)據(jù)類別的第一類聲音數(shù)據(jù)類別接收程序;預(yù)測(cè)候選的第二聲音數(shù)據(jù)的第二聲音數(shù)據(jù)預(yù)測(cè)程序(步驟S30),所述候選的第二聲音數(shù)據(jù)是指隨后將根據(jù)第一聲音數(shù)據(jù)類別指定的第二聲音數(shù)據(jù);和用于將預(yù)測(cè)的第二聲音數(shù)據(jù)從低速存儲(chǔ)裝置傳送到高速存儲(chǔ)裝置的程序(程序43)。
      優(yōu)選的是,存儲(chǔ)在低速存儲(chǔ)裝置中的聲音數(shù)據(jù)還包括在第一和第二數(shù)據(jù)之后使用的第三聲音數(shù)據(jù)(釋放(release)部分或接合部分)。所述方法的特征在于還具有接收所有第二聲音數(shù)據(jù)類別的第二類聲音數(shù)據(jù)類別接收程序;預(yù)測(cè)候選的第三聲音數(shù)據(jù)的第三聲音數(shù)據(jù)預(yù)測(cè)程序(步驟S33),所述候選的第三聲音數(shù)據(jù)是指隨后將根據(jù)第二聲音數(shù)據(jù)類別指定的第三聲音數(shù)據(jù);和用于將預(yù)測(cè)的第三聲音數(shù)據(jù)從低速存儲(chǔ)裝置傳送到高速存儲(chǔ)裝置的程序(程序43)。
      優(yōu)選的是,本發(fā)明所述聲音數(shù)據(jù)傳輸方法還具有提供識(shí)別信息(設(shè)要素dwStatus為‘USED’)的程序,在接收任何聲音數(shù)據(jù)類別時(shí),這些信息都保存在高速存儲(chǔ)裝置中,而且這些信息能指示出釋放未經(jīng)預(yù)測(cè)的候選聲音數(shù)據(jù)的可能性。
      優(yōu)選的是,本發(fā)明所述聲音數(shù)據(jù)傳輸方法還具有,在音調(diào)類別接收程序之前,預(yù)先將每個(gè)音調(diào)的基本聲音數(shù)據(jù)(替換頁(yè))傳送到高速存儲(chǔ)裝置的程序。當(dāng)未將在第一、第二、或第三數(shù)據(jù)類別接收程序中指定的聲音數(shù)據(jù)傳送到高速存儲(chǔ)裝置中時(shí),用基本聲音數(shù)據(jù)代替指定的聲音數(shù)據(jù)。
      為了實(shí)現(xiàn)上述第二目的,本發(fā)明的特征在于具備以下構(gòu)成特點(diǎn)。同時(shí)應(yīng)注意括號(hào)內(nèi)的實(shí)例。
      按照本發(fā)明第二方面的構(gòu)成特點(diǎn),提供一種聲音數(shù)據(jù)傳輸方法,該方法使用了用于存儲(chǔ)音樂(lè)波形聲音數(shù)據(jù)(矢量數(shù)據(jù))的低速存儲(chǔ)裝置(硬盤(pán)109),和用于高速緩存聲音數(shù)據(jù)的高速存儲(chǔ)裝置(高速緩沖存儲(chǔ)器44),并將存儲(chǔ)在低速存儲(chǔ)裝置中的一部分聲音數(shù)據(jù)輸送到高速存儲(chǔ)裝置以便進(jìn)行波形合成。該方法的特征在于具有準(zhǔn)備將要用到的確定的聲音數(shù)據(jù)或準(zhǔn)備將要用到的預(yù)測(cè)聲音數(shù)據(jù)的準(zhǔn)備程序(把矢量ID或包從預(yù)測(cè)控制部分41或演奏風(fēng)格合成部分101C施加到預(yù)取部分42);通過(guò)使用預(yù)先已命令準(zhǔn)備并存儲(chǔ)在高速存儲(chǔ)裝置中的聲音數(shù)據(jù),發(fā)出開(kāi)始合成命令的合成開(kāi)始命令程序;當(dāng)未將命令準(zhǔn)備的聲音數(shù)據(jù)存儲(chǔ)在高速存儲(chǔ)裝置中時(shí),將聲音數(shù)據(jù)從低速存儲(chǔ)裝置傳送到高速存儲(chǔ)裝置,并根據(jù)傳送的聲音數(shù)據(jù)在初始值上設(shè)定計(jì)數(shù)值(要素dwCount)的傳輸程序(步驟S42和S43);當(dāng)已將命令準(zhǔn)備的聲音數(shù)據(jù)存儲(chǔ)在高速存儲(chǔ)裝置中時(shí),增加聲音數(shù)據(jù)計(jì)數(shù)值(要素dwCount)的增加程序;根據(jù)來(lái)自合成開(kāi)始命令程序的開(kāi)始命令,使用聲音數(shù)據(jù)開(kāi)始進(jìn)行波形合成并減去(FILLED狀態(tài)S64中的預(yù)取)與所用聲音數(shù)據(jù)有關(guān)的計(jì)數(shù)值(要素dwCount)的波形合成程序;檢測(cè)存儲(chǔ)在高速存儲(chǔ)裝置中的聲音數(shù)據(jù),而且根據(jù)與每個(gè)聲音數(shù)據(jù)對(duì)應(yīng)的計(jì)數(shù)值預(yù)定在下一個(gè)開(kāi)始命令中不使用的聲音數(shù)據(jù),并將檢測(cè)的聲音數(shù)據(jù)設(shè)定成可擦除狀態(tài)(當(dāng)要素dwCount達(dá)到“0”時(shí),將FILLED狀態(tài)S64轉(zhuǎn)到USED狀態(tài)S63)的設(shè)置程序。
      優(yōu)選的是,本發(fā)明所述聲音數(shù)據(jù)傳輸方法的特征在于,還具有在播放開(kāi)始時(shí)刻之前從事件序列中(音樂(lè)演奏數(shù)據(jù)),預(yù)取事件數(shù)據(jù)的預(yù)取程序,其中準(zhǔn)備程序根據(jù)預(yù)取的事件數(shù)據(jù)確定與準(zhǔn)備命令有關(guān)的聲音數(shù)據(jù),從而使多個(gè)使用同樣聲音數(shù)據(jù)的事件數(shù)據(jù)共用傳輸程序。
      優(yōu)選的是,本發(fā)明的聲音數(shù)據(jù)傳輸方法的特征在于還具有設(shè)定播放開(kāi)始時(shí)間的程序,它用從提供事件數(shù)據(jù)時(shí)刻開(kāi)始的延遲時(shí)間設(shè)定播放開(kāi)始時(shí)間。通過(guò)這種方式,準(zhǔn)備程序能夠根據(jù)在延遲時(shí)間內(nèi)連續(xù)提供的事件數(shù)據(jù)確定與準(zhǔn)備命令有關(guān)的共享聲音數(shù)據(jù),因此,使用共享聲音數(shù)據(jù)的多個(gè)事件數(shù)據(jù)共用傳輸程序。
      優(yōu)選的是準(zhǔn)備程序根據(jù)單個(gè)事件數(shù)據(jù)執(zhí)行相同聲音數(shù)據(jù)適合的多個(gè)準(zhǔn)備命令;而且波形合成程序在將聲音數(shù)據(jù)作為單個(gè)事件數(shù)據(jù)使用時(shí)用來(lái)確定計(jì)數(shù)值。
      為了實(shí)現(xiàn)上述第三目的,本發(fā)明的特征在于具有以下構(gòu)成特點(diǎn)。同時(shí)應(yīng)注意括號(hào)內(nèi)的實(shí)例。
      按照本發(fā)明第三方面所述的構(gòu)成特點(diǎn),涉及一種樂(lè)音合成方法,借助于第一存儲(chǔ)裝置和第二存儲(chǔ)裝置合成樂(lè)音,其中,該第一存儲(chǔ)裝置存儲(chǔ)代表各種樂(lè)音的波形的矢量數(shù)據(jù),所述的第一存儲(chǔ)裝置按第一存取速率存取,該第二存儲(chǔ)裝置以快于該第一存取速率的第二存取速率高速緩存該矢量數(shù)據(jù),用于迅速提供代表將要合成的樂(lè)音波形的矢量數(shù)據(jù),該方法包括以下步驟接收沿時(shí)間軸連續(xù)播放樂(lè)音的包流,所述包流包含先行包和接續(xù)包,每個(gè)包均包含有效指定在該第一存儲(chǔ)裝置中存儲(chǔ)的矢量數(shù)據(jù)的識(shí)別信息;根據(jù)包含在先行包中的識(shí)別信息,預(yù)測(cè)接續(xù)包中的矢量數(shù)據(jù);在接收接續(xù)包之前將預(yù)測(cè)的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,以便在合成之前將預(yù)測(cè)的矢量數(shù)據(jù)高速緩存到該第二存儲(chǔ)裝置中;以及當(dāng)接收到接續(xù)包并且包含在接續(xù)包中的識(shí)別信息命中高速緩存的矢量數(shù)據(jù)時(shí),從該第二存儲(chǔ)裝置中檢索出高速緩存的矢量數(shù)據(jù)并由此合成樂(lè)音。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,當(dāng)未命中高速緩存的矢量數(shù)據(jù)時(shí),將由包含在接續(xù)包中的識(shí)別信息指定的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,以確保樂(lè)音的連續(xù)合成。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,該第一存儲(chǔ)裝置存儲(chǔ)的矢量數(shù)據(jù)分成第一矢量數(shù)據(jù)和第二矢量數(shù)據(jù),所述第一矢量數(shù)據(jù)代表對(duì)應(yīng)于樂(lè)音前部的起音波形,而第二矢量數(shù)據(jù)代表對(duì)應(yīng)于同一樂(lè)音后部的主體波形,從而所述預(yù)測(cè)步驟將預(yù)測(cè)代表主體波形的第二矢量數(shù)據(jù)能否與由包含在先行包中的第一矢量數(shù)據(jù)指定的起音波形相接。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,該第一存儲(chǔ)裝置還存儲(chǔ)第三矢量數(shù)據(jù),該數(shù)據(jù)代表的是樂(lè)音主體波形之后的釋放波形或連接波形,從而所述預(yù)測(cè)步驟將預(yù)測(cè)代表釋放波形或連接波形的第三矢量數(shù)據(jù)能否與由包含在先行包中的第一矢量數(shù)據(jù)指定的主體波形相接。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,還包括如下步驟使沒(méi)有被命中的高速緩存矢量數(shù)據(jù)成為可釋放狀態(tài),以便能夠在接收下一包之前將處于可釋放狀態(tài)的高速緩存矢量數(shù)據(jù)從該第二存儲(chǔ)裝置中刪除。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,該第一存儲(chǔ)裝置設(shè)置成硬盤(pán)驅(qū)動(dòng)器的形式,而該第二存儲(chǔ)裝置設(shè)置成隨機(jī)存取存儲(chǔ)器芯片的形式。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,還包括如下步驟在該第二存儲(chǔ)裝置中保持在對(duì)應(yīng)于先前包的合成中使用的矢量數(shù)據(jù),以便在對(duì)應(yīng)于接續(xù)包的另一次合成中再次使用所述數(shù)據(jù)。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,所述傳輸步驟周期性地傳輸足以連續(xù)生成樂(lè)音的預(yù)定量的矢量數(shù)據(jù)。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,還包括如下步驟檢測(cè)該第二存儲(chǔ)裝置何時(shí)沒(méi)有足夠的空白區(qū)域來(lái)接收將要傳輸?shù)皆摰诙鎯?chǔ)裝置中的新矢量數(shù)據(jù),并且從該第二存儲(chǔ)裝置中釋放舊矢量數(shù)據(jù)以產(chǎn)生用于接收新矢量數(shù)據(jù)的空白區(qū)域。
      優(yōu)選的是,本發(fā)明所述波形合成方法的特征在于,所述矢量數(shù)據(jù)用于合成具有預(yù)定長(zhǎng)度的樂(lè)音波形,所述矢量數(shù)據(jù)包含用于合成預(yù)定波形長(zhǎng)度前部的有實(shí)義的矢量數(shù)據(jù)以及用于合成預(yù)定波形長(zhǎng)度保持部分的無(wú)實(shí)義的矢量數(shù)據(jù);其中相比釋放有實(shí)義的矢量數(shù)據(jù),所述釋放步驟更易于釋放無(wú)實(shí)義的矢量數(shù)據(jù)。。
      為了實(shí)現(xiàn)上述第四目的,本發(fā)明的特征在于具有以下構(gòu)成特點(diǎn)。同時(shí)應(yīng)注意括號(hào)內(nèi)的實(shí)例。
      按照本發(fā)明第四方面所提及的構(gòu)成特點(diǎn),涉及聲音數(shù)據(jù)傳輸方法,該方法使用了用于存儲(chǔ)樂(lè)音波形的聲音數(shù)據(jù)(矢量數(shù)據(jù))的低速存儲(chǔ)裝置(硬盤(pán)109),和用于高速緩存聲音數(shù)據(jù)的高速存儲(chǔ)裝置(高速緩沖存儲(chǔ)器44),并將存儲(chǔ)在低速存儲(chǔ)裝置中的一部分聲音數(shù)據(jù)輸送到高速存儲(chǔ)裝置以便進(jìn)行波形合成。本發(fā)明方法的特征在于具有根據(jù)發(fā)聲命令(加音符)將聲音數(shù)據(jù)從低速存儲(chǔ)裝置傳送到高速存儲(chǔ)裝置的傳輸程序(步驟S43);和在使用了數(shù)據(jù)合成波形后將聲音數(shù)據(jù)以可在將來(lái)使用的狀態(tài)保留在高速存儲(chǔ)裝置內(nèi)的保持程序(設(shè)要素dwStatus為‘USED’)。
      優(yōu)選的是,傳輸程序?qū)⒙曇魯?shù)據(jù)從低速存儲(chǔ)裝置傳送到高速存儲(chǔ)裝置中有特定容量的多個(gè)單元內(nèi)(存儲(chǔ)塊的多個(gè)單元內(nèi))。
      優(yōu)選的是,傳輸程序包括檢測(cè)是否有足夠的空間存儲(chǔ)最新傳送到高速存儲(chǔ)裝置的聲音數(shù)據(jù)的程序;在沒(méi)有足夠的空白空間的情況下,釋放先前保留的聲音數(shù)據(jù),以建立空白區(qū)的程序(設(shè)要素dwStatus為‘USED’);和將最新傳輸?shù)穆曇魯?shù)據(jù)傳送到空白區(qū)的程序。
      優(yōu)選的是,用聲音數(shù)據(jù)對(duì)每個(gè)指定的部分(模式)進(jìn)行波形合成,和所述方法的特征在于還包括設(shè)定高速存儲(chǔ)裝置中數(shù)據(jù)管理方式的程序,該程序使得在每部分開(kāi)始時(shí)使用的聲音數(shù)據(jù)與其他聲音數(shù)據(jù)相比不容易釋放(有這種變化在鏈接表開(kāi)始之前添加要高速緩存的矢量數(shù)據(jù)和將其他矢量數(shù)據(jù)插在鏈接表中間)。
      本發(fā)明的又一目的是提供一種樂(lè)音合成方法。該方法借助于第一存儲(chǔ)裝置和第二存儲(chǔ)裝置合成樂(lè)音,其中,該第一存儲(chǔ)裝置存儲(chǔ)代表各種樂(lè)音的波形的矢量數(shù)據(jù),所述的第一存儲(chǔ)裝置按第一存取速率存取,該第二存儲(chǔ)裝置以快于該第一存取速率的第二存取速率高速緩存該矢量數(shù)據(jù),用于迅速提供代表將要合成的樂(lè)音波形的矢量數(shù)據(jù),該方法包括以下步驟接收沿時(shí)間軸連續(xù)播放樂(lè)音的包流,每個(gè)包均含有識(shí)別信息,該信息可有效識(shí)別存儲(chǔ)在該第一存儲(chǔ)裝置中用于合成的矢量數(shù)據(jù);以及時(shí)間信息,該信息可有效指定沿該時(shí)間軸合成的時(shí)間;在規(guī)定的時(shí)間之前,將識(shí)別的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,由此可在合成之前,將識(shí)別出的矢量數(shù)據(jù)及時(shí)地高速緩存在該第二存儲(chǔ)裝置中;和當(dāng)達(dá)到規(guī)定的時(shí)間時(shí),從該第二存儲(chǔ)裝置中檢索高速緩存的矢量數(shù)據(jù),以便將由檢索到的矢量數(shù)據(jù)定義的波形合成為樂(lè)音。
      上述方法還包括以下步驟判斷是否已將由接收到的包識(shí)別出的矢量數(shù)據(jù)高速緩存到該第二存儲(chǔ)裝置中,從而在判斷步驟判斷該第二存儲(chǔ)裝置還沒(méi)有存儲(chǔ)所識(shí)別的矢量數(shù)據(jù)時(shí),在傳輸步驟中對(duì)所識(shí)別的矢量數(shù)據(jù)進(jìn)行傳輸。
      上述方法還包括以下步驟檢測(cè)該第二存儲(chǔ)裝置何時(shí)沒(méi)有足夠的空閑區(qū)域來(lái)接收將要傳輸?shù)皆摰诙鎯?chǔ)裝置中的新矢量數(shù)據(jù),以及從該第二存儲(chǔ)裝置中釋放舊矢量數(shù)據(jù),以產(chǎn)生接收新矢量數(shù)據(jù)的空閑區(qū)域,所釋放的舊矢量數(shù)據(jù)包括已在先前的合成中用過(guò)的矢量數(shù)據(jù)和在先前的合成中一直未用的矢量數(shù)據(jù)。
      上述方中使用矢量數(shù)據(jù)合成具有預(yù)定長(zhǎng)度的樂(lè)音波形,所述矢量數(shù)據(jù)包括用于合成預(yù)定波形長(zhǎng)度前部的有實(shí)義的矢量數(shù)據(jù),和用于合成預(yù)定波形長(zhǎng)度剩余部分的無(wú)實(shí)義的矢量數(shù)據(jù),其中所述釋放步驟釋放無(wú)實(shí)義的矢量數(shù)據(jù)比釋放有實(shí)義的矢量數(shù)據(jù)更容易。
      上述方法中,該第一存儲(chǔ)裝置設(shè)置成硬盤(pán)驅(qū)動(dòng)器的形式,而該第二存儲(chǔ)裝置設(shè)置成隨機(jī)存取存儲(chǔ)器芯片的形式。
      上述方法還包括以下步驟對(duì)應(yīng)于先行包保持合成中使用的矢量數(shù)據(jù),以便在另一次合成中,對(duì)應(yīng)于接續(xù)包再次使用所述數(shù)據(jù)。
      上述方法中,所述傳輸步驟周期性地傳輸足以成連續(xù)方式傳輸?shù)念A(yù)定數(shù)量的矢量數(shù)據(jù)。
      上述方法還包括以下步驟指出用于在合成時(shí)間之前準(zhǔn)備合成樂(lè)音的矢量數(shù)據(jù),指出的矢量數(shù)據(jù)包括表示已確定或預(yù)測(cè)將在合成中使用的波形的矢量數(shù)據(jù);在所指出的矢量數(shù)據(jù)還沒(méi)有被高速緩存時(shí),把具有相關(guān)計(jì)數(shù)的所指出的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)降诙鎯?chǔ)裝置中,用于高速緩存,其中所述相關(guān)計(jì)數(shù)被設(shè)定為初始值;在已經(jīng)高速緩存了所指出的矢量數(shù)據(jù)時(shí),遞增所指出的矢量數(shù)據(jù)的相關(guān)計(jì)數(shù)的當(dāng)前值;在到達(dá)合成時(shí)間時(shí),利用所指出并高速緩存的矢量數(shù)據(jù)進(jìn)行樂(lè)音合成;然后,遞減在合成中使用的所指出并高速緩存的矢量數(shù)據(jù)的相關(guān)計(jì)數(shù)的當(dāng)前值;以及根據(jù)所述相關(guān)計(jì)數(shù)的當(dāng)前值檢測(cè)在該第二存儲(chǔ)裝置中的可釋放的矢量數(shù)據(jù)。
      上述方法中,該指出步驟根據(jù)在接收到的包中所含的識(shí)別信息指出矢量數(shù)據(jù),從而對(duì)于多個(gè)接收到的包可以共同指出矢量數(shù)據(jù),而該傳輸步驟將共同指出的矢量數(shù)據(jù)一次傳輸?shù)皆摰诙鎯?chǔ)裝置。
      上述方法還包括以下步驟設(shè)定在包的接收和相應(yīng)樂(lè)音合成之間的時(shí)間間隔,從而使所述指出步驟能夠在設(shè)定的時(shí)間間隔內(nèi)指出對(duì)于多個(gè)接收到的包共有的矢量數(shù)據(jù)。
      上述方法中,所述指出步驟根據(jù)在接收到的包中所含的識(shí)別信息兩次或更多次地指出同一矢量數(shù)據(jù),所述遞增步驟在每次指出同一矢量數(shù)據(jù)時(shí)使高速緩存的矢量數(shù)據(jù)的相關(guān)計(jì)數(shù)的當(dāng)前值遞增,而所述遞減步驟在每次使用同一矢量數(shù)據(jù)合成樂(lè)音時(shí),使高速緩存的矢量數(shù)據(jù)的相關(guān)計(jì)數(shù)的當(dāng)前值遞減。
      本發(fā)明的又一目的是提供一種用于合成樂(lè)音的設(shè)備。該設(shè)備包括第一存儲(chǔ)裝置,其存儲(chǔ)代表各種樂(lè)音波形的矢量數(shù)據(jù),所述第一存儲(chǔ)裝置可以第一存取速率進(jìn)行存?。坏诙鎯?chǔ)裝置,其以快于該第一存取速率的第二存取速率高速緩存矢量數(shù)據(jù),以便迅速提供代表將要合成的樂(lè)音波形的矢量數(shù)據(jù);和處理器,其控制矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置并且從該第二存儲(chǔ)裝置中獲得用于樂(lè)音合成的矢量數(shù)據(jù),其中該處理器包括接收部分,其接收沿時(shí)間軸連續(xù)播放樂(lè)音的包流,所述包流包含先行包和接續(xù)包,每個(gè)包中均包含有效指定在該第一存儲(chǔ)裝置中存儲(chǔ)的矢量數(shù)據(jù)的識(shí)別信息;預(yù)測(cè)部分,其根據(jù)包含在先行包中的識(shí)別信息預(yù)測(cè)接續(xù)包中的矢量數(shù)據(jù);傳輸部分,其在接收到接續(xù)包之前,將預(yù)測(cè)的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,以便在合成之前將預(yù)測(cè)的矢量數(shù)據(jù)高速緩存到該第二存儲(chǔ)裝置中;以及檢索部分,其在接收到接續(xù)包并且包含在接續(xù)包中的識(shí)別信息命中高速緩存的矢量數(shù)據(jù)時(shí),從該第二存儲(chǔ)裝置中檢索出高速緩存的矢量數(shù)據(jù)并由此合成樂(lè)音。
      上述設(shè)備中,該控制器還包括指出部分,用于指出準(zhǔn)備樂(lè)音合成的矢量數(shù)據(jù),所指出的矢量數(shù)據(jù)包括合成時(shí)使用的代表確定波形或預(yù)測(cè)波形的矢量數(shù)據(jù);指令部分,用于根據(jù)矢量數(shù)據(jù)指示合成的開(kāi)始,所述矢量數(shù)據(jù)高速緩存在該第二存儲(chǔ)裝置中,而且可以包含或不包含所指出的矢量數(shù)據(jù);另一傳輸部分,在沒(méi)有高速緩存所指出的矢量數(shù)據(jù)時(shí),將具有相關(guān)計(jì)數(shù)的所指出的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,所述相關(guān)計(jì)數(shù)被設(shè)定為初始值;遞增部分,用于在已經(jīng)高速緩存了所指出的矢量數(shù)據(jù)時(shí),使所指出的矢量數(shù)據(jù)的相關(guān)計(jì)數(shù)的當(dāng)前值遞增;執(zhí)行部分,響應(yīng)于開(kāi)始指令,利用所指出并高速緩存的矢量數(shù)據(jù)執(zhí)行樂(lè)音的合成;遞減部分,使在合成中使用的、所指出并高速緩存的矢量數(shù)據(jù)的相關(guān)計(jì)數(shù)的當(dāng)前值遞減;以及檢測(cè)部分,按照相關(guān)計(jì)數(shù)的值,檢測(cè)在該第二存儲(chǔ)裝置中可釋放的矢量數(shù)據(jù)。
      上述設(shè)備中,該控制器還包括保持部分,其對(duì)應(yīng)于先行包保持在一合成中使用的矢量數(shù)據(jù),用于對(duì)應(yīng)于接續(xù)包在另一合成中再次使用。


      圖1是按照本發(fā)明所述波形發(fā)生器硬件結(jié)構(gòu)范例的方框圖;圖2是表示在波形發(fā)生器內(nèi)執(zhí)行的“波形數(shù)據(jù)庫(kù)建立程序”的實(shí)施例流程圖;圖3表示產(chǎn)生與演奏風(fēng)格模式相應(yīng)的實(shí)際波形的元器件實(shí)例示意圖;圖4是表示“根據(jù)數(shù)據(jù)庫(kù)完成樂(lè)音合成程序”的實(shí)例流程圖;圖5是與圖4所述一樣,以給定的硬件形式表示完成相同波形合成程序的實(shí)施例方框圖;
      圖6是表示在上述演奏合成部分中演奏合成程序的流程方框圖;圖7是詳細(xì)表示在演奏合成部分中完成的演奏合成程序的實(shí)施例流程圖;圖8是用于解釋當(dāng)演奏風(fēng)格模式與振幅分量或定音分量相對(duì)應(yīng)時(shí)的鏈接程序示意圖;圖9是用于說(shuō)明當(dāng)硬起音部分的波形與主體部分波形相接時(shí)波形變薄的示意圖;圖10是用于說(shuō)明當(dāng)主體波形與釋放波形相接時(shí)波形變薄的示意圖;圖11是用于說(shuō)明當(dāng)轉(zhuǎn)彎的硬起音波形與釋放波形相接時(shí)波形變薄的示意圖;圖12是用于說(shuō)明當(dāng)正常的硬起音波形與具有環(huán)形部分的釋放波形相接時(shí)波形變薄的示意圖;圖13是用于說(shuō)明當(dāng)一個(gè)演奏風(fēng)格模式結(jié)束而在隨后的另一個(gè)演奏風(fēng)格模式啟動(dòng)前的演奏風(fēng)格模式所波形連接示意圖;圖14是用于說(shuō)明在演奏合成區(qū)內(nèi)產(chǎn)生的包流示意圖;圖15表示在波形合成區(qū)內(nèi)工作的所有結(jié)構(gòu)示意圖;圖16是用于簡(jiǎn)要表示所有波形合成的過(guò)程方框圖;圖17是用于解釋矢量加載器的方框圖;圖18是用于解釋矢量運(yùn)算器的方框圖;圖19是用于解釋矢量記錄器的方框圖;圖20表示矢量數(shù)據(jù)之?dāng)?shù)據(jù)結(jié)構(gòu)的實(shí)施例示意圖;圖21表示在樂(lè)譜注釋部分101B內(nèi)建立的音樂(lè)演奏數(shù)據(jù)的內(nèi)容示意圖;圖22表示把包從演奏合成部分送到波形合成部分的時(shí)間示意圖;圖23是表示高速緩存控制部分所有結(jié)構(gòu)的方框圖;圖24是用于在預(yù)測(cè)控制部分內(nèi)進(jìn)行預(yù)測(cè)運(yùn)算的狀態(tài)過(guò)渡圖;圖25是表示在預(yù)取部分完成的加載過(guò)程的流程圖;圖26是表示在預(yù)取部分完成的數(shù)據(jù)接收過(guò)程的流程圖;圖27表示構(gòu)成高速緩存頁(yè)面的操作示意圖;圖28是演奏合成部分和波形合成部分之間的信號(hào)流向圖;
      圖29表示在高速緩沖存儲(chǔ)器中頁(yè)面標(biāo)題的鏈接結(jié)構(gòu)示意圖;圖30是高速緩沖存儲(chǔ)器內(nèi)頁(yè)面之間的狀態(tài)過(guò)渡圖;和圖31是表示上述實(shí)施例之時(shí)間控制的時(shí)基圖。
      具體實(shí)施例方式
      1.按照本發(fā)明實(shí)施例所述的硬件結(jié)構(gòu)下面將參照附圖更詳細(xì)地描述本發(fā)明的實(shí)施例。
      圖1是表示本發(fā)明所述波形發(fā)生器硬件結(jié)構(gòu)的范例方框圖。該結(jié)構(gòu)實(shí)例使用了一臺(tái)計(jì)算機(jī)。在該結(jié)構(gòu)中,計(jì)算機(jī)執(zhí)行指定的程序(軟件)以實(shí)現(xiàn)本發(fā)明所述的波形發(fā)生。當(dāng)然,波形發(fā)生并不限于計(jì)算機(jī)軟件的形式,還可以用由DSP(數(shù)字信號(hào)處理器)處理的微程序的形式。此外,波形發(fā)生并不限于這些程序種類的形式。而是還可以采用的結(jié)構(gòu)包含分離電路、集成電路、大規(guī)模集成電路等給定的硬件形式。波形發(fā)生器可以應(yīng)用于各種產(chǎn)品,例如電子樂(lè)器、卡拉OK設(shè)備、電子游戲設(shè)備、其他多媒體裝置、個(gè)人計(jì)算機(jī)等。
      在圖1所示的硬件結(jié)構(gòu)實(shí)例中,CPU101作為計(jì)算機(jī)的主要控制部分。通過(guò)總線BL(數(shù)據(jù)或地址總線等),將CPU101與只讀存儲(chǔ)器(RAM)102、隨機(jī)存取存儲(chǔ)器(RAM)103、面板開(kāi)關(guān)104、面板顯示器105、驅(qū)動(dòng)器106、波形輸入部分107、波形輸出部分108、硬盤(pán)109、和通信接口111相連。CPU101根據(jù)指定的程序完成例如“建立波形數(shù)據(jù)庫(kù)”、“樂(lè)音合成(以所建數(shù)據(jù)庫(kù)為基礎(chǔ)的軟件聲源)”等處理(下面將進(jìn)行描述)。這些程序由網(wǎng)絡(luò)通過(guò)通信接口111或例如CD、MO等安裝在驅(qū)動(dòng)器106上的外部存儲(chǔ)媒體106A提供并存儲(chǔ)在硬盤(pán)109中。在執(zhí)行時(shí),由硬盤(pán)109將程序加載到RAM103上。此外,可以優(yōu)選將程序記錄在ROM102中。ROM102存儲(chǔ)由CPU101執(zhí)行或參照各種程序、數(shù)據(jù)等。RAM103作為工作存儲(chǔ)器使用,用于暫時(shí)存儲(chǔ)有關(guān)音樂(lè)演奏的各種信息,或者暫時(shí)存儲(chǔ)CPU101執(zhí)行程序時(shí)產(chǎn)生的各種數(shù)據(jù)。RAM103還用作存儲(chǔ)當(dāng)前執(zhí)行的程序或相關(guān)數(shù)據(jù)的存儲(chǔ)器。賦予RAM103中的特定地址區(qū)域以相關(guān)的功能,并用作寄存器、標(biāo)志、表格、存儲(chǔ)器等。面板開(kāi)關(guān)104的結(jié)構(gòu)包括各種用于發(fā)布指令以便對(duì)樂(lè)音進(jìn)行采樣、對(duì)采樣的波形數(shù)據(jù)等進(jìn)行編輯、和輸入各種信息等的運(yùn)行裝置。運(yùn)行裝置包括用于輸入數(shù)字?jǐn)?shù)據(jù)的數(shù)字鍵座、用于輸入字符數(shù)據(jù)的鍵盤(pán)、面板開(kāi)關(guān)等。此外,最好還包括各種用于選擇、設(shè)定或控制定音、音調(diào)、效果等的運(yùn)行裝置。面板顯示器105顯示從面板開(kāi)關(guān)104輸入的各種信息或采樣波形數(shù)據(jù)等。例如,用液晶顯示器(LCD)、CRT等作為面板顯示器150。
      波形輸入部分107包括用于將模擬樂(lè)音信號(hào)(外部波形輸入信號(hào),例如,從麥克風(fēng)輸入的信號(hào))轉(zhuǎn)換(采樣)成數(shù)字式數(shù)據(jù)的A/D轉(zhuǎn)換器。把數(shù)字波形數(shù)據(jù)輸入到RAM103或硬盤(pán)109中作為原始波形數(shù)據(jù)(該波形數(shù)據(jù)作為要產(chǎn)生的波形數(shù)據(jù)的資料)。CPU101進(jìn)行“建立波形數(shù)據(jù)庫(kù)”的處理以便根據(jù)輸入的原始波形數(shù)據(jù)建立按照本發(fā)明所述的“波形數(shù)據(jù)庫(kù)”。此外,CPU101進(jìn)行“以數(shù)據(jù)庫(kù)為基礎(chǔ)的樂(lè)音合成”的處理,以便利用“波形數(shù)據(jù)庫(kù)”形成與音樂(lè)演奏信息相對(duì)應(yīng)的適合任何樂(lè)音信號(hào)的波形數(shù)據(jù)。當(dāng)然,可以同時(shí)產(chǎn)生多個(gè)樂(lè)音信號(hào)。通過(guò)總線BL將適合產(chǎn)生樂(lè)音信號(hào)的波形數(shù)據(jù)送到波形輸出部分108并適當(dāng)緩沖。波形輸出部分108根據(jù)指定的輸出采樣頻率輸出緩沖的波形數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行數(shù)一模轉(zhuǎn)換,并將其發(fā)送到發(fā)聲系統(tǒng)108A。最后,發(fā)聲系統(tǒng)108A使得從波形輸入部分108輸出的樂(lè)音信號(hào)發(fā)出聲音。硬盤(pán)109存儲(chǔ)多種與音樂(lè)演奏有關(guān)的數(shù)據(jù),例如波形數(shù)據(jù)、使對(duì)應(yīng)于音樂(lè)演奏的使波形同步的數(shù)據(jù)(即后面將描述的演奏風(fēng)格表、代碼本等的數(shù)據(jù))、由各種音調(diào)參數(shù)構(gòu)成的音調(diào)數(shù)據(jù)等。硬盤(pán)109還存儲(chǔ)由CPU101執(zhí)行的用于控制各種程序等的數(shù)據(jù)。
      驅(qū)動(dòng)器106驅(qū)動(dòng)可拆盤(pán)(外存儲(chǔ)媒體106A),該可拆卸盤(pán)可存儲(chǔ)多種與音樂(lè)演奏相關(guān)的數(shù)據(jù),例如,波形數(shù)據(jù)、使與音樂(lè)演奏對(duì)應(yīng)的使波形同步的數(shù)據(jù)(后面將要描述的演奏風(fēng)格表、代碼本等的數(shù)據(jù))、由各種音調(diào)參數(shù)構(gòu)成的音調(diào)數(shù)據(jù)等,以及由CPU101執(zhí)行的用于控制各種程序等的數(shù)據(jù)。受驅(qū)動(dòng)器106驅(qū)動(dòng)的媒體106A不僅可以是軟盤(pán)(FD),還可以是高密盤(pán)(CD-ROM或CD-RAM),磁光盤(pán)(MO),DVD(數(shù)字式通用盤(pán)),和其他類型的可拆卸媒體。當(dāng)將存儲(chǔ)控制程序的外部存儲(chǔ)媒體106A安裝到驅(qū)動(dòng)器106上時(shí),最好將其內(nèi)容(控制程序)直接加載到RAM103中,而不必將其復(fù)制到硬盤(pán)109上。因?yàn)槟苋菀椎靥砑涌刂瞥绦蚧蚴蛊渖?jí),使用外部存儲(chǔ)媒體106A或通過(guò)網(wǎng)絡(luò)能很容易地提供控制程序。
      通信接口111連接到通信網(wǎng)絡(luò)(圖中未示),例如LAN網(wǎng)、因特網(wǎng)、電話線等。通信接口通過(guò)通信網(wǎng)絡(luò)與服務(wù)性計(jì)算機(jī)(圖中未示)相連,以便將控制程序、各種數(shù)據(jù)或音樂(lè)演奏信息從服務(wù)性計(jì)算機(jī)等輸入到波形發(fā)生器。當(dāng)ROM102或硬盤(pán)109未存儲(chǔ)控制程序或數(shù)據(jù)時(shí),用通信接口111從服務(wù)性計(jì)算機(jī)上下載控制程序或各種數(shù)據(jù)。隨同客戶一起工作的波形發(fā)生器通過(guò)通信接口將命令發(fā)送到服務(wù)性計(jì)算機(jī)上,以便下載控制程序或各種數(shù)據(jù)。當(dāng)接收該命令時(shí),服務(wù)性計(jì)算機(jī)通過(guò)通信接口將請(qǐng)求的控制程序或數(shù)據(jù)存儲(chǔ)在硬盤(pán)109中,從而完成下載。此外,所述接口最好包括用于接收MIDI音樂(lè)演奏信息的MIDI接口。顯然,音樂(lè)演奏鍵盤(pán)或演奏操作裝置可以與總線BL相接,以便實(shí)時(shí)提供音樂(lè)演奏信息。此外,最好使用存儲(chǔ)了所需歌曲音樂(lè)演奏信息的外部存儲(chǔ)媒體106A來(lái)提供音樂(lè)演奏信息。
      2.波形數(shù)據(jù)庫(kù)建立程序2.1程序的概述圖2是表示在上述波形發(fā)生器中完成的“波形數(shù)據(jù)庫(kù)建立程序”的實(shí)施例流程圖。為了適應(yīng)各種演奏(或發(fā)音),該程序?qū)⒁杂酶鞣N演奏風(fēng)格(或發(fā)音)演奏的聲波為基礎(chǔ)建立矢量數(shù)據(jù)。
      在步驟S1,程序?qū)?zhǔn)備用于存儲(chǔ)演奏風(fēng)格表和代碼本(下面將提及)的數(shù)據(jù)庫(kù)。例如,用硬盤(pán)109作為數(shù)據(jù)庫(kù)的媒體。所述程序根據(jù)常規(guī)樂(lè)器的各種演奏模式收集波形數(shù)據(jù)(步驟S2)。即,通過(guò)波形輸入部分107從外部的波形輸入信號(hào)(例如麥克風(fēng))中獲取各種常規(guī)樂(lè)器的實(shí)際演奏聲音。程序把適合這些演奏聲音的波形數(shù)據(jù)存儲(chǔ)到硬盤(pán)109上指定的區(qū)域中。待輸入的演奏聲音的波形數(shù)據(jù)可以包括所有的音樂(lè)演奏或其特征段,例如給定的分句、一個(gè)音符、一個(gè)硬起音部分或釋放部分。
      因此,波形數(shù)據(jù)是根據(jù)常規(guī)樂(lè)器的各種演奏模式特征從演奏聲音中獲得的。然后,程序?qū)⒃摬ㄐ螖?shù)據(jù)分段成特定部分,將其定調(diào)和為其起文件名(步驟S3)。即,程序?qū)演斎氲脑疾ㄐ螖?shù)據(jù)分成代表波形變化的單個(gè)波形(例如,硬起音波形,主體部分的波形,釋放部分的波形,接合部分的波形等)([1]分段)。由程序確定在一個(gè)或多個(gè)循環(huán)中每個(gè)獨(dú)立的波形數(shù)據(jù)的定音([2]定調(diào))。由程序還為每個(gè)獨(dú)立的波形數(shù)據(jù)指定文件名([3]起文件名)。當(dāng)程序輸入部分演奏波形數(shù)據(jù)例如硬起音部分或釋放部分時(shí)可以省略波形分離([1]分段)。
      然后程序借助頻率分析分離各分量(步驟S4)。即,程序通過(guò)FFT(快速傅里葉變換)分析把在步驟S3中分別產(chǎn)生的一部分波形數(shù)據(jù)分成多個(gè)分量。在該實(shí)施例中,波形數(shù)據(jù)分成諧波(harmonic)分量和非諧波(non-harmonic)分量。程序還從每個(gè)分量(諧波分量,非諧波分量等)中抽取適合各要素的特征,例如波形、定音和振幅。通常,這意味著特征分離。(當(dāng)將波形數(shù)據(jù)分成諧波分量和非諧波分量時(shí),對(duì)非諧波分量來(lái)說(shuō),因?yàn)槠錄](méi)有定音,所以不需要定音分離)。例如,“波形”(音調(diào))要素是一個(gè)抽取的特性,它僅包括具有正常定音和振幅的波形形狀?!岸ㄒ簟币匕ǔ槿〉亩ㄒ粝鄬?duì)于參考定音的變化特性。“振幅”要素包括抽取的振幅包絡(luò)特性。
      在步驟S5,建立矢量數(shù)據(jù)。即,程序間斷地或按需要可以連續(xù)地從各要素抽取多個(gè)采樣值,所述要素可以是例如在分離的諧波分量、非諧波分量中的波形(音調(diào))、定音和振幅等。用唯一矢量(識(shí)別信息)指定相關(guān)采樣值順序,并將其與采樣值的時(shí)間位置數(shù)據(jù)一起存在代碼本中。這樣的采樣數(shù)據(jù)在下文中將稱為矢量數(shù)據(jù)。該實(shí)施例建立了波形(音調(diào))要素和振幅要素在非諧波分量中的矢量數(shù)據(jù)。每個(gè)分量要素的矢量數(shù)據(jù)可隨著沿時(shí)間軸的進(jìn)程而改變。程序隨后將建立演奏風(fēng)格模式(下面將詳細(xì)說(shuō)明)的數(shù)據(jù),并將演奏風(fēng)格模式存儲(chǔ)在演奏風(fēng)格表中。由此,將已建立的演奏風(fēng)格模式和矢量數(shù)據(jù)寫(xiě)到數(shù)據(jù)庫(kù)中的演奏風(fēng)格表和代碼本上(步驟S6),從而將數(shù)據(jù)存到數(shù)據(jù)庫(kù)內(nèi)。如上所述,矢量數(shù)據(jù)本身并不是原始的波形數(shù)據(jù),而是代表輸入的原始波形形狀的波形中的各要素的獨(dú)立數(shù)據(jù)。這個(gè)矢量數(shù)據(jù)最終成為演奏風(fēng)格模式的單位數(shù)據(jù)。代碼本存儲(chǔ)經(jīng)過(guò)壓縮的并代表抽取波形形狀變化的一部分波形數(shù)據(jù)。演奏風(fēng)格表存儲(chǔ)演奏風(fēng)格模式數(shù)據(jù)(將在下文中詳細(xì)說(shuō)明)。即,該包把以壓縮形式存儲(chǔ)的矢量數(shù)據(jù)存儲(chǔ)成具有波形形狀的原始波形數(shù)據(jù),和用來(lái)指定存儲(chǔ)在代碼本中的矢量數(shù)據(jù)之ID數(shù)據(jù)所需的各種數(shù)據(jù)。
      在上述特征分離過(guò)程中(步驟S4),程序還使用除振幅、定音和波形要素之外的時(shí)間要素來(lái)進(jìn)行特征抽取。在下文中將抽取時(shí)間要素的矢量數(shù)據(jù)稱為“時(shí)間矢量數(shù)據(jù)”。分別產(chǎn)生的分音波形數(shù)據(jù)的時(shí)間周期中的該時(shí)間要素用作原始波形數(shù)據(jù)的時(shí)間長(zhǎng)度。因此,如果用系數(shù)“1”表示時(shí)間周期的原始時(shí)間長(zhǎng)度(可變的),則“波形數(shù)據(jù)庫(kù)建立程序”不需要分析或測(cè)量該時(shí)間長(zhǎng)度。在這種情況下,代碼本不必一定要存儲(chǔ)時(shí)間要素的數(shù)據(jù)(即,時(shí)間矢量數(shù)據(jù)),這是因?yàn)樵谌魏螘r(shí)間周期里總是取相同的值“1”。當(dāng)然,本發(fā)明并不限于此。也可以采用分析和測(cè)量實(shí)際時(shí)間長(zhǎng)度的實(shí)例,并將其作為“時(shí)間矢量數(shù)據(jù)”存儲(chǔ)在代碼本中。
      然后,判斷數(shù)據(jù)庫(kù)是否已完全建立(步驟S7)。即,通過(guò)大量收集從外部波形輸入信號(hào)獲得的常規(guī)樂(lè)器不同演奏模式的演奏聲音原始波形數(shù)據(jù),該程序能據(jù)此判斷是否已完全獲得各種演奏風(fēng)格模式的數(shù)據(jù)和矢量數(shù)據(jù)。該判斷不總是自動(dòng)進(jìn)行的。最好跟隨以下指令進(jìn)行操作,該指令為是否能根據(jù)用戶的轉(zhuǎn)換操作繼續(xù)進(jìn)行處理。當(dāng)判斷結(jié)果是已經(jīng)收集到原始波形數(shù)據(jù)和以此為基礎(chǔ)的矢量數(shù)據(jù)已完全建立時(shí),程序?qū)⒔K止(步驟S7中的YES)。為了繼續(xù)收集原始波形數(shù)據(jù)和建立以原始波形數(shù)據(jù)為基礎(chǔ)的矢量數(shù)據(jù)(步驟S7中的NO),程序?qū)⑥D(zhuǎn)向步驟S2并重復(fù)步驟S2-S7。最好實(shí)際使用為判斷是否已完全建立矢量數(shù)據(jù)(步驟S7)而建立的矢量數(shù)據(jù)來(lái)產(chǎn)生樂(lè)音。即,在斷定矢量數(shù)據(jù)完全建立(步驟S7中的YES)的情況下,隨后從圖2的流程中退出控制。此后,可能出現(xiàn)通過(guò)使用所建立的矢量數(shù)據(jù)播放音樂(lè)的情況,但這不能令人滿意。在這種情況下,優(yōu)選在步驟S2之中和之后進(jìn)行處理來(lái)添加矢量數(shù)據(jù)。即,不管何時(shí),只要需要便建立矢量數(shù)據(jù)和將其添加到數(shù)據(jù)庫(kù)中。
      在上述“波形數(shù)據(jù)庫(kù)建立程序”中,優(yōu)選設(shè)置添加或刪除任何演奏風(fēng)格模式或編輯演奏風(fēng)格模式數(shù)據(jù)等的能力。
      2.2演奏風(fēng)格模式數(shù)據(jù)結(jié)構(gòu)下面將具體描述演奏風(fēng)格模式數(shù)據(jù)。
      演奏風(fēng)格模式存儲(chǔ)在演奏風(fēng)格表中,所述演奏風(fēng)格表構(gòu)成硬盤(pán)102上的數(shù)據(jù)庫(kù)。將演奏風(fēng)格ID和演奏參數(shù)相結(jié)合可以指定一種演奏風(fēng)格模式。演奏風(fēng)格ID包含樂(lè)器信息和模式部分的名稱。例如演奏風(fēng)格ID的定義如下。當(dāng)用32位(0-31位)的序列描述一種演奏風(fēng)格ID時(shí),用6位表示樂(lè)器信息。例如,當(dāng)6位序列是“000000”時(shí),樂(lè)器信息表示中音薩克斯。當(dāng)序列是“001000”時(shí),樂(lè)器信息表示小提琴。優(yōu)選使用三個(gè)高等級(jí)位的6位序列對(duì)樂(lè)器類型進(jìn)行粗分類,和使用三個(gè)低等級(jí)位對(duì)樂(lè)器進(jìn)行細(xì)分類,例如用32位序列中的另6位表示模式部分的名稱。例如,當(dāng)模式部分的名稱表示正常硬起音(NormalAttack)時(shí),用6位序列“000000”;轉(zhuǎn)彎起音(BendAttack)用“000001”;裝飾音音符起音(GraceNoteAttack)用“000010”;正常短音主體(NormalShortBody)為“001000”;顫音主體(VibBody)用“001001”;正常長(zhǎng)音主體(NormalLongBody)用“001010”;正常釋放(NormalRelease)用“010000”;正常接合(NormalJoint)用“011000”;或裝飾音音符接合(GraceNoteJoint)用“011001”。當(dāng)然,模式部分的名稱并不限于這一結(jié)構(gòu)。
      如上所述,可利用演奏風(fēng)格ID和演奏參數(shù)的結(jié)合來(lái)確定每種演奏風(fēng)格模式。即,演奏風(fēng)格模式是根據(jù)演奏風(fēng)格ID確定的。按照演奏參數(shù)變化地設(shè)定演奏模式的內(nèi)容。演奏參數(shù)具有與演奏風(fēng)格模式相應(yīng)的波形數(shù)據(jù)特性,或者可控制所述與演奏風(fēng)格模式相應(yīng)的波形數(shù)據(jù)。特定類型的演奏參數(shù)對(duì)每個(gè)演奏風(fēng)格模式都是有效的。例如,可以賦予中音薩克斯正常硬起音(NormalAttack)多種演奏參數(shù),例如緊跟在硬起音之后的獨(dú)立定音或音量等。中音薩克斯上彎起音(BendUpAttack)模式可以設(shè)置多種演奏參數(shù),例如在上彎起音(BendUpAttack)結(jié)束時(shí)的獨(dú)立定音,上彎起音(BendUpAttack)時(shí)刻轉(zhuǎn)彎深度的初始值,從上彎起音(BendUpAttack)開(kāi)始到結(jié)束的時(shí)間周期(加音符的時(shí)間),在硬起音之后瞬間的音量,在上彎起音(BendUpAttack)期間默認(rèn)曲線的瞬時(shí)伸展和收縮等。此外,中音薩克斯正常短音主體(NormalShortBody)模式可以用該模式的獨(dú)立定音,正常短音主體(NormalShortBody)的停止時(shí)間和開(kāi)始時(shí)間,正常短音主體(NormalShortBody)開(kāi)始或結(jié)束時(shí)的力度等來(lái)表示。演奏風(fēng)格模式并不需要包括與所有有效演奏參數(shù)相應(yīng)的數(shù)據(jù)。演奏風(fēng)格模式可以存儲(chǔ)與某些斷續(xù)演奏參數(shù)值相應(yīng)的數(shù)據(jù)。例如,中音薩克斯正常硬起音(NormalAttack)模式可以存儲(chǔ)與部分?jǐn)?shù)據(jù)相應(yīng)的數(shù)據(jù),而不是所有絕對(duì)定音值或在硬起音之后的瞬間音量值。
      如上所述,可以用演奏風(fēng)格ID和演奏參數(shù)來(lái)確定演奏風(fēng)格模式。因此,例如,中音薩克斯正常硬起音(NormalAttack)模式可以確定除了表示薩克斯管正常硬起音的多個(gè)數(shù)據(jù)(后面將要描述的基本數(shù)據(jù))之外的與所需演奏參數(shù)相應(yīng)的數(shù)據(jù)。提琴轉(zhuǎn)彎起音(Bendattack)模式可以確定除表示提琴轉(zhuǎn)彎的硬起音部分多個(gè)數(shù)據(jù)(下面將描述的基本數(shù)據(jù))之外的與所需演奏參數(shù)據(jù)相對(duì)應(yīng)的數(shù)據(jù)。
      2.3演奏風(fēng)格表數(shù)據(jù)結(jié)構(gòu)演奏風(fēng)格表根據(jù)每個(gè)演奏風(fēng)格模式,存儲(chǔ)和產(chǎn)生對(duì)應(yīng)于每個(gè)演風(fēng)格模式的相關(guān)演奏風(fēng)格模式波形所需的數(shù)據(jù)。例如,演奏風(fēng)格表存儲(chǔ)矢量ID和典型點(diǎn)值序列(用于確定典型采樣點(diǎn)的數(shù)據(jù),以便修正多個(gè)采樣序列,)以便確定每個(gè)分量要素的矢量數(shù)據(jù)(波形要素、定音要素(定音包絡(luò)線)、振幅要素(振幅包絡(luò)線)等)。或者,演奏風(fēng)格表存儲(chǔ)每個(gè)分量要素的信息,這些信息例如矢量數(shù)據(jù)(波形要素、定音要素(定音包絡(luò)線),振幅要素(振幅包絡(luò)線))的開(kāi)始或停止時(shí)間位置。即,演奏風(fēng)格表存儲(chǔ)各種以正常形狀播放波形所需的數(shù)據(jù)(下文中也稱作“要素?cái)?shù)據(jù)”),所述波形來(lái)自數(shù)據(jù)庫(kù)中以壓縮形式作為矢量數(shù)據(jù)存儲(chǔ)的波形。下面的描述用中音薩克斯正常起音(NormalAttack)模式來(lái)解釋存儲(chǔ)在與演奏風(fēng)格模式相應(yīng)的演奏風(fēng)格表中的特定數(shù)據(jù)實(shí)例。
      數(shù)據(jù)1演奏風(fēng)格模式的采樣長(zhǎng)度。
      數(shù)據(jù)2加音符的時(shí)間位置。
      數(shù)據(jù)3在諧波分量中振幅要素的矢量ID和典型點(diǎn)值序列。
      數(shù)據(jù)4在諧波分量中定音要素的矢量ID和典型點(diǎn)值序列。
      數(shù)據(jù)5在諧波分量中波形(音調(diào))要素的矢量ID。
      數(shù)據(jù)6在非諧波分量中振幅要素的矢量ID和典型點(diǎn)值序列。
      數(shù)據(jù)7在非諧波分量中波形(音調(diào))要素的矢量ID。
      數(shù)據(jù)8在諧波分量中波形(音調(diào))要素塊(block)的開(kāi)始位置。
      數(shù)據(jù)9在諧波分量中波形(音調(diào))要素塊的結(jié)束位置(在諧波分量中波形(音調(diào))要素環(huán)(loop)的開(kāi)始位置)。
      數(shù)據(jù)10在非諧波分量中波形(音調(diào))要素塊的開(kāi)始位置。
      數(shù)據(jù)11在非諧波分量中波形(音調(diào))要素塊的結(jié)束位置(在非諧波分量中波形(音調(diào))要素環(huán)的開(kāi)始位置)。
      數(shù)據(jù)12在非諧波分量中波形(音調(diào))要素環(huán)的結(jié)束位置。
      下面將參照?qǐng)D3描述上述數(shù)據(jù)1-12。
      圖3示出了構(gòu)成與演奏奏風(fēng)格模式對(duì)應(yīng)的實(shí)際波形部分的分量和要素的范例。在該圖中,從頂部到底部,示出了在諧波分量中的振幅要素,諧波分量中的定音要素,諧波分量中的波形(音調(diào))要素,非諧波分量中的振幅要素,和非諧波分量中的波形(音調(diào))要素。圖中的參考標(biāo)記對(duì)應(yīng)于上述數(shù)據(jù)號(hào)。
      參考標(biāo)記1代表與演奏風(fēng)格模式對(duì)應(yīng)的波形采樣長(zhǎng)度(波期)。例如,采樣長(zhǎng)度對(duì)應(yīng)于以作為演奏風(fēng)格模式基礎(chǔ)的原始波形數(shù)據(jù)的整個(gè)時(shí)間長(zhǎng)度。參考標(biāo)記2表示加音符的時(shí)間位置,在演奏風(fēng)格模式中的任何時(shí)間位置上均能以可變的形式確定該加音符的時(shí)間位置。原則上,與波形對(duì)應(yīng)的演奏聲音從這個(gè)加音符的時(shí)間位置開(kāi)始發(fā)聲。例如,根據(jù)轉(zhuǎn)調(diào)硬起音等演奏風(fēng)格,波形分量的上升時(shí)間可以先于加音符的時(shí)間。
      參考標(biāo)記3表示的矢量ID和典型點(diǎn)值序列顯示出了以諧波分量的形式存儲(chǔ)在代碼本內(nèi)的振幅要素之矢量數(shù)據(jù)。在圖3中,典型點(diǎn)用兩個(gè)黑色方塊表示。參考標(biāo)記4表示的矢量ID和典型點(diǎn)值序列示出了諧波分量中定音要素之矢量數(shù)據(jù)。參考標(biāo)記6表示的矢量ID和典型點(diǎn)值序列顯示出了非諧波分量中的振幅要素之矢量數(shù)據(jù)。用典型點(diǎn)值序列數(shù)據(jù)改變或控制由矢量ID指定的矢量數(shù)據(jù)(包括多個(gè)采樣序列)和指示或指定某些常規(guī)采樣點(diǎn)。根據(jù)指定的常規(guī)采樣點(diǎn),可以改變和校正它的時(shí)間位置(橫軸)和水平軸(縱軸)。由此,可使其它采樣點(diǎn)發(fā)生變化,并因此改變矢量形狀。例如,常規(guī)的點(diǎn)值序列數(shù)據(jù)表示比所述采樣量少的分散采樣量,但并不限于此。常規(guī)的點(diǎn)值序列數(shù)據(jù)可以是采樣之間的間斷數(shù)據(jù)或是指定范圍內(nèi)的數(shù)據(jù)(多個(gè)連續(xù)的采樣)。此外,常規(guī)的點(diǎn)值序列數(shù)據(jù)可以是差值、倍數(shù)等,而不是采樣值本身??梢酝ㄟ^(guò)使該典型點(diǎn)沿著橫軸和/或縱軸(時(shí)間軸)移位來(lái)改變每個(gè)矢量數(shù)據(jù)形狀。即,可以改變包絡(luò)波形形狀。
      參考標(biāo)記5表示的矢量ID示出了諧波分量中波形(音量)要素的矢量數(shù)據(jù)。參考標(biāo)記7表示的矢量顯示出了非諧波分量中波形(音調(diào))要素的矢量數(shù)據(jù)。參考標(biāo)記8表示的是諧波分量中波形(音調(diào))要素塊的開(kāi)始位置。參考標(biāo)記9表示諧波分量中波形(音調(diào))要素塊的結(jié)束位置(或諧波分量中波形(音調(diào))要素環(huán)的開(kāi)始位置)。即,從參考標(biāo)記8開(kāi)始的三角形表示連續(xù)存儲(chǔ)特性波形狀的非環(huán)狀波形部分。從參考標(biāo)記9開(kāi)始的連續(xù)矩形表示能反復(fù)讀取的環(huán)狀波形部分。非環(huán)狀波形是具有演奏風(fēng)格(或發(fā)音)等特性的高質(zhì)量波形。環(huán)狀波形是與比較單調(diào)的聲音部分相對(duì)應(yīng)的單位波形,而且它包括一個(gè)周期或適量周期的波形。參考標(biāo)記10表示非諧波分量中波形(音調(diào))要素塊的開(kāi)始位置。參考標(biāo)記11表示非諧波分量中波形(音調(diào))要素塊的結(jié)束位置(或非諧波分量中波形(音調(diào))要素環(huán)的開(kāi)始位置)。參考標(biāo)記12表示非諧波分量中波形(音調(diào))要素環(huán)的結(jié)束位置。用上述數(shù)據(jù)3-7作為指示存儲(chǔ)在每個(gè)分量要素代碼本中的矢量數(shù)據(jù)的信息。用上述數(shù)據(jù)2和8-12作為從矢量數(shù)據(jù)恢復(fù)原始波形(在分離之前)的時(shí)間信息。
      如上所述,演奏風(fēng)格模式包括用于指示矢量數(shù)據(jù)和時(shí)間信息數(shù)據(jù)的數(shù)據(jù)。通過(guò)使用存儲(chǔ)在演奏風(fēng)格表中的演奏風(fēng)格模式數(shù)據(jù),和使用存儲(chǔ)在代碼本中的波形資料(矢量數(shù)據(jù)),可以自由地構(gòu)筑波形。即,演奏風(fēng)格模式是代表波形狀態(tài)的數(shù)據(jù),該波形可根據(jù)演奏風(fēng)格(或發(fā)音)產(chǎn)生。各演奏風(fēng)格模式可以包含不同的數(shù)據(jù)種類或數(shù)據(jù)量。除了上述數(shù)據(jù)外,還可以在演奏風(fēng)格模式上設(shè)置其它信息等,例如,用于控制波形時(shí)間軸擴(kuò)展和壓縮的數(shù)據(jù)。
      為了容易地理解所述解釋,上述實(shí)例示出的一種演奏風(fēng)格模式包括諧波分量中的所有要素(波形、定音、振幅)和非諧波分量中的要素(波形和振幅)。然而,本發(fā)明并不限于此。顯然,演奏風(fēng)格模式可以包括諧波分量中多種要素(波形、定音、振幅)的一種或非諧波分量中多種要素(波形和振幅)中的一種。例如,演奏風(fēng)格模式可以包括諧波中的波形(音調(diào))要素、諧波分量中的定音要素、諧波分量中的振幅要素、非諧波分量中的波形(音調(diào))要素、非諧波分量中的振幅要素中的一種。由于對(duì)每種分量而言,演奏風(fēng)格模式可以自由組結(jié),所以很方便。
      如上所述,按照各種常規(guī)樂(lè)器的不同演奏模式,所有波形數(shù)據(jù)并不保持演奏聲音。波形數(shù)據(jù)庫(kù)建立程序僅抽取改變波形形狀所需的分音波形(例如,硬起音部分的波形,主體部分的波形,釋放部分的波形,接合部分的波形等)。此外,按照分量、要素和典型點(diǎn)使用分層壓縮技術(shù)存儲(chǔ)波形數(shù)據(jù)作為硬盤(pán)109中的壓縮數(shù)據(jù)。可以保存存儲(chǔ)波形數(shù)據(jù)所需的硬盤(pán)109的存儲(chǔ)容量。
      3.波形合成過(guò)程圖1中的波形發(fā)生器,允許計(jì)算機(jī)執(zhí)行指定程序(軟件)完成本發(fā)明所述波形合成過(guò)程來(lái)合成波形。圖4是執(zhí)行上述波形合成過(guò)程(“以數(shù)據(jù)庫(kù)為基礎(chǔ)的音樂(lè)合成程序”)的程序流程圖。
      然而,在該實(shí)施例中,由程序完成的各種功能彼此是獨(dú)立的。下面將描述以圖5所示功能方框圖為基礎(chǔ)的操作。本發(fā)明不限于這種程序。波形合成過(guò)程是在專用硬件設(shè)備上進(jìn)行的。在這種情況下,圖5是專用硬件設(shè)備的方框圖,所述硬件設(shè)備能提供與圖4中所示相同的波形合成過(guò)程。以下主要參照?qǐng)D5進(jìn)行描述并且用括號(hào)表示圖4中相應(yīng)的步驟。
      3.1聲音數(shù)據(jù)播放部分101A聲音數(shù)據(jù)播放部分101A播放帶有演奏符號(hào)的聲音數(shù)據(jù)(步驟S11)。首先,聲音數(shù)據(jù)播放部分接收帶有演奏符號(hào)的聲音數(shù)據(jù)(音樂(lè)演奏信息)。原始樂(lè)譜包括音樂(lè)標(biāo)記例如動(dòng)態(tài)標(biāo)記(漸強(qiáng),漸弱等)、速度標(biāo)記(快板,慢板等)、連線、持續(xù)、重音等。這些標(biāo)記如果不改變的話,不會(huì)成為MIDI數(shù)據(jù)。為此,需將這些標(biāo)記轉(zhuǎn)換成“演奏符號(hào)”數(shù)據(jù)。將包含演奏符號(hào)的MIDI聲音數(shù)據(jù)稱為“帶有演奏符號(hào)的歌曲數(shù)據(jù)”。演奏符號(hào)包括圖表ID和圖表參數(shù)。圖表ID表示樂(lè)譜上的音樂(lè)標(biāo)記。圖表參數(shù)表示用圖表ID指出的音樂(lè)標(biāo)記的內(nèi)容范圍。例如當(dāng)圖表表示“顫音”時(shí),將提供圖表參數(shù)來(lái)指定顫音的速度、深度等。當(dāng)圖表ID表示“漸強(qiáng)”時(shí),將提供圖表參數(shù)來(lái)指定在漸強(qiáng)開(kāi)始或結(jié)束時(shí)的音量、音量變化的時(shí)間長(zhǎng)度等。
      3.2樂(lè)譜注釋部分101B樂(lè)譜注釋部分(演奏者)101B完成樂(lè)譜注釋過(guò)程(步驟S12)。特別是,該部分將MIDI數(shù)據(jù)和上述包含在聲音數(shù)據(jù)中的“演奏符號(hào)”(圖表ID和圖表參數(shù))轉(zhuǎn)換成演奏風(fēng)格指定信息(演奏風(fēng)格ID和演奏參數(shù))。經(jīng)轉(zhuǎn)換的數(shù)據(jù)與時(shí)間信息一起輸出到演奏合成部分(發(fā)音器)101C。通常,演奏者可以用相同的音樂(lè)標(biāo)記進(jìn)行不同的注釋。他們可以用不同的演奏風(fēng)格或發(fā)音進(jìn)行演奏。此外,演奏者可以根據(jù)不同的演奏風(fēng)格表演一系列的音符。樂(lè)譜注釋部分是一個(gè)可了解表現(xiàn)樂(lè)譜標(biāo)記(音樂(lè)標(biāo)記、音符的分布等)的專家系統(tǒng)。
      例如,樂(lè)譜注釋部分使用以下標(biāo)準(zhǔn)來(lái)注釋樂(lè)譜上的標(biāo)記。顫音只可用于八分音符或更長(zhǎng)的音符。斷奏實(shí)際上增加了動(dòng)感。持續(xù)的長(zhǎng)短決定著音符的衰減。連奏并不減弱音符。時(shí)間值決定著八分音符顫音的速度。動(dòng)態(tài)取決于定音。此外,存在不同注釋標(biāo)準(zhǔn),例如因提高或降低短句內(nèi)的定音和減小動(dòng)態(tài)的dB線性增益而引起的動(dòng)態(tài)變化,和與持續(xù)或斷奏相應(yīng)的音符長(zhǎng)度以及與硬起音部分的上彎標(biāo)記相應(yīng)的上彎寬度和曲線變化。根據(jù)這些標(biāo)準(zhǔn),樂(lè)譜注釋部分101B注釋樂(lè)譜以把樂(lè)譜轉(zhuǎn)換成音樂(lè)演奏數(shù)據(jù)。此外,樂(lè)譜注釋部分101B根據(jù)用戶的表演者指令,即,表演者進(jìn)行演奏(演奏風(fēng)格)的指令,換行上述樂(lè)譜注釋過(guò)程。樂(lè)譜注釋部分101B根據(jù)該表演者指令,通過(guò)改變注釋方法來(lái)注釋樂(lè)譜。例如,數(shù)據(jù)庫(kù)內(nèi)存儲(chǔ)根據(jù)多個(gè)演奏者得到的不同的樂(lè)譜注釋方法。樂(lè)譜注釋部分101B根據(jù)用戶的演奏者指令,通過(guò)選擇不同的樂(lè)譜注釋方法來(lái)注釋樂(lè)譜。
      使構(gòu)成的歌曲數(shù)據(jù)(音樂(lè)演奏信息)預(yù)先包括顯示樂(lè)譜注釋結(jié)果的數(shù)據(jù)。顯然,在輸入的聲音數(shù)據(jù)包含預(yù)先注釋的樂(lè)譜結(jié)果數(shù)據(jù)時(shí),將不再需要上述過(guò)程。通過(guò)適當(dāng)?shù)挠脩糨斎氩僮饔蓸?lè)譜注釋部分101B完全自動(dòng)地或半自動(dòng)地進(jìn)行注釋樂(lè)譜(步驟S12)。
      現(xiàn)在參照?qǐng)D21,下面將描述在樂(lè)譜注釋部分101B建立的音樂(lè)演奏數(shù)據(jù)的內(nèi)容。
      象常規(guī)的SMF(標(biāo)準(zhǔn)MIDI格式)一樣,音樂(lè)演奏包括標(biāo)題和多個(gè)音軌。每個(gè)音軌包含程序和事件數(shù)據(jù)(添加音符,除去音符等)。在該實(shí)施例中,每個(gè)音軌包含,其用于指定硬起音部分、主體部分、接合部分和釋放部分模式的模式指定部分。模式指定部分是包含演奏風(fēng)格ID和演奏參數(shù)的演奏風(fēng)格指定信息。實(shí)際上,這些模式指定部分采用了未定義的系統(tǒng)專用信息、元事件、14位控制變化等。此外,每個(gè)音軌包含時(shí)間差數(shù)據(jù),該數(shù)據(jù)用于指定事件數(shù)據(jù)或模式指定部分之間的時(shí)間差。
      可能存在這樣一種情況,即每個(gè)音軌包含指定音調(diào)的程序變化,也即新數(shù)據(jù)庫(kù)(演奏風(fēng)格表和代碼本)。在這種情況下,樂(lè)譜注釋部分101B向波形合成部分101D提供作為預(yù)測(cè)數(shù)據(jù)的程序變化。由于波形合部分101D從代碼本中讀取下一次預(yù)測(cè)將用到的矢量數(shù)據(jù),所以需確定程序變化,以便將預(yù)測(cè)范圍限制在某種程度上(下面將詳細(xì)說(shuō)明)。預(yù)測(cè)數(shù)據(jù)還包含其它各種數(shù)據(jù)。根據(jù)歌曲數(shù)據(jù),樂(lè)譜注釋部分101B向波形合成部分101D提供“指示后續(xù)演奏風(fēng)格指令的數(shù)據(jù)”作為預(yù)測(cè)數(shù)據(jù)。以上所述包含的程序變化是一種預(yù)測(cè)數(shù)據(jù)。
      3.3演奏合成部分101C演奏合成部分(發(fā)音器)101C在由樂(lè)譜注釋部分(演奏者)101B轉(zhuǎn)換的演奏風(fēng)格指令(演奏風(fēng)格ID和演奏參數(shù))的基礎(chǔ)上參照演奏風(fēng)格表。該部分產(chǎn)生與演奏風(fēng)格指令(演奏風(fēng)格ID和演奏參數(shù))相應(yīng)的包流(也稱為矢量流)和與演奏參數(shù)對(duì)應(yīng)的數(shù)據(jù)流有關(guān)的矢量參數(shù),并且將所述包流和矢量參數(shù)提供給波形合成部分101D(步驟S13)。提供給波形合成部分101D的數(shù)據(jù)是包含包時(shí)間信息、矢量ID、典型點(diǎn)值序列等與定音要素和振幅要素有關(guān)的包流。就波形(音調(diào))要素而言,所述包含矢量ID、時(shí)間信息等(下面將詳細(xì)說(shuō)明)。
      波形合成部分101D根據(jù)包流從代碼本中檢索矢量數(shù)據(jù),按照矢量參數(shù)修正矢量數(shù)據(jù),并根據(jù)修正的矢量數(shù)據(jù)合成波形(步驟S14)。然后,波形合成部分101D完成其他部分的波形生成過(guò)程(步驟S15)。多個(gè)演奏部分中的其他部分是指那些不進(jìn)行演奏合成過(guò)程而是采用常規(guī)樂(lè)音波形合成過(guò)程的演奏部分。例如,用常規(guī)波形存儲(chǔ)器聲源系統(tǒng)為這些其他部分產(chǎn)生樂(lè)音。這種“其他部分的波形產(chǎn)生過(guò)程”可以在專用硬件聲源(外部發(fā)聲設(shè)備或可安裝到計(jì)算機(jī)上的聲卡)上完成。為了便于說(shuō)明,該實(shí)施例僅使用了一個(gè)部分來(lái)產(chǎn)生與演奏風(fēng)格(或發(fā)音)相應(yīng)的樂(lè)音。當(dāng)然,也可以用多個(gè)部分來(lái)播放演奏風(fēng)格。
      圖6是用于表示上述演奏合成部分101C的演奏合成過(guò)程之流程的方框圖。盡管圖6中示出的是分別存儲(chǔ)演奏風(fēng)格模式和代碼本的情形,但是實(shí)際上也可以將兩者都存在硬盤(pán)109上的數(shù)據(jù)庫(kù)內(nèi)。
      演奏合成部分101C建立了根據(jù)演奏風(fēng)格指令(演奏風(fēng)格ID和演奏參數(shù))和來(lái)自樂(lè)譜注釋部分101B的時(shí)間信息數(shù)據(jù)供給波形合成部分101D的不同的包流。演奏合成部分101C并不使用針對(duì)每個(gè)音調(diào)的永久演奏風(fēng)格模式。用戶可以在當(dāng)前使用的演奏風(fēng)格模式上添加新的演奏風(fēng)格模式或停止使用它們當(dāng)中的某些模式。演奏合成部分101C還執(zhí)行建立校正信息以便校正選定要素?cái)?shù)據(jù)和演奏參數(shù)值之差的程序,和平滑前后演奏風(fēng)格模式的連接波形特征的平滑連接程序。
      通常,樂(lè)譜注釋部分101B向演奏合成部分101C提供數(shù)據(jù),但是本發(fā)明并不限于此。如上所述,最好是根據(jù)演奏風(fēng)格準(zhǔn)備歌曲數(shù)據(jù),其中所述歌曲數(shù)據(jù)已經(jīng)由樂(lè)譜注釋部分101B注釋。或者,根據(jù)演奏風(fēng)格準(zhǔn)備歌曲數(shù)據(jù),其中用戶通過(guò)注釋樂(lè)譜為歌曲數(shù)據(jù)提供演奏風(fēng)格ID和演奏參數(shù)。通過(guò)播放歌曲數(shù)據(jù)向演奏合成部分101C提供數(shù)據(jù)。
      圖7是詳細(xì)表示演奏合成過(guò)程的實(shí)施例流程圖。
      演奏合成部分101C根據(jù)演奏風(fēng)格ID和演奏參數(shù)從演奏風(fēng)格表中選擇演奏風(fēng)格模式(步驟S21)。即,演奏合成部分101C根據(jù)從樂(lè)譜注釋部分101B發(fā)出的演奏風(fēng)格ID(樂(lè)器信息和模式部分名稱)和演奏參數(shù)選擇一個(gè)演奏風(fēng)格模式。在注釋樂(lè)譜之前,樂(lè)譜注釋部分101B檢查數(shù)據(jù)庫(kù)以便確定在與樂(lè)器信息指示的音調(diào)相應(yīng)的演奏風(fēng)格表中存在哪些模式部分。樂(lè)譜注釋部分101B指定現(xiàn)存部分范圍內(nèi)的演奏風(fēng)格ID。當(dāng)指定的是非現(xiàn)存部分時(shí),優(yōu)選代之以選擇具有類似特征的演奏風(fēng)格ID。然后,演奏合成部分101C選擇與指定的演奏風(fēng)格ID和演奏參數(shù)相應(yīng)的多個(gè)要素?cái)?shù)據(jù)(步驟S22)。即,演奏合成部分101C通過(guò)參照演奏風(fēng)格表并根據(jù)指定的演奏風(fēng)格ID和演奏參數(shù)來(lái)指定演奏風(fēng)格模式,并且從所述模式中擇出多個(gè)與演奏參數(shù)對(duì)應(yīng)的要素?cái)?shù)據(jù)。當(dāng)演奏風(fēng)格模式不包含與演奏參數(shù)完全匹配的要素?cái)?shù)據(jù)時(shí),演奏合成部分101C選擇與和演奏參數(shù)相近的值對(duì)應(yīng)的要素?cái)?shù)據(jù)。
      然后,該程序根據(jù)時(shí)間信息計(jì)算要素?cái)?shù)據(jù)中每個(gè)位置的時(shí)間(步驟S23)。即,根據(jù)時(shí)間信息將每個(gè)要素?cái)?shù)據(jù)布置在絕對(duì)時(shí)間位置上。特別是,該程序根據(jù)來(lái)自指示每個(gè)相對(duì)的時(shí)間位置的要素?cái)?shù)據(jù)的時(shí)間信息計(jì)算絕對(duì)時(shí)間。因此,由程序來(lái)確定每個(gè)要素?cái)?shù)據(jù)的時(shí)間(見(jiàn)圖3)。此外,程序根據(jù)演奏參數(shù)來(lái)校正每個(gè)要素?cái)?shù)據(jù)的值(步驟S24)。即,用程序校正選定的要素?cái)?shù)據(jù)和演奏參數(shù)之間的偏差。例如,樂(lè)譜注釋部分101B在硬起音音量(演奏參數(shù))剛設(shè)定為“95”后發(fā)送中音薩克斯正常起音[NormalAttack]模式。當(dāng)演奏風(fēng)格表內(nèi)包含在硬起音音量剛設(shè)定為“100”后的中音薩克斯正常起音[NormalAttack]模式時(shí),演奏合成部分101C選擇在硬起音音量剛設(shè)定為“100”后的中音薩克斯正常起音[NormalAttack]模式的要素?cái)?shù)據(jù)。然而,在硬起音后的瞬間音量保持在“100”。通過(guò)對(duì)選定要素?cái)?shù)據(jù)的典型點(diǎn)修正,可以將硬起音之后瞬間的音量修正到“95”。進(jìn)行該修正可以使選定的要素?cái)?shù)據(jù)值近似于演奏參數(shù)值。此外,可以按照預(yù)定的微調(diào)值(樂(lè)器調(diào)音)進(jìn)行修正,和按照樂(lè)器的音量變化特性進(jìn)行音量修正等。這些修正可以通過(guò)改變典型點(diǎn)值或各要素?cái)?shù)據(jù)來(lái)實(shí)現(xiàn)。典型點(diǎn)值可以有很大變化。即,典型點(diǎn)是必需的和足以進(jìn)行修正的數(shù)據(jù)。通過(guò)控制所述典型點(diǎn),可以進(jìn)行各種修正。
      上述步驟S23通過(guò)使用例如演奏參數(shù)等修正信息,修正由時(shí)間信息指示的時(shí)間位置。例如,根據(jù)音樂(lè)演奏數(shù)據(jù)得出的時(shí)間位置和用上述時(shí)間信息指示的時(shí)間位置之間可能有差異。在這種情況下,程序選擇的時(shí)間信息所指示的時(shí)間位置應(yīng)近似于根據(jù)音樂(lè)演奏數(shù)據(jù)得出的時(shí)間位置。程序根據(jù)音樂(lè)演奏數(shù)據(jù)修正所得到的時(shí)間位置信息。這樣便可以得到所希望的音樂(lè)演奏數(shù)據(jù)的時(shí)間位置信息。此外,音樂(lè)演奏數(shù)據(jù)可以包含如觸摸或速度等可變的控制因素。在這種情況下,可以根據(jù)音樂(lè)演奏數(shù)據(jù)并通過(guò)根據(jù)可變控制因素修正時(shí)間位置信息而對(duì)時(shí)間位置信息進(jìn)行可變控制。修正信息包括該時(shí)間位置的修正信息。
      此外,調(diào)節(jié)每個(gè)要素?cái)?shù)據(jù)以便進(jìn)行相鄰演奏風(fēng)格模式之間平滑連接的連接程序(步驟S25)。即,在連接前后演奏風(fēng)格模式時(shí)緊密連接各典型點(diǎn),而使前后演奏風(fēng)格模式的波形特性平滑的程序。對(duì)于諧波分量中的波形(音調(diào))、振幅、和定音各要素或非諧波分量中的波形(音調(diào))和振幅各要素而言,分別進(jìn)行這種連接或鏈接程序。
      這時(shí),從前一演奏風(fēng)格模式中的“鏈接開(kāi)始”到后一演奏風(fēng)格模式中的“鏈接結(jié)束”進(jìn)行調(diào)節(jié)。即,該程序根據(jù)“近似率”在從鏈接開(kāi)始”到“鏈接結(jié)束”的范圍內(nèi)調(diào)節(jié)典型點(diǎn)。所述“近似率”是控制近似量的參數(shù),它是指在前后演奏風(fēng)格模式之間形成連接時(shí)從它們中的一個(gè)得出的近似量。正如后面將要描述的那樣,近似率取決于前后演奏風(fēng)格模式的結(jié)合情況。當(dāng)前后演奏風(fēng)格模式相連時(shí),波形不會(huì)很好地連接。在這種情況下,使來(lái)自前后演奏風(fēng)格模式中任一模式的波形特性的矢量ID變薄,來(lái)實(shí)現(xiàn)平滑連接。為了實(shí)現(xiàn)這一跳躍,而設(shè)置了“演奏風(fēng)格模式結(jié)合表”、作為參照的“跳躍執(zhí)行參數(shù)范圍表”和作為參照的“跳躍時(shí)間表”。
      此外,借助于樂(lè)譜注釋部分101B中的以下鏈接程序可以將波形特征平滑地連接。例如,所述程序能不考慮演奏風(fēng)格模式,平滑地連接演奏參數(shù)中的間斷部分(動(dòng)態(tài)值、定音參數(shù)值等)。此外,在從顫音移到釋放的情況下,通常極早地將顫音減半音便可以實(shí)現(xiàn)平滑連接。
      下面將詳細(xì)討論上述鏈接程序。即,下面將簡(jiǎn)明地描述用于在前后演奏風(fēng)格模式之間進(jìn)行平滑連接的每個(gè)要素?cái)?shù)據(jù)的調(diào)節(jié)(參見(jiàn)步驟S25)。參見(jiàn)圖8,下面將說(shuō)明演奏風(fēng)格模式與振幅要素或定音要素對(duì)應(yīng)的情況的鏈接程序。
      由于在前后演奏風(fēng)格模式之間的鏈接程序中會(huì)出現(xiàn)間斷的典型點(diǎn)值,所以在前后演奏風(fēng)格模式之間的連接出現(xiàn)偏差。在這種情況下,需要首先確定作為指數(shù)的“近似率”,以確定前后演奏風(fēng)格模式達(dá)到該值時(shí)連接點(diǎn)目標(biāo)值應(yīng)當(dāng)近似。這時(shí),動(dòng)態(tài)連接點(diǎn)用作振幅,或定音連接點(diǎn)用作定音。在該實(shí)施例中,假設(shè)在圖8所示的表格中給出了近似率。例如,當(dāng)前面的演奏風(fēng)格模式的矢量ID為“3”,而后面的演奏風(fēng)格模式的矢量ID為“7”時(shí),從表中得出的“近似率”是“30”。根據(jù)選定的“近似率”,從前一演奏風(fēng)格模式的“鏈接開(kāi)始”到“演奏風(fēng)格模式結(jié)束”這一過(guò)程中的包絡(luò)線形狀逐漸轉(zhuǎn)向目標(biāo)值。此外,從后一演奏風(fēng)格模式的“鏈接結(jié)束”至“演奏風(fēng)格模式開(kāi)始”這一過(guò)程中的包絡(luò)線形狀逐漸轉(zhuǎn)向目標(biāo)值。例如,當(dāng)將“近似率”設(shè)定為“30”時(shí),前一演奏風(fēng)格模式的目標(biāo)值是“30”。前一演奏風(fēng)格模式近似于后一演奏風(fēng)格模式的“30%”。(在該實(shí)施例中,前一演奏風(fēng)格模式中的最后一個(gè)典型點(diǎn)下移了接近“30%”)。
      相反,前一演奏風(fēng)格模式近似于后一演奏模式的“70%”(100%-30%)。(在該實(shí)施例中,后一演奏風(fēng)格模式中的第一典型點(diǎn)上移了接近“70%”)。從鏈接開(kāi)始到鏈接結(jié)束,有多個(gè)典型點(diǎn)存在于前后演奏風(fēng)格模式內(nèi),并且近似上移和下移上述近似值。如上所述,在前后演奏風(fēng)格模式中的多個(gè)典型點(diǎn)上出現(xiàn)近似值??梢赃m當(dāng)設(shè)定鏈接的開(kāi)始和結(jié)束。優(yōu)選的是,將鏈接的開(kāi)始或結(jié)束設(shè)在與所期望的典型點(diǎn)相同的點(diǎn)上,以消除如圖中所示在鏈接開(kāi)始或結(jié)束時(shí)包絡(luò)線形狀出現(xiàn)彎形。即使是當(dāng)沒(méi)有將鏈接開(kāi)始或結(jié)束設(shè)在與所希望的典型點(diǎn)相同的點(diǎn)上時(shí),也顯然允許近似,這樣不會(huì)在包絡(luò)線形狀中出現(xiàn)彎形。
      確定“近似率”并不限于上述實(shí)例所述方法。例如,可以根據(jù)在連接點(diǎn)之前和之后給出的演奏參數(shù)來(lái)確定近似率。此外,可以根據(jù)產(chǎn)生演奏風(fēng)格ID或演奏參數(shù)之前的音樂(lè)演奏數(shù)據(jù)來(lái)確定近似率。另外,可以根據(jù)這些數(shù)據(jù)的結(jié)合來(lái)確定近似率。上述實(shí)例采用了以“近似率”為基礎(chǔ)的單一近似典型點(diǎn)。根據(jù)該近似量,其它典型點(diǎn)也近似適當(dāng)量。最好對(duì)多個(gè)典型點(diǎn)中的每個(gè)點(diǎn)確定各自的“近似率”并且根據(jù)每個(gè)“近似率”使多個(gè)典型點(diǎn)近似。
      下面,針對(duì)演奏風(fēng)格模式是波形(音調(diào))要素的情況描述其鏈接程序。圖9-12是表示當(dāng)演奏風(fēng)格模式是波形(音調(diào))要素時(shí)鏈接程序的示意圖。圖9是用于說(shuō)明當(dāng)將硬起音部分的波形連接到主體部分波形上時(shí)波形變薄的示意圖。圖10是說(shuō)明當(dāng)將主體部分的波形連接到釋放部分的波形上時(shí)波形變薄的示意圖。在圖9中,主體部分的波形包括5個(gè)環(huán)狀波形L1到L5,每個(gè)波形在特定的時(shí)間范圍內(nèi)以環(huán)狀的形式播放。同樣,圖10中主體部分的波形包括六個(gè)環(huán)狀波形L1’到L6’。
      有各種方法調(diào)節(jié)與波形有關(guān)(例如波形連接過(guò)程)的要素?cái)?shù)據(jù)。例如,局部減薄波形以便平滑連接例如硬起音部分或接合部分的演奏風(fēng)格模式和主體部分的演奏風(fēng)格模式(或主體部分與釋放部分或接合部分的演奏風(fēng)格模式之間的連接)的方法。對(duì)于波形之間的連接來(lái)說(shuō),平滑轉(zhuǎn)換是眾所周知的。然而,如圖9中所示,當(dāng)時(shí)間t離連接環(huán)狀波形L1的起始時(shí)間點(diǎn)較短時(shí),需要在較短的時(shí)間t內(nèi)快速進(jìn)行平滑轉(zhuǎn)換。即,快速的平滑轉(zhuǎn)換表示在要連接的波形之間的極短時(shí)間內(nèi)進(jìn)行的平滑轉(zhuǎn)換。進(jìn)行這樣的快速平滑轉(zhuǎn)換會(huì)導(dǎo)致產(chǎn)生很大噪音的波形。這是不可取的。
      為了避免快速的波形平滑轉(zhuǎn)換,可以跳過(guò)(刪除)一部分波形以加大要連接的波形之間的時(shí)間間隔。在這種情況下,硬起音部分、釋放部分或接合部分的波形將構(gòu)成一個(gè)方塊,以防止波形跳越。因此,環(huán)狀波形從主體部分跳過(guò)。在圖9和10中,環(huán)狀波形L1和L6’被跳過(guò)。這些波形用黑色方塊表示。例如,在圖9中,完成的是與連接時(shí)間點(diǎn)具有較長(zhǎng)時(shí)間差的第二環(huán)狀波形L2和硬起音部分波形中最后一個(gè)波形之間的平滑轉(zhuǎn)換。沒(méi)有使用第一環(huán)狀波L1。同樣,在圖10中,完成的是環(huán)狀波L5’和釋放部分波形之間的平滑轉(zhuǎn)換,其中沒(méi)有使用環(huán)狀波L6’。
      應(yīng)該注意到,接合部分采用的是在任何演奏風(fēng)格的聲音之間(或聲部之間)進(jìn)行連接的波形區(qū)。
      進(jìn)行波形跳越以使硬起音部分的演奏風(fēng)格模式和釋放部分或接合部分的演奏風(fēng)格模式之間形成平滑連接。圖11和12是說(shuō)明當(dāng)硬起音部分的波形與釋放部分的波形連接時(shí),產(chǎn)生波形跳越的示意圖。
      在這種情況下,波形可以從硬起音部分或釋放部分的演奏風(fēng)格模式跳越也可以不跳越。轉(zhuǎn)彎的硬起音部分是允許波形從相關(guān)演奏風(fēng)格模式跳越的硬起音部分的實(shí)例。第二半轉(zhuǎn)彎的硬起音部分包含幾個(gè)環(huán)狀波形。對(duì)于第一半包含幾個(gè)環(huán)狀波的釋放部分,波形跳越也是可行的。波形從能產(chǎn)生波形跳越部分的演奏風(fēng)格模式跳越。例如,當(dāng)將轉(zhuǎn)彎的硬起音部分連接到釋放部分時(shí),如圖11所示,從轉(zhuǎn)彎的硬起音部分一側(cè)跳過(guò)環(huán)狀波形。(圖11表示從轉(zhuǎn)彎的硬起音部分一側(cè)跳過(guò)用黑色方塊表示的一個(gè)環(huán)狀波形)。當(dāng)將正常的硬起音部分連接到具有環(huán)狀波形的釋放部分時(shí),如圖12所示,從釋放部分一側(cè)跳過(guò)環(huán)狀波形。(圖12表示從釋放部分一側(cè)跳過(guò)用黑色方塊表示的一個(gè)環(huán)狀波形)。
      待跳越的環(huán)狀波形實(shí)際上并不需要最靠近演奏風(fēng)格模式之間的接合部。即,不必是第一個(gè)或最后一個(gè)環(huán)狀波形。最好是根據(jù)給定的次序選擇需從多個(gè)環(huán)狀波形上跳過(guò)的環(huán)狀波形。
      如上所述,當(dāng)在演奏風(fēng)格模式的給定結(jié)合中不能在演奏風(fēng)格模式的范圍內(nèi)進(jìn)行成功連接時(shí),便可進(jìn)行波形跳越。為了實(shí)現(xiàn)所述跳越,而設(shè)置了例如“演奏風(fēng)格模式結(jié)合表”、作為參照的“跳越執(zhí)行參數(shù)范圍表”、和作為參照的“跳越時(shí)間表”。“演奏風(fēng)格模式結(jié)合表”根據(jù)要連接的前后演奏風(fēng)格模式的結(jié)合情況確定給定的參數(shù)?!疤綀?zhí)行參數(shù)范圍表”確定時(shí)間范圍以便完成相對(duì)于上述每個(gè)參數(shù)的跳越?!疤綍r(shí)間表”確定跳越時(shí)間。在連接時(shí)間點(diǎn)和第一個(gè)(或最后一個(gè))環(huán)狀波形L1(或L6’)之間存在時(shí)間差(圖9-12中的時(shí)間t)。當(dāng)該時(shí)間差短于參考跳越時(shí)間時(shí),將跳過(guò)相應(yīng)的環(huán)狀波形。
      參照?qǐng)D13,下面將描述當(dāng)演奏風(fēng)格模式具有較短的采樣時(shí)間而且當(dāng)該演奏風(fēng)格模式在啟動(dòng)之后先于另一個(gè)演奏風(fēng)格模式結(jié)束時(shí)所進(jìn)行的波形連接。在圖13中,波形(音調(diào))要素的的包流包括四個(gè)演奏風(fēng)格模式,即,在圖中從左到右按順序排列的A.薩克斯上彎硬起音[BendUpAttacl],A.薩克斯正常短音主體[NormalShortBody],A.薩克斯主體顫音[VibratoBody],A.薩克斯正常播放[NormalRelease]。每一個(gè)演奏風(fēng)格模式的采樣時(shí)間(持續(xù)時(shí)間)用“長(zhǎng)度”表示。在圖13中,上部所述“添加音符”和“斷開(kāi)音符”是MIDI數(shù)據(jù)的事件時(shí)間。在圖的中部,A.薩克斯上彎硬起音[BendUpAttacl]等表示各演奏風(fēng)格ID的產(chǎn)生時(shí)間。音符、跳動(dòng)、深度等表示各演奏參數(shù)的產(chǎn)生時(shí)間。
      A.薩克斯上彎硬起音[BendUpAttacl]模式從時(shí)間t0開(kāi)始。時(shí)間t1是在該模式內(nèi)添加音符的時(shí)間而且該時(shí)間應(yīng)當(dāng)對(duì)應(yīng)于指定的添加音符的時(shí)間。根據(jù)演奏參數(shù),例如上述音符、跳動(dòng)、深度等,來(lái)控制模式包流的內(nèi)容。A.薩克斯正常短音主體[NormalShortBody]模式從硬起音模式之后緊接的時(shí)間t2開(kāi)始。時(shí)間t3表示從接合部的中部開(kāi)始顫音演奏風(fēng)格的時(shí)間。該時(shí)間是根據(jù)例如設(shè)在歌曲數(shù)據(jù)中的顫音標(biāo)記的開(kāi)始時(shí)間確定的。時(shí)間t5表示在A.薩克斯正常播放[NormalRelease]模式中斷開(kāi)音符的時(shí)間,而且該時(shí)間應(yīng)當(dāng)對(duì)應(yīng)于指定的斷開(kāi)音符時(shí)間。因此,A.薩克斯正常播放[NormalRelease]開(kāi)始的時(shí)間t4是指定的。
      由于添加音符的事件發(fā)生在時(shí)間t1而中斷音符的事件發(fā)生在時(shí)間t5,所以,根據(jù)由包流產(chǎn)生的波形,實(shí)際的發(fā)聲時(shí)間范圍是從時(shí)間t1至?xí)r間t5。在這種包流的情況下,從時(shí)間t2到時(shí)間t4的時(shí)間周期與A.薩克斯正常播放[NormalRelease]模式和A.薩克斯主體顫音[VibratoBody]模式的總采樣時(shí)間常常不匹配。因此,需要適當(dāng)?shù)男拚詼y(cè)量。在這種情況下,通過(guò)反復(fù)運(yùn)行相同的演奏風(fēng)格模式,或通過(guò)改變演奏風(fēng)格模式的采樣時(shí)間或通過(guò)將兩種方法結(jié)合,將總的采樣時(shí)間調(diào)整到上述時(shí)間周期。用這種方式,可以將模式調(diào)整到可進(jìn)行波形連接。在上述實(shí)例中,反復(fù)運(yùn)行A.薩克斯正常播放[NormalShortBody]模式從而使之與后面的A.薩克斯主體顫音[VibratoBody]模式進(jìn)行波形連接。同樣,反復(fù)運(yùn)行A.薩克斯主體顫音[VibratoBody]模式,使之與后面的A.薩克斯正常播放[NormalRelease]模式進(jìn)行波形連接。
      如上所述,當(dāng)反復(fù)運(yùn)行演奏風(fēng)格模式進(jìn)行波形連接時(shí),將為反復(fù)運(yùn)行的演奏風(fēng)格模式提供不同的時(shí)間長(zhǎng)度。通過(guò)移動(dòng)A.薩克斯正常短音主體[NormalShortBody]模式或A.薩克斯主體顫音[VibratoBody]模式中的典型點(diǎn)可以對(duì)時(shí)間長(zhǎng)度進(jìn)行可變控制??梢酝ㄟ^(guò)合適的方法,例如改變構(gòu)成A.薩克斯正常短音主體[NormalShortBody]模式或A.薩克斯主體顫音[VibratoBody]模式的多個(gè)環(huán)狀波形之間的平滑轉(zhuǎn)換連接時(shí)間便可實(shí)現(xiàn)所述控制。通過(guò)設(shè)定可變的環(huán)數(shù)量和環(huán)的延續(xù)時(shí)間,環(huán)狀波形能較容易地實(shí)現(xiàn)對(duì)整個(gè)環(huán)狀播放波形時(shí)間長(zhǎng)度的可變控制。另一方面,在非環(huán)狀波形的情況下,并不能如此容易地可變控制其時(shí)間軸上現(xiàn)有的長(zhǎng)度。因此,如上所述,提供可變控制以便在環(huán)形讀取周期內(nèi)按照由非環(huán)狀波和環(huán)狀波構(gòu)成的聲波順序擴(kuò)展和收縮波形數(shù)據(jù)的時(shí)間軸。在整個(gè)發(fā)聲時(shí)間長(zhǎng)度提供可變控制的發(fā)明對(duì)簡(jiǎn)單地控制臨時(shí)擴(kuò)展和收縮是非常有益的。為此,建議使用早先由日本待審專利申請(qǐng)公開(kāi)號(hào)平成10-307586的申請(qǐng)人提出的“時(shí)間的延長(zhǎng)和壓縮”控制(TSC控制)。尤其是,該“TSC”控制是適用的,這是因?yàn)闀r(shí)間軸的長(zhǎng)度是針對(duì)與特定演奏風(fēng)格相應(yīng)的非環(huán)狀波形而變的。
      圖14示意性地示出了如此建立的包流的實(shí)例。在圖14中,從頂部到底部示出了在諧波分量中振幅要素、定音要素、和波形(音調(diào))要素等的包流,以及在非諧波分量中振幅要素和波形(音調(diào))要素的包流。黑色方塊表示諧波分量中振幅要素和定音要素的典型點(diǎn)以及非諧波分量中的振幅要素的典型點(diǎn)。連接這些點(diǎn)的曲線代表了由包含在包流之包內(nèi)的矢量ID表示的矢量形狀。白色的矩形L表示諧波分量和非諧波分量中波形(音調(diào))要素的環(huán)狀波形。另一個(gè)矩形NL表示非環(huán)狀波形。陰影表示的非環(huán)狀波形是特別有特點(diǎn)的一個(gè)波形。在該實(shí)施例中,用兩個(gè)矢量來(lái)構(gòu)筑正常起音(NormalAttack)模式中諧波分量和非諧波分量的每個(gè)波形(音調(diào))要素。用一個(gè)矢量來(lái)構(gòu)筑諧波分量的每個(gè)振幅要素和定音要素以及非諧波分量的振幅要素。
      在該實(shí)施例中,振幅要素和定音要素在波形(音調(diào))要素形成諧波分量或非諧波分量中非環(huán)狀波形的部分不包含矢量。然而,優(yōu)選通過(guò)在波形(音調(diào))要素形成非環(huán)狀波的部分向振幅要素和定音要素提供矢量來(lái)控制已產(chǎn)生的波形。在主體顫音(VibratoBody)模式中,用五個(gè)矢量來(lái)構(gòu)筑諧波分量中的波形(音調(diào))要素。用一個(gè)矢量構(gòu)筑諧波分量中的每一個(gè)振幅要素和定音要素,以及非諧波分量中的波形(音調(diào))要素和振幅要素。在此,將主體顫音VibratoBody重復(fù)三次。應(yīng)當(dāng)注意到,每一次重復(fù)使用不同的矢量形狀。這是因?yàn)橄鄬?duì)每次重復(fù)指定不同的演奏參數(shù)。按照不同的演奏參數(shù),選擇不同的要素?cái)?shù)據(jù),或完成不同程度的控制或時(shí)間軸的控制。在正常接合NormalJoint模式中,使用三個(gè)矢量來(lái)構(gòu)筑諧波分量和非諧波分量中的每個(gè)波形(音調(diào))要素。用兩個(gè)矢量來(lái)構(gòu)筑諧波分量中每個(gè)振幅要素和定音要素,以及非諧波分量中的振幅要素。省略關(guān)于正常主體NormalBody模式的描述。
      如上所述,演奏合成部分101C產(chǎn)生適合每個(gè)諧波分量和非諧波分量的包流。這些包流中的每一個(gè)都由多個(gè)包構(gòu)成。每個(gè)包都含有包的矢量ID和時(shí)間信息。此外,所述包中含有在諧波分量中的振幅要素和定音要素以及非諧波分量中的振幅要素的情況下為每個(gè)典型點(diǎn)設(shè)定的數(shù)值。當(dāng)然,本發(fā)明并不限于此。本發(fā)明優(yōu)選的是提供除矢量ID和包的時(shí)間信息之外的其它信息。根據(jù)每個(gè)包的內(nèi)容,為每個(gè)分量構(gòu)筑包流。包流包含多個(gè)包和與每個(gè)包有關(guān)的時(shí)間信息(啟動(dòng)時(shí)間)。
      顯然,包流的數(shù)量等可以按照樂(lè)器的類型而不同。
      3.4波形合成部分101D3.4.1波形合成部分101D的所有操作波形合成部分101D根據(jù)從演奏合成部分101C提供的每個(gè)分量的包流(包含矢量ID、時(shí)間信息、修正信息等多個(gè)包的序列)進(jìn)行波形合成。圖15是用于解釋波形合成部分101D內(nèi)工作情況的完整結(jié)構(gòu)示意圖。圖16-19、22和23詳細(xì)地表示波形合成部分101Dk的每個(gè)操作。圖16是簡(jiǎn)要表示波形合成所有流程的方框圖。圖17是用于解釋矢量加載器的方框圖。圖18是用于解釋矢量操作器的方框圖。圖19是用于解釋矢量解碼器的方框圖。圖22表示把包從演奏合成部分101C送到波形合成部分101Dr時(shí)間。圖23是用于解釋高速緩存控制部分40的方框圖。
      在圖15中,演奏合成部分(發(fā)音器)101C建立適合每個(gè)分量要素的包流。然后,對(duì)應(yīng)于包基上的每個(gè)分量要素,將包流依次輸入到設(shè)在波形合成部分101D內(nèi)的指定包隊(duì)列緩沖器21-25中(即,輸入到包的單元中)。輸入的包存儲(chǔ)在包隊(duì)列緩沖器21-25中并且按指定的順序依次發(fā)送到矢量加載器20上。矢量加載器20使包中的矢量ID定位并通過(guò)高速緩存控制部分40從代碼本26中讀取(加載)與所述矢量ID相應(yīng)的原始矢量數(shù)據(jù)。將讀出的矢量數(shù)據(jù)發(fā)送到指定的矢量解碼器31-35。這些矢量解碼器是對(duì)應(yīng)于每個(gè)分量要素設(shè)置的并且產(chǎn)生適合每個(gè)分量要素的波形。
      此外,矢量解碼器31-35對(duì)在矢量解碼器31-35之間產(chǎn)生的適合每個(gè)分量元素的波形進(jìn)行波形合成并產(chǎn)生適合每個(gè)分量(諧波分量和非諧波分量)的波形。將針對(duì)每個(gè)分量產(chǎn)生的波形發(fā)送到混合器38。除了把包的輸入輸入到包隊(duì)列緩沖器21-25之外,演奏合成部分(發(fā)音器)101C進(jìn)行諸如包流管理等各種控制和針對(duì)波形合成部分101D的播放控制。包流管理涉及產(chǎn)生或刪除單個(gè)矢量數(shù)據(jù)或在矢量數(shù)據(jù)之間進(jìn)行連接。播放控制對(duì)產(chǎn)生理想波形、或播放或中斷所產(chǎn)生的理想波形起著重要作用。
      如上所述,順序地向矢量加載器20提供構(gòu)成包流的多個(gè)包,,所述包流存儲(chǔ)在包隊(duì)列緩沖器21中。根據(jù)每個(gè)包中的矢量ID,矢量加載器20通過(guò)高速緩存控制部分40從代碼本26中讀取與所述矢量ID相對(duì)應(yīng)的矢量數(shù)據(jù)。矢量加載器20隨后將讀取的矢量數(shù)據(jù)發(fā)送到矢量解碼器31(參照?qǐng)D16)。此時(shí),已讀出的每個(gè)包可以包含修正信息(例如與典型點(diǎn)有關(guān)的修正信息)。在這種情況下,矢量加載器20根據(jù)修正信息改變讀出的原始矢量數(shù)據(jù)。把經(jīng)改變的矢量數(shù)據(jù)稱之為不同于原始矢量數(shù)據(jù)的矢量信息數(shù)據(jù)。矢量加載器20把帶有矢量信息數(shù)據(jù)的包以信息的形式輸出到矢量解碼器31-35。將所述包稱為與從演奏合成部分101C輸入的包不同的矢量包。用這種方式,矢量加載器20根據(jù)演奏合成部分(發(fā)音器)101C輸入的包矢量ID從代碼本26中讀取原始矢量數(shù)據(jù)。需要時(shí),矢量加載器20根據(jù)修正信息修正矢量數(shù)據(jù)并且將矢量包傳送到矢量解碼器31-35(參見(jiàn)圖17)。存在各種與矢量數(shù)據(jù)典型點(diǎn)有關(guān)的修正信息,例如根據(jù)隨機(jī)數(shù)來(lái)改變時(shí)間信息的修正信息。
      如圖18所示,矢量解碼器31-35控制各操作器的操作,例如,啟動(dòng)或關(guān)掉矢量操作器以便處理輸入的矢量包,控制矢量操作器之間的連接或同步,控制時(shí)間,針對(duì)來(lái)自其他矢量ID流的每個(gè)矢量操作器輸入設(shè)定參數(shù)轉(zhuǎn)換等。矢量操作器36和37讀取矢量信息數(shù)據(jù),控制讀取矢量信息數(shù)據(jù)的位置(速度輸入),控制增益(增益輸入)等。在矢量解碼器31-35中控制矢量操作器36和37定義的各種參數(shù)。設(shè)置矢量解碼器31-35使之對(duì)應(yīng)于每個(gè)分量要素。相應(yīng)的矢量解碼器31-35從矢量包中讀取矢量信息數(shù)據(jù)并按時(shí)間順序產(chǎn)生所需的波形。
      如圖19所示,例如,矢量解碼器31產(chǎn)生適合諧波分量中振幅要素的包絡(luò)波形。矢量解碼器32產(chǎn)生適合諧波分量中定音要素的包絡(luò)波形。矢量解碼器33產(chǎn)生適合諧波分量中波形(音調(diào))要素的包絡(luò)波形。矢量解碼器34產(chǎn)生適合非諧波分量中振幅要素的包絡(luò)波形。矢量解碼器35產(chǎn)生適合非諧波分量中波形(音調(diào))要素的包絡(luò)波形。矢量解碼器33產(chǎn)生的諧波分量波形帶有諧波分量中振幅要素的包絡(luò)波形和諧波分量中定音要素的包絡(luò)波形。這些包絡(luò)波形在矢量解碼器31和32中產(chǎn)生。矢量解碼器33隨后向混合器38輸出產(chǎn)生的波形。即,象增益控制(增益輸入)的矢量操作器那樣,向矢量解碼器33提供諧波分量中振幅要素的包絡(luò)波形。象控制矢量信息數(shù)據(jù)讀取位置(速度輸入)的矢量操作器那樣,提供適合諧波分量中定音要素的包絡(luò)波形。矢量解碼器35產(chǎn)生的非諧波分量波形還有非諧波分量中振幅要素的包絡(luò)波形。該包絡(luò)波形在矢量解碼器34中產(chǎn)生。矢量解碼器35隨后向混合器38輸出產(chǎn)生的波形。即,向矢量解碼器35提供非諧波分量中振幅要素的包絡(luò)波形作為增益控制(增益輸入)的控制命令。
      當(dāng)在每個(gè)分量和要素中按時(shí)間順序產(chǎn)生波形時(shí),矢量解碼器31-35使波形形成時(shí)的波形同步。例如,當(dāng)輸入波形(音調(diào))要素的矢量包和振幅要素的矢量包時(shí),根據(jù)以波形(音調(diào))要素的矢量包為基礎(chǔ)的波形產(chǎn)生時(shí)間并與之同步地產(chǎn)生以振幅要素的矢量包為基礎(chǔ)的振幅波形。該振幅波形控制以波形(音調(diào))要素矢量包為基礎(chǔ)產(chǎn)生的波形的振幅。當(dāng)輸入波形(音調(diào))要素的矢量包和定音要素的矢量包時(shí),根據(jù)以波形(音調(diào))要素矢量包為基礎(chǔ)產(chǎn)生波形的時(shí)間并與之同步地產(chǎn)生以定音要素的矢量包為基礎(chǔ)的定音要素。
      定音波形控制以波形(音調(diào))要素矢量包為基礎(chǔ)產(chǎn)生的波形的定音。當(dāng)輸入諧波分量中波形(音調(diào))要素的矢量包和非諧波分中波形(音調(diào))要素的矢量包時(shí),根據(jù)以諧波分量中波形(音調(diào))要素的矢量包為基礎(chǔ)的諧波分量合成時(shí)間并與之同步地合成以非諧波分量中波形(音調(diào))要素的矢量包為基礎(chǔ)的非諧波分量。通過(guò)將合成的諧波分量和非諧波分量波形混合可產(chǎn)生理想的音樂(lè)波形。
      可以將該實(shí)施例設(shè)計(jì)成在諧波分量和非諧波分量之間選擇同步或不同步。只有當(dāng)選擇同步時(shí),才可以優(yōu)選根據(jù)以上述諧波分量中波形(音調(diào))要素矢量包為基礎(chǔ)產(chǎn)生的諧波分量波形合成時(shí)間,并與之同步地合成以非諧波分量中波形(音調(diào))要素矢量包為基礎(chǔ)產(chǎn)生的非諧波分量波形。
      如上所述,包流包括多個(gè)包。在矢量包包流的情況下,每個(gè)包都包含矢量數(shù)據(jù)。即,包流包括沿臨時(shí)方向布置的矢量數(shù)據(jù)。根據(jù)振幅、定音、和波形(音調(diào))要素,矢量數(shù)據(jù)包含不同的數(shù)據(jù)結(jié)構(gòu)和含義。然而,從矢量操作器36和37的角度看,矢量數(shù)據(jù)基本上相同。
      3.4.2矢量數(shù)據(jù)結(jié)構(gòu)圖20是矢量數(shù)據(jù)結(jié)構(gòu)的實(shí)施例示意圖。例如,用單位(SEC)表示讀取矢量數(shù)據(jù)的位置。當(dāng)假定讀取速度不變時(shí),矢量數(shù)據(jù)上的一個(gè)采樣值與輸出波形的一個(gè)采樣值匹配。用單位1/1200(音程)(取2的n次方)表示讀取速度。冪n=0意味著速度不變。冪n=1.0意味著速度加倍,例如,波形(音調(diào))要素高八度。冪n=-1.0意味著速度減半,例如,波形(音調(diào))要素低八度(參見(jiàn)圖20中的上圖)。代碼本26存儲(chǔ)實(shí)際的矢量數(shù)據(jù)。例如,振幅要素或定音要素的矢量數(shù)據(jù)包括陣列式矢量點(diǎn)(VECTORPOINT)結(jié)構(gòu)和典型點(diǎn)數(shù)據(jù)。
      陣列式矢量點(diǎn)(VECTORPOINT)結(jié)構(gòu)包含采樣位置和按序排列的每個(gè)點(diǎn)值。例如,用單位(db)表示振幅要素的矢量數(shù)據(jù)值。當(dāng)假設(shè)編號(hào)為0的MIDI音符是0.0時(shí),用單位1/1200(音程)表示定音要素的矢量數(shù)據(jù)值。典型點(diǎn)數(shù)據(jù)是DWORD陣列并存儲(chǔ)了作為典型點(diǎn)使用的陣列式矢量點(diǎn)(VECTORPOINT)結(jié)構(gòu)的指數(shù)(參見(jiàn)圖20中的下圖)。顯然,本發(fā)明并不限于上述實(shí)例。
      3.4.3高速緩存控制部分40的細(xì)節(jié)(1)高速緩存控制部分40的整體結(jié)構(gòu)該部分參照?qǐng)D23描述了高速緩存控制部分40的整體結(jié)構(gòu)。首先描述的是設(shè)置該高速緩存控制部分40的目的。由于硬盤(pán)109中存儲(chǔ)著代碼本26,所以可從硬盤(pán)109中讀取矢量解碼器31-35所需的矢量數(shù)據(jù)。然而,硬盤(pán)等提供的存取速度即慢又不穩(wěn)定。因此不能在矢量解碼器31-35處理相關(guān)矢量數(shù)據(jù)時(shí)及時(shí)讀出矢量數(shù)據(jù)。作為一種方案,本實(shí)施例在波形合成部分101D設(shè)置了高速緩存部分40以便將待用(或是預(yù)計(jì)將使用的)的矢量數(shù)據(jù)加載到高速緩沖存儲(chǔ)器中。
      在圖23中,參考標(biāo)記42表示預(yù)取部分。預(yù)取部分從演奏合成部分101C送到波形合成部分101D的包中抽取矢量ID。預(yù)取部分對(duì)硬盤(pán)109提供讀取控制,以便使預(yù)取矢量數(shù)據(jù)與來(lái)自代碼本26的矢量ID相關(guān)聯(lián)。如上所述,這些包在包隊(duì)列緩沖器21中構(gòu)成包流,并且由矢量加載器20讀取。同時(shí),進(jìn)行預(yù)取處理。
      參考標(biāo)記41表示預(yù)測(cè)控制部分。預(yù)測(cè)控制部分根據(jù)從樂(lè)譜注釋部分101B提供的預(yù)測(cè)數(shù)據(jù)(程序改變等)和從預(yù)取部分42提供的預(yù)測(cè)條件來(lái)預(yù)測(cè)具有極高實(shí)用性的矢量數(shù)據(jù)。預(yù)測(cè)控制部分隨后向預(yù)取部分42提供與預(yù)測(cè)的矢量數(shù)據(jù)有關(guān)的矢量ID。因此,供給預(yù)取部分42的矢量ID可以包含那些與舍去的矢量數(shù)據(jù)有關(guān)的數(shù)據(jù),所述舍去的矢量數(shù)據(jù)在將來(lái)可以不實(shí)際使用。在此,“預(yù)測(cè)條件”包括確定將要使用的矢量ID等(即,從演奏合成部分101C提供的矢量ID)。用這種方式,演奏合成部分和預(yù)測(cè)控制部分41將矢量ID送給預(yù)取部分42。預(yù)取部分42預(yù)取與兩個(gè)矢量ID相關(guān)的矢量數(shù)據(jù),同時(shí)按優(yōu)先序排列確定將要使用的矢量數(shù)據(jù)負(fù)載(即,由演奏合成部分101C確定的矢量數(shù)據(jù)負(fù)載)。在下文中,把確定將要使用的加載矢量數(shù)據(jù)稱為“指定的負(fù)載”;把不是確定要使用的加載矢量數(shù)據(jù)(只是預(yù)測(cè)將會(huì)使用)稱為“預(yù)測(cè)負(fù)載”。參考標(biāo)記44表示存儲(chǔ)預(yù)取矢量數(shù)據(jù)的高速緩沖存儲(chǔ)器。參考標(biāo)記43表示讀取控制部分。當(dāng)從矢量加載器20接收矢量ID時(shí),讀取控制部分主要從高速緩沖存儲(chǔ)器44中讀取與該矢量ID相應(yīng)的矢量數(shù)據(jù),并將該矢量數(shù)據(jù)送到矢量加載器20。參考標(biāo)記45表示時(shí)間控制部分,其為預(yù)取等提供時(shí)間控制。
      (2)預(yù)測(cè)控制部分41的操作下面將參照?qǐng)D24中的狀態(tài)轉(zhuǎn)換圖描述預(yù)測(cè)控制部分41中的處理內(nèi)容。預(yù)測(cè)控制部分41的狀態(tài)取決于波形合成是否發(fā)生在矢量解碼器31-35中,并且當(dāng)進(jìn)行合成,根據(jù)進(jìn)行合成的模式來(lái)合成波形。最初時(shí),在矢量解碼器31-35中沒(méi)有進(jìn)行波形合成。預(yù)測(cè)控制部分41完成步驟S30的程序。在此,程序預(yù)測(cè)硬起音部分中的候選矢量數(shù)據(jù)。預(yù)測(cè)的矢量ID依次送到預(yù)取部分42。然而,在步驟S30,并不預(yù)測(cè)硬起音部分,除非樂(lè)譜表演部分101B提供作為預(yù)測(cè)數(shù)據(jù)的“程序變化”。這是因?yàn)椴淮_定的程序變化會(huì)產(chǎn)生大量用于指定硬起音部分的矢量數(shù)據(jù)。在初始狀態(tài)下,當(dāng)從樂(lè)譜注釋部分101B提供變化的程序時(shí),預(yù)測(cè)控制部分瞬時(shí)啟動(dòng)適合硬起音部分的矢量數(shù)據(jù)預(yù)測(cè)負(fù)載,所述硬起音部分對(duì)應(yīng)于所述程序變化。
      例如,假設(shè)指定“鋼琴”作為變化的程序并且有100種適合硬起音部分的矢量數(shù)據(jù)與“鋼琴”有關(guān)。在這種情況下,預(yù)測(cè)控制部分啟動(dòng)100種矢量數(shù)據(jù)的預(yù)測(cè)負(fù)載。當(dāng)一個(gè)包滿足硬起音部分時(shí),矢量加載器20和矢量解碼器31-35啟動(dòng)硬起音部分的波形合成程序。這時(shí),預(yù)測(cè)控制部分41的狀態(tài)移到步驟S31。
      在步驟S31,在設(shè)定的硬起音部分矢量ID的基礎(chǔ)上,根據(jù)主體部分的候選矢量數(shù)據(jù)進(jìn)行預(yù)測(cè)加載。由于硬起音部分的定音是已知的,所以需限制候選的矢量數(shù)據(jù),使之與硬音部分的定音相適應(yīng)。將矢量數(shù)據(jù)還限制到適合與設(shè)定的硬起音部分的包絡(luò)波形對(duì)應(yīng)的主體部分的范圍內(nèi)。在步驟S31,預(yù)測(cè)控制部分根據(jù)這些條件預(yù)測(cè)性地加載縮小了的候選數(shù)據(jù)。在此,演奏合成部分101C實(shí)際上提供主體部分的包。當(dāng)設(shè)定了主體部分的包時(shí),預(yù)測(cè)控制部分41的狀態(tài)轉(zhuǎn)向步驟S33。
      在步驟S33,預(yù)測(cè)控制部分根據(jù)設(shè)定的主體部分的矢量ID,預(yù)測(cè)性地加載下一矢量數(shù)據(jù)的候選數(shù)據(jù)。如上所述,與主體部分有關(guān)的模式是其他主體部分、接合部分、或釋放部分之一。因此,預(yù)測(cè)控制部分41預(yù)測(cè)性加載這些矢量數(shù)據(jù)。用與步驟S31同樣的方式,根據(jù)設(shè)定的主體部分的定音、包絡(luò)波形等使將要預(yù)測(cè)性加載的候選矢量數(shù)據(jù)縮小。
      當(dāng)演奏合成部分101C在執(zhí)行步驟S33期間實(shí)際上傳送包時(shí),預(yù)測(cè)控制部分41的狀態(tài)隨所述包而變化。當(dāng)提供的包與主體部分相關(guān)時(shí),將保持步驟S33的狀態(tài)。在該主體部分的基礎(chǔ)上,針對(duì)其他主體部分、接合部分、或釋放部分再度執(zhí)行預(yù)測(cè)加載。當(dāng)提供的包與接合部分相關(guān)時(shí),預(yù)測(cè)控制部分41的狀態(tài)轉(zhuǎn)移到步驟S32。
      在步驟S32,預(yù)測(cè)控制部分預(yù)測(cè)性地加載適合主體部分的矢量數(shù)據(jù)。預(yù)測(cè)性加載的候選矢量數(shù)據(jù)使可能連接到固定接合部分的主體部分之矢量數(shù)據(jù)變窄。當(dāng)演奏合成部分101C提供與下一個(gè)主體部分相關(guān)的包時(shí),預(yù)測(cè)控制部分41的狀態(tài)轉(zhuǎn)向步驟S33以便預(yù)測(cè)性地加載其他主體部分、接合部分、或釋放部分的矢量數(shù)據(jù)。當(dāng)演奏合成部分101C提供適合釋放部分的包時(shí),預(yù)測(cè)控制部分41的狀態(tài)轉(zhuǎn)向步驟S30。
      如上所述,在步驟S30,預(yù)測(cè)控制部分預(yù)測(cè)性地加載硬起音部分的候選矢量數(shù)據(jù)。當(dāng)已確定了前一釋放部分的定音時(shí),隨后的硬起音部分的定音很有可能并不明顯偏離。在合成釋放部分期間,優(yōu)選限制將要預(yù)測(cè)性地加載到釋放部分定音附近的硬起音部分的矢量數(shù)據(jù)(例如,在±1個(gè)八度音的范圍內(nèi))。
      (3)預(yù)取部分42的操作(3.1)加載程序(圖25)下面將描述預(yù)取部分42的操作。首先,預(yù)取部分42在特定的周期執(zhí)行圖25的加載程序。當(dāng)程序進(jìn)入圖中的步驟S41時(shí),將判斷是否接收目前不執(zhí)行的指定加載請(qǐng)求。如果判斷的結(jié)果是YES,程序?qū)⑥D(zhuǎn)向步驟S42并完成請(qǐng)求矢量數(shù)據(jù)的指定加載。在給定的讀取時(shí)間過(guò)后,從硬盤(pán)109中讀出這些矢量數(shù)據(jù)并將其存儲(chǔ)到高速緩沖存儲(chǔ)器44中。
      當(dāng)步驟S41的判斷結(jié)果是NO時(shí),程序轉(zhuǎn)入步驟S43并完成預(yù)測(cè)加載。對(duì)于為預(yù)測(cè)加載而請(qǐng)求的矢量數(shù)據(jù),程序需檢測(cè)將讀取命令發(fā)送到高速緩沖存儲(chǔ)器44的矢量數(shù)據(jù)(按照其它加載請(qǐng)求已經(jīng)加載到高速緩沖存儲(chǔ)器44中的矢量數(shù)據(jù)和計(jì)劃加載的矢量數(shù)據(jù));和不向硬盤(pán)109發(fā)送讀取命令的矢量數(shù)據(jù)。向硬盤(pán)109提供的是讀取后者的命令。當(dāng)需要預(yù)測(cè)性地加載很多矢量數(shù)據(jù)時(shí),可在預(yù)測(cè)加載的中期將該程序再次調(diào)入。在這種情況下,只要請(qǐng)求的指定加載生效,相關(guān)的預(yù)測(cè)加載將中斷并且通過(guò)步驟S42完成指定加載。在預(yù)取部分42中,指定加載在預(yù)測(cè)加載前進(jìn)行。
      (3.2)包接收程序(圖26)每當(dāng)演奏合成部分101C傳送包時(shí),預(yù)取部分42便執(zhí)行圖26中的包接收程序。當(dāng)程序進(jìn)入圖中的步驟S51時(shí),將從提供的包中抽取矢量ID以判斷是否命中了與該矢量ID對(duì)應(yīng)的矢量數(shù)據(jù)。在此,在以下情況下可以應(yīng)用“擊中的矢量數(shù)據(jù)”(1)當(dāng)已預(yù)測(cè)性加載到高速緩沖存儲(chǔ)器44中的這些矢量數(shù)據(jù)中的任何矢量數(shù)據(jù)被擊出時(shí),(2)當(dāng)矢量數(shù)據(jù)目前并沒(méi)加載到高速緩沖存儲(chǔ)器44中但是已計(jì)劃作為預(yù)測(cè)加載時(shí),或(3)一旦可以使用加載的和可用的矢量數(shù)據(jù)(使用狀態(tài))時(shí)。
      在本實(shí)施例中,所用矢量數(shù)據(jù)并不立即釋放,而是暫時(shí)保持在高速緩沖存儲(chǔ)器44中作為處在“使USED狀態(tài)”的矢量數(shù)據(jù)。在例如存儲(chǔ)容量太小以致于不能存儲(chǔ)其他矢量數(shù)據(jù)時(shí),釋放使用(USED)狀態(tài)矢量數(shù)據(jù)區(qū)以便存儲(chǔ)新的矢量數(shù)據(jù)。細(xì)節(jié)將在下面描述。
      當(dāng)沒(méi)有擊中矢量數(shù)據(jù)時(shí),步驟S51的判斷結(jié)果是NO。程序轉(zhuǎn)入步驟S53。此時(shí),將產(chǎn)生指定的加載請(qǐng)求,該請(qǐng)求對(duì)應(yīng)于包含在上述包內(nèi)的矢量ID。當(dāng)緊接著執(zhí)行包接收程序(圖26)時(shí),完成適合該矢量數(shù)據(jù)的指定加載。
      當(dāng)出現(xiàn)擊中的矢量數(shù)據(jù)時(shí),步驟S51的判斷結(jié)果是YES。程序轉(zhuǎn)入步驟S52。如果沒(méi)有完成該矢量數(shù)據(jù)的預(yù)測(cè)加載,預(yù)測(cè)加載請(qǐng)求將變?yōu)橹付虞d請(qǐng)求。這是因?yàn)?,?dāng)執(zhí)行接續(xù)包接收程序時(shí),將優(yōu)先加載所述矢量數(shù)據(jù)。當(dāng)程序轉(zhuǎn)向步驟S54時(shí),程序把特定加載請(qǐng)求的矢量數(shù)據(jù)句柄(handle)返回到演奏合成部分101C。這個(gè)句柄唯一地對(duì)應(yīng)于每個(gè)矢量數(shù)據(jù)。當(dāng)已經(jīng)把特定加載請(qǐng)求的矢量數(shù)據(jù)存儲(chǔ)到高速緩沖存儲(chǔ)器44中時(shí),使所述矢量數(shù)據(jù)的句柄返回。此外,產(chǎn)生新的句柄并將使返回到演奏合成部分101C。
      當(dāng)程序轉(zhuǎn)向步驟S55時(shí),程序?qū)⑷∠A(yù)測(cè)的加載請(qǐng)求,該預(yù)測(cè)的加載請(qǐng)求是在先前出現(xiàn)的和不成功的。下面將描述“消除”的特定內(nèi)容。當(dāng)程序轉(zhuǎn)入步驟S56時(shí),程序?qū)⒏淖冾A(yù)測(cè)控制部分41中的預(yù)測(cè)條件。即,程序使圖24中每種狀態(tài)下的候選預(yù)測(cè)加載變窄或根據(jù)由演奏合成部分101C提供的包改變預(yù)測(cè)控制部分41的狀態(tài)。
      從演奏合成部分101C的角度看,該包接收程序相當(dāng)于圖28中的“發(fā)出矢量(GetVector)命令”。即,演奏合成部分101C向波形合成部分101D提供包。該操作剛好等同于根據(jù)包含在包內(nèi)的矢量ID發(fā)送“發(fā)出矢量數(shù)據(jù)”的GetVector命令。必須在矢量加載器20隨后讀出矢量數(shù)據(jù)之前準(zhǔn)備該矢量數(shù)據(jù)。從這一點(diǎn)上看,指定所期望的矢量數(shù)據(jù)需要不多的句柄。
      (4)高速緩沖存儲(chǔ)器44中的數(shù)據(jù)結(jié)構(gòu)(4.1)高速緩存頁(yè)面(圖27)高速緩沖存儲(chǔ)器44可以存儲(chǔ)將要同時(shí)使用的矢量數(shù)據(jù)。這些矢量數(shù)據(jù)構(gòu)成包并且轉(zhuǎn)換成一個(gè)文件(或少于或等于矢量數(shù)據(jù)總量的多個(gè)文件)。轉(zhuǎn)換是根據(jù)用戶的指令或建立的歌曲數(shù)據(jù)在音樂(lè)演奏之前自動(dòng)執(zhí)行的。圖27中示出了一個(gè)實(shí)例。在圖27中,對(duì)從代碼本26中讀出的某些矢量數(shù)據(jù)進(jìn)行指定加載。這些矢量數(shù)據(jù)包括時(shí)間信息。因此,可以抽取多個(gè)將要同時(shí)使用的矢量數(shù)據(jù)。從代碼本中讀出的矢量數(shù)據(jù)包含各自的標(biāo)題。例如,把將要同時(shí)使用的矢量數(shù)據(jù)收集在一個(gè)文件中。給該文件起一個(gè)命令標(biāo)題。這樣能夠縮短矢量加載器20存取每個(gè)矢量數(shù)據(jù)的時(shí)間。
      該文件標(biāo)題包含以下信息。
      數(shù)據(jù)ID存儲(chǔ)識(shí)別文件類型用的4位識(shí)別字符“PACK”。
      數(shù)據(jù)量表示文件數(shù)據(jù)量。
      VQ類型表示存儲(chǔ)的矢量數(shù)據(jù)類型。
      版本表示文件格式的版本。
      按照本實(shí)施例,在個(gè)人計(jì)算機(jī)上運(yùn)行的應(yīng)用程序發(fā)揮波形發(fā)生器的作用。系統(tǒng)存儲(chǔ)器包含其高速緩沖存儲(chǔ)器。當(dāng)高速緩存矢量數(shù)據(jù)時(shí),根據(jù)具有特定尺寸的高速緩存頁(yè)面,而不根據(jù)單個(gè)矢量數(shù)據(jù)(具有自由尺寸)實(shí)施高速緩存控制。即,將單個(gè)高速緩存數(shù)據(jù)分成多個(gè)高速緩存頁(yè)面,并且,將其高速緩存,以便在高速緩存頁(yè)面單元內(nèi)進(jìn)行管理。系統(tǒng)存儲(chǔ)器存儲(chǔ)對(duì)應(yīng)于每個(gè)高速緩存頁(yè)面的高速緩存管理數(shù)據(jù)(頁(yè)面標(biāo)題)。即,硬盤(pán)根據(jù)尺寸固定的群集存儲(chǔ)數(shù)據(jù)。高速緩存頁(yè)面尺寸優(yōu)選與群集尺寸或是該尺寸的整數(shù)倍相同。考慮到矢量數(shù)據(jù)的尺寸等,合適的是將高速緩存頁(yè)面尺寸設(shè)定為1-1萬(wàn)個(gè)字節(jié)。
      (4.2)頁(yè)面標(biāo)題的數(shù)據(jù)結(jié)構(gòu)下面將描述供給每個(gè)高速緩存頁(yè)面的標(biāo)題數(shù)據(jù)結(jié)構(gòu)。每個(gè)標(biāo)題包括具有以下成員的的VDDLCSPAGE結(jié)構(gòu)。
      dwPage為高速緩存頁(yè)面指定的專用頁(yè)號(hào)。
      dwID該高速緩存頁(yè)面內(nèi)包含的矢量數(shù)據(jù)的矢量ID。
      dwSize該高速緩存頁(yè)面的數(shù)據(jù)尺寸。
      dwCount表示預(yù)取的數(shù)目。每當(dāng)指定負(fù)載預(yù)取矢量數(shù)據(jù)時(shí),該成員dwCount將遞增“1”,而且每當(dāng)矢量加載器20讀取矢量數(shù)據(jù)時(shí),該成員dwCoun將遞減“1”。
      dwStatus表示高速緩存頁(yè)面的狀態(tài)。高速緩存頁(yè)面的狀態(tài)是FREE、ALLOCATED、USED、FILLED和LOCKED之一。
      lpBuf表示矢量數(shù)據(jù)實(shí)體(非標(biāo)題部分)在高速緩頁(yè)面中的起始地址。
      lpForward/lpBackward在本實(shí)施例中,多個(gè)VDDLCSPAGE結(jié)構(gòu)形成了雙向鏈接表。成員lpForward是一個(gè)可有效指向鏈路前方其它VDDLCSPAGE結(jié)構(gòu)的指示字。成員lpBackward是一個(gè)可有效指向鏈路后方其它VDDLCSPAGE結(jié)構(gòu)的指示字。
      lpNext如上所述,例如,波形發(fā)生器可以設(shè)置在專用硬件上。在這種情況下,把將要同時(shí)使用的多個(gè)矢量數(shù)據(jù)分成多個(gè)高速緩存頁(yè)面。這些高速緩存頁(yè)面形成“組”。成員lpNext是一個(gè)連續(xù)指示屬于同一組的其它VDDLCSPAGE結(jié)構(gòu)的指示字。
      上述成員dwCount具有以下作用。當(dāng)包流序列中的同一矢量數(shù)據(jù)被使用兩次時(shí),將出現(xiàn)兩次針對(duì)該矢量數(shù)據(jù)的指定加載請(qǐng)求。然而,當(dāng)矢量加載器20首次讀取矢量數(shù)據(jù)時(shí),相應(yīng)的高速緩存頁(yè)面將設(shè)定為USED狀態(tài),從而不能進(jìn)行第二次讀取。這個(gè)問(wèn)題的解決方式是對(duì)應(yīng)能連續(xù)讀取高速緩存頁(yè)面的次數(shù)進(jìn)行計(jì)數(shù)。
      所以,如下所述,可以多次地使用矢量數(shù)據(jù)。即,在同一事件數(shù)據(jù)或多個(gè)事件數(shù)據(jù)的波形合成過(guò)程中,可以多次地使用同一矢量數(shù)據(jù)。在任一情況下,本實(shí)施例均使用成員dwCount來(lái)判斷矢量數(shù)據(jù)的使用次數(shù),從而能夠均勻地處理高速緩沖存儲(chǔ)器44中的高速緩存頁(yè)面。
      (4.3)頁(yè)面標(biāo)題的鏈接結(jié)構(gòu)(圖29)圖29表示用指示字lpForward和lpBackward構(gòu)筑的雙向鏈接表格結(jié)構(gòu)。本實(shí)施例采用了圖中所示的表格結(jié)構(gòu),從而能自由地和快速地重新配置、添加或刪除數(shù)據(jù)。
      在圖29中,A-1是位于雙向鏈接表格始端的頁(yè)面標(biāo)題。始端由特定指示字lpTop指示而終端由指示字lpTail指示。A-2和A-3是與A-1屬于同一組的頁(yè)面標(biāo)題。即,該“組”相當(dāng)于各高速緩存頁(yè)面的數(shù)據(jù),所述高速緩存頁(yè)面是通過(guò)分割一個(gè)文件形成的。頁(yè)面標(biāo)題A-2的起始地址由頁(yè)面標(biāo)題A-1的成員lpNex指示。頁(yè)面標(biāo)題A-3的起始地址由頁(yè)面標(biāo)題A-2的成員lpNext指示。
      B-1是鏈接到頁(yè)面標(biāo)題A-1下一級(jí)的頁(yè)面標(biāo)題。頁(yè)面標(biāo)題B-1的起始地址由頁(yè)面標(biāo)題A-1的成員lpFoward指示。頁(yè)面標(biāo)題B-1的成員lpNext指向?qū)儆谕唤M的頁(yè)面B-2的起始地址。頁(yè)面標(biāo)題B-1的成員lpForward指向鏈接到下一組的頁(yè)面C-1的起始地址。每個(gè)頁(yè)面標(biāo)題C-1和C-2的成員lpNext分別指向每個(gè)頁(yè)面標(biāo)題C-2和C-3的起始地址。在此,F(xiàn)REE狀態(tài)下的高速緩存頁(yè)面構(gòu)成一組。例如,將多個(gè)組A和B設(shè)定為FILLED狀態(tài)。將C組設(shè)定為FREE狀態(tài)。當(dāng)高速緩存新的矢量數(shù)據(jù)時(shí),從FREE或USED狀態(tài)下的組中獲得高速緩存頁(yè)面。將該高速緩存頁(yè)面設(shè)定成新矢量數(shù)據(jù)的高速緩存頁(yè)面。
      優(yōu)選建立新的高速緩存頁(yè)面和系統(tǒng)存儲(chǔ)器上的相應(yīng)頁(yè)面標(biāo)題,并用所述高速緩存頁(yè)面作為新矢量數(shù)據(jù)的高速緩存頁(yè)面。在這種情況下,希望將高速頁(yè)面的總量限制到特定值,以節(jié)約存儲(chǔ)器資源。所述特定值可以根據(jù)系統(tǒng)存儲(chǔ)量自動(dòng)設(shè)定或由用戶手工設(shè)定。當(dāng)通過(guò)控制而總是將給定的恒定值作為FREE狀態(tài)組的存儲(chǔ)量時(shí),能夠?qū)⑿率噶繑?shù)據(jù)加速分配給高速緩存頁(yè)面。
      按照?qǐng)D29中的雙向鏈接表格,參考成員lpForward可向前跟蹤構(gòu)成表格組的起始頁(yè)面標(biāo)題A-1、B-1和C-1。參考成員lpBackward可向后跟蹤雙向鏈接表格。為了檢查是否已高速緩存給定的矢量數(shù)據(jù),優(yōu)選連續(xù)跟蹤構(gòu)成表格的起始頁(yè)面標(biāo)題和檢查頁(yè)面標(biāo)題中的成員dwID是否與作為相關(guān)矢量數(shù)據(jù)的同一矢量ID匹配。如果匹配,與該頁(yè)面標(biāo)題有關(guān)的高速緩存頁(yè)面是高速緩存所述矢量數(shù)據(jù)的那一組的起始高速緩存頁(yè)面。當(dāng)總是用單個(gè)頁(yè)面同時(shí)存儲(chǔ)將要使用的所有矢量數(shù)據(jù)時(shí),雙向鏈接表格將僅包括頁(yè)面標(biāo)題A-1,B-1,和C-1。將無(wú)效數(shù)據(jù)存儲(chǔ)在這些頁(yè)面標(biāo)題的成員lpNext中。
      上述成員dwStatus表示重要等級(jí)順序中諸如LOCKED≥FILLED>ALLOCATED>USED>FREE等高速緩存頁(yè)面狀態(tài)。在按該重要等級(jí)順序?qū)⒏咚倬彺骓?yè)面排序的情況下,能夠?qū)⒏咚倬彺骓?yè)面加速分配給新的矢量數(shù)據(jù)。此外,優(yōu)選直接在重要等級(jí)上反映成員dwCount的值。即,優(yōu)選把較重要的等級(jí)分配給較大值的成員dwCount。在USED狀態(tài)的高速緩存頁(yè)面之間,優(yōu)選將不太重要的等級(jí)分配給預(yù)先移到USED狀態(tài)的高速緩存頁(yè)面。
      (5)讀取控制部分43的操作再次參照?qǐng)D28,下面將描述讀取控制部分43的操作。矢量加載器20向讀取控制部分43發(fā)送命令,以便根據(jù)包流內(nèi)容,即,根據(jù)每個(gè)包中的矢量ID讀取高速緩沖存儲(chǔ)器44。該命令稱為鎖存(LockVector)。該鎖存(LockVector)命令帶有預(yù)先響應(yīng)發(fā)出矢量(GetVector)命令返回的句柄(handle)。在正常工作狀態(tài)下,矢量數(shù)據(jù)應(yīng)存儲(chǔ)在高速緩沖存儲(chǔ)器44中。鎖存(LockVector)命令使得與所述矢量數(shù)據(jù)相關(guān)的高速緩存頁(yè)面起始地址指示字返回到矢量加載器20。
      根據(jù)上述操作,矢量加載器20和矢量解碼器31-35適當(dāng)讀取高速緩沖存儲(chǔ)器44的內(nèi)容以便完成波形合成程序。用這種方式,使由矢量加載器20準(zhǔn)備的高速緩存頁(yè)面呈現(xiàn)已鎖存(LOCKED)狀態(tài)(下面將詳述),從而防止其內(nèi)容被其它程序修改。
      然而,根據(jù)情況,當(dāng)從矢量加載器接收到LockVector命令時(shí),可以不將所需的矢量數(shù)據(jù)加載到高速緩沖存儲(chǔ)器44中。按照本實(shí)施例,當(dāng)個(gè)人計(jì)算機(jī)應(yīng)用程序發(fā)揮波形發(fā)生器的作用時(shí),這種情況將經(jīng)常發(fā)生。這是由于因個(gè)人計(jì)算機(jī)操作系統(tǒng)的條件而較長(zhǎng)時(shí)間地占據(jù)了硬盤(pán)109。在這種情況下,需根據(jù)波形發(fā)生器的操作模式執(zhí)行不同的程序。
      當(dāng)非實(shí)時(shí)進(jìn)行波形合成時(shí),最好停止后序程序,直到加載了指定的矢量數(shù)據(jù)為止。為此,讀取控制部分43以完成硬盤(pán)109的同步讀取操作。該同步讀取操作意味著在讀出期望的數(shù)據(jù)之前不會(huì)執(zhí)行其他程序。
      波形發(fā)生器實(shí)時(shí)工作時(shí),可通過(guò)進(jìn)行同步讀取操作中斷樂(lè)音。替換面的指示字返回到矢量加載器20。本實(shí)施例使用了各種用于忠實(shí)表現(xiàn)不同音調(diào)變化的矢量數(shù)據(jù)。當(dāng)通過(guò)程序變化選出的音調(diào)限制在沒(méi)有表現(xiàn)演奏風(fēng)格的基音矢量時(shí),其容量不會(huì)很大。RAM103存儲(chǔ)多個(gè)這樣的矢量作為所述音調(diào)的缺陷矢量。這些矢量替換不能在高速緩沖存儲(chǔ)器44中準(zhǔn)備的矢量數(shù)據(jù)。
      即使是完成了實(shí)時(shí)合成,也可能出現(xiàn)這樣的情況,即,在確保波形合成程序S14(波形合成部分101D)有足夠的時(shí)間延遲的情況下,使該程序能夠加載所需的矢量并合成該范圍內(nèi)的波形。在這種情況下,與非實(shí)時(shí)波形合成一樣,當(dāng)發(fā)現(xiàn)沒(méi)有加載所需的矢量數(shù)據(jù)時(shí),通過(guò)立即讀取相應(yīng)的矢量數(shù)據(jù),便可完成波形合成。當(dāng)矢量加載器20和矢量解碼器31-35用完高速緩存頁(yè)面后,矢量加載器20向讀取控制部分43發(fā)出與該高速緩存頁(yè)面對(duì)應(yīng)的附有句柄的釋放命令。通過(guò)發(fā)送該釋放命令可取消高速緩存頁(yè)面的已鎖存(LOCKED)狀態(tài)和釋放句柄。
      (6)高速緩存頁(yè)面的狀態(tài)轉(zhuǎn)換操作下面將參照?qǐng)D30中的狀態(tài)轉(zhuǎn)換程序描述每個(gè)高速緩存頁(yè)面狀態(tài)轉(zhuǎn)換的操作。
      最初時(shí),將所有高速緩存頁(yè)面設(shè)置到空白(FREE)狀態(tài)(S61)。即,高速緩存頁(yè)面的標(biāo)題包含設(shè)為空白(‘FREE’)的成員dwStatus。這意味著不使用高速緩存頁(yè)面并且不保證其內(nèi)容。當(dāng)將矢量數(shù)據(jù)加載到高速緩存頁(yè)面中時(shí),該高速緩存頁(yè)面將成為已指定(ALLOCATED)狀態(tài)(S62)。已指定(ALLOCATED)狀態(tài)(S62)意味著不存儲(chǔ)數(shù)據(jù)而是將數(shù)據(jù)保留以便從代碼本26中進(jìn)行數(shù)據(jù)讀取操作。這時(shí),在成員dwCount中存儲(chǔ)“1”。
      當(dāng)將矢量數(shù)據(jù)存儲(chǔ)在所述隨后頁(yè)面時(shí),高速緩存頁(yè)面的狀態(tài)變?yōu)橐烟畛?FILLED)狀態(tài)。每當(dāng)相對(duì)于已指定(ALLOCATED)或已填充(FILLED)狀態(tài)下的同一矢量數(shù)據(jù)出現(xiàn)指定的加載請(qǐng)求時(shí),成員dwCount將遞增“1”。每當(dāng)在ALLOCATED或FILLED狀態(tài)下取消預(yù)測(cè)加載請(qǐng)求時(shí),成員dwCount將遞減“1”。當(dāng)成員dwCount在這些狀態(tài)下的值變?yōu)椤?”時(shí),高速緩存頁(yè)面設(shè)定為USED狀態(tài)(S63)。
      高速緩存頁(yè)面變成已填充(FILLED)狀態(tài)之后,矢量加載器20發(fā)出鎖存矢量(LockVector)命令并將高速緩存頁(yè)面設(shè)定到已鎖存(LOCKED)狀態(tài)(S65)。當(dāng)矢量加載器20和矢量解碼器31-35用完高速緩存頁(yè)面時(shí),釋放(解開(kāi))已鎖存(LOCKED)狀態(tài)并且發(fā)出釋放命令。高速緩存頁(yè)面再次設(shè)定到已填充(FILLED)狀態(tài)(S64)。這時(shí),高速緩存頁(yè)面的成員dwCount遞減“1”。當(dāng)成員dwCount成為“0”時(shí),高速緩存頁(yè)面馬上成為已使用(USED)狀態(tài)(S63)。
      高速緩存頁(yè)面成為已使用(USED)狀態(tài)后,可以重復(fù)適合所述高速緩存頁(yè)面的預(yù)測(cè)加載請(qǐng)求或指定加載請(qǐng)求(預(yù)取)。在這種情況下,高速緩存頁(yè)面再次返回到已填充(FILLED)狀態(tài)。隨著所述程序的繼續(xù),高速緩沖存儲(chǔ)器中已使用(USED)狀態(tài)的高速緩存頁(yè)面增加而FREE狀態(tài)的高速緩存頁(yè)面減少。在高速緩存頁(yè)面不保持空白(FREE)狀態(tài)后,預(yù)取的新矢量數(shù)據(jù)最先連續(xù)取消(SwapOut)已使用USED狀態(tài)的高速緩存頁(yè)面并且將該高速緩存頁(yè)面返回到空白(FREE)狀態(tài)(S61)。該返回到空白(FREE)狀態(tài)的高速緩存頁(yè)面變?yōu)橐阎付?ALLOCATED)狀態(tài)以便加載所述的新矢量數(shù)據(jù)。
      優(yōu)選使用圖29中所示雙向鏈接表格作為迅速指定已使用(USED)狀態(tài)下最早高速緩存頁(yè)面的方法。當(dāng)高速緩存頁(yè)面設(shè)定成為已使用(USED)狀態(tài)時(shí),將該高速緩存頁(yè)面添加到鏈接表的始端。當(dāng)空白(FERR)狀態(tài)的高速緩存頁(yè)面不夠時(shí),高速緩存頁(yè)面將從鏈接表格的終端分離并變成空白(FREE)狀態(tài)。
      (7)時(shí)間管理部分45時(shí)間管理部分45控制整個(gè)波形合成部分101D的時(shí)間。下面將參照?qǐng)D31說(shuō)明本實(shí)施例中的時(shí)間控制。
      圖31假設(shè)在時(shí)間t30發(fā)出(例如,由用戶按下播放按鈕)開(kāi)始播放的指令,并在時(shí)間t40開(kāi)始實(shí)際輸出樂(lè)音。時(shí)間t30和t40之間的時(shí)間周期稱為等待時(shí)間β。例如,將等待時(shí)間β設(shè)為2000毫秒(msec),但不需要特別指定。
      發(fā)出開(kāi)始播放指令時(shí),CPU101在每個(gè)特定時(shí)間產(chǎn)生播放線索。播放線索允許讀取歌曲數(shù)據(jù)。根據(jù)歌曲內(nèi)容,由硬盤(pán)109執(zhí)行預(yù)取程序。從讀出給定歌曲數(shù)據(jù)的時(shí)間t30到歌曲實(shí)際開(kāi)始的時(shí)間t40之間存在時(shí)間周期。該時(shí)間周期稱為先期時(shí)間γ。優(yōu)選將先期時(shí)間γ的參考值設(shè)定為,例如,接近4000毫秒(msec),并且根據(jù)處理的情況使其在1000到10000毫秒(msec)的范圍內(nèi)變化。
      如果在某種程度上能確保先期時(shí)間γ,則可以間斷地產(chǎn)生播放線索而且間斷地讀取(在給定的數(shù)據(jù)塊中)歌曲數(shù)據(jù)。產(chǎn)生播放線索的間隔稱為播放線索發(fā)生間隔ε。優(yōu)選將播放線索發(fā)生間隔ε的參考值設(shè)為,例如,20毫秒(msec)并根據(jù)處理情況,使其能在5-100毫秒的范圍內(nèi)變化。
      當(dāng)在時(shí)間t32讀取歌曲數(shù)據(jù)時(shí),如上所述,在步驟S11檢索歌曲數(shù)據(jù)部分。在步驟S12注釋樂(lè)譜。在步驟S13完成演奏合成。結(jié)果,在時(shí)間t34預(yù)取矢量數(shù)據(jù)。從預(yù)取時(shí)間T34至歌曲開(kāi)始時(shí)間t40之間的時(shí)間周期稱為預(yù)取時(shí)間α。
      從硬盤(pán)109讀出的矢量數(shù)據(jù)最終寫(xiě)入高速緩沖存儲(chǔ)器44中。此后,矢量加載器20通過(guò)讀取控制部分43從高速緩沖存儲(chǔ)器44中讀出矢量數(shù)據(jù),以便開(kāi)始波形合成。從波形合成開(kāi)始的時(shí)間t36到歌曲開(kāi)始的時(shí)間t40的時(shí)間周期稱為輸出等待時(shí)間δ。將輸出等待時(shí)間δ的參考值最好設(shè)為,例如,近似于300毫秒(msec),并且根據(jù)處理情況使其在10-1000毫秒(msec)的范圍內(nèi)變化。
      與播放線索相同,還適合在指定的時(shí)間范圍內(nèi)間斷地進(jìn)行給定量的波形合成處理。將開(kāi)始波形合成處理的間隔參考值最好設(shè)定為,例如,50毫秒(msec),并根據(jù)處理情況使其在10-500毫秒的范圍內(nèi)變化。
      如圖31中所示,在先期時(shí)間γ、預(yù)取時(shí)間α和輸出等待時(shí)間δ之間存在關(guān)系γ>α>δ。在此,從預(yù)取時(shí)間t34至波形合成開(kāi)始時(shí)間t36的時(shí)間間隔“α-δ”要足夠長(zhǎng),以便從硬盤(pán)109加載矢量數(shù)據(jù)。當(dāng)加載的矢量數(shù)據(jù)量形成高峰值時(shí),能夠避免因時(shí)間間隔“α-δ”的加大引起的噪音。
      4.改型本發(fā)明并不限于上述實(shí)施例。例如,可以如以下面所述做出各種變化。
      (1)當(dāng)將上述波形發(fā)生器作為電子樂(lè)器使用時(shí),該電子樂(lè)器可以是各種形式,例如弦樂(lè)器、管樂(lè)器、打擊樂(lè)器等。在這種情況下,本發(fā)明并不限于包括歌曲數(shù)據(jù)播放部分101A、樂(lè)譜注釋部分101B、演奏合成部分101C、波形合成部分101D等的單一電子樂(lè)器。當(dāng)然,本發(fā)明還適用于分離部件,這些分離部件使用通信裝置例如MIDI接口、各種網(wǎng)絡(luò)等而相互連接。設(shè)備配置可包括個(gè)人計(jì)算機(jī)和應(yīng)用軟件。在這種情況下,優(yōu)選提供存儲(chǔ)在例如光盤(pán)、半導(dǎo)體存儲(chǔ)器等上的或是通過(guò)網(wǎng)絡(luò)存儲(chǔ)的處理程序。此外,本發(fā)明可以用于自動(dòng)演奏設(shè)備,例如彈奏鋼琴。
      (2)在上述實(shí)施例中,單個(gè)高速緩存頁(yè)面可以存儲(chǔ)多個(gè)矢量數(shù)據(jù)。顯然,單個(gè)高速緩存頁(yè)面也可以存儲(chǔ)一個(gè)矢量數(shù)據(jù)。
      (3)上述實(shí)施例需判斷將要通過(guò)遞增或遞減高速緩存頁(yè)面標(biāo)題中的成員dwCount轉(zhuǎn)到已使用(USED)狀態(tài)的高速緩存頁(yè)面。然而,當(dāng)未使用的高速緩存頁(yè)面增加時(shí),該方法將使得高速緩沖存儲(chǔ)器44變得不夠用。在這種情況下,可以優(yōu)選規(guī)定已填充(FILLED)狀態(tài)的高速緩存頁(yè)面“優(yōu)先”,然后將具有低優(yōu)先性的已填充(FILLED)狀態(tài)的高速緩存頁(yè)面移到已使用(USED)狀態(tài),隨后移到空白(FREE)狀態(tài)。當(dāng)從矢量加載器20接收到高速緩存頁(yè)面已移到空白(FREE)狀態(tài)的鎖存矢量(LockVector)命令時(shí),使用上述替換頁(yè)。作為“優(yōu)先”的實(shí)例,可以使用成員dwCount的值(前提是,所述值越大,預(yù)先產(chǎn)生的影響越大)。此外,優(yōu)選考慮使用過(guò)的高速緩存頁(yè)面的量或成員dwCount的最大值(歷史上的最大值)。
      (4)在上述實(shí)施例中,用雙向鏈接表格將已使用(USED)狀態(tài)的高速緩存頁(yè)面結(jié)合。當(dāng)空白(FREE)狀態(tài)的高速緩存頁(yè)面變得不夠時(shí),連續(xù)釋放鏈接表格終端的高速緩存頁(yè)面(從最早開(kāi)始)并將高速緩存頁(yè)面變成空白(FREE)狀態(tài)。然而,并不限于向空白(FREE)狀態(tài)轉(zhuǎn)換的順序。例如,相對(duì)于具有很多用途的高速緩存頁(yè)面,在成員dwCount歷史中具有較大最大值的高速緩存頁(yè)面或在每個(gè)模式開(kāi)始時(shí)使用的矢量數(shù)據(jù),優(yōu)選避免轉(zhuǎn)到空白(FREE)狀態(tài)。換句話說(shuō),如果可能的話,可以將這些高速緩存頁(yè)面或矢量數(shù)據(jù)設(shè)計(jì)成保持在高速緩沖存儲(chǔ)器44中的結(jié)構(gòu),此外,最好在實(shí)際上不使用的矢量數(shù)據(jù)之前高速緩存實(shí)際使用的矢量數(shù)據(jù)(由于沒(méi)有預(yù)測(cè))。
      通過(guò)優(yōu)先高速緩存在模式開(kāi)始時(shí)使用的矢量數(shù)據(jù),硬盤(pán)109可以以增大的存取容量工作,從而降低了使用替換頁(yè)的需要。
      特別是,當(dāng)需要將優(yōu)先高速緩存的高速緩存頁(yè)面轉(zhuǎn)換到已使用(USED)狀態(tài)時(shí),優(yōu)選將該高速緩存頁(yè)面添加到鏈接表格的始端。當(dāng)需要將其他高速緩存頁(yè)面轉(zhuǎn)換到已使用(USED)狀態(tài)時(shí),優(yōu)選將這些高速緩存頁(yè)面添加到鏈接表格的中部。
      (5)在上述實(shí)施例中,是用矢量數(shù)據(jù)作為聲音數(shù)據(jù)的實(shí)例。然而,聲音數(shù)據(jù)并不限于矢量數(shù)據(jù)。當(dāng)然,可以優(yōu)選使用指定樂(lè)音波形的各種波形數(shù)據(jù)或參數(shù)作為聲音數(shù)據(jù)。
      (6)在上述實(shí)施例中,如圖15-23所示,演奏合成部分101C直接向預(yù)取部分42輸入包流。代替這一操作,預(yù)取部分42可以讀取暫時(shí)寫(xiě)入包隊(duì)列緩沖器21-25中的包流。在這種情況下,優(yōu)選的是,預(yù)取部分42在矢量加載器20工作之前的特定時(shí)間內(nèi)讀取和處理存儲(chǔ)在包隊(duì)列緩沖器中的包。
      如上所述,按照本發(fā)明的第一方面,音響設(shè)備接收音調(diào)類別或第一到第三聲音數(shù)據(jù)類別中的一個(gè),預(yù)測(cè)候選的和將隨后指定的聲音數(shù)據(jù),并預(yù)先將所述候選數(shù)據(jù)從低速存儲(chǔ)裝置轉(zhuǎn)送到高速存儲(chǔ)裝置中。因此,可以迅速處理第一至第三聲音數(shù)據(jù)類別,同時(shí)將大量聲音數(shù)據(jù)存儲(chǔ)在低速存儲(chǔ)裝置中。這樣便可以用豐富的表現(xiàn)力實(shí)時(shí)播放波形合成聲音數(shù)據(jù)。
      如上所述,根據(jù)本發(fā)明的第二方面,合成方法能夠根據(jù)相關(guān)的計(jì)數(shù)值判斷出下面是否使用轉(zhuǎn)換到高速存儲(chǔ)裝置的聲音數(shù)據(jù)。當(dāng)聲音數(shù)據(jù)是后面實(shí)際使用的聲音數(shù)據(jù)時(shí),不需要對(duì)低速存儲(chǔ)裝置例如硬盤(pán)等進(jìn)行存取。這能降低對(duì)低速存儲(chǔ)裝置例如硬盤(pán)等進(jìn)行存取的頻率。
      如上所述,按照本發(fā)明的第三方面,本方法利用致密存儲(chǔ)容量能夠?qū)崟r(shí)產(chǎn)生與演奏風(fēng)格或樂(lè)音的發(fā)音相關(guān)的高質(zhì)量波形。即,根據(jù)演奏風(fēng)格參數(shù)修正所產(chǎn)生的矢量數(shù)據(jù)。這樣便不需要存儲(chǔ)與多種音樂(lè)演奏模式(演奏風(fēng)格)相應(yīng)的矢量數(shù)據(jù),因此,節(jié)約了預(yù)先存儲(chǔ)矢量數(shù)據(jù)的存儲(chǔ)容量。此外,可以根據(jù)演奏風(fēng)格參數(shù),并依據(jù)共用演奏風(fēng)格識(shí)別信息,精細(xì)地控制演奏聲音波形的特性,由此提高了可控性。
      用這種方式,可以使用具有不同演奏風(fēng)格(發(fā)音)特性的高質(zhì)量波形。這些波形包括例如顫音和震音等進(jìn)行了調(diào)制的波形,拐彎音等經(jīng)過(guò)定音調(diào)制的波形,連奏波形,具有經(jīng)過(guò)定音變化的過(guò)渡音或裝飾音的波形。把產(chǎn)生自由波形的高質(zhì)量波形簡(jiǎn)單地結(jié)合可以還改善所用的高質(zhì)量波形。用改善可控性和可編輯性的方式可以使實(shí)時(shí)產(chǎn)生的與演奏風(fēng)格或發(fā)音有關(guān)的高質(zhì)量波形具有極佳效果。
      如上所述,按照本發(fā)明的第四方面,在用聲音數(shù)據(jù)進(jìn)行波形合成后,將所用數(shù)據(jù)存儲(chǔ)在將來(lái)能夠使用狀態(tài)下的上述高速存儲(chǔ)裝置中。如果在下面實(shí)際使用了聲音數(shù)據(jù),則不再需要對(duì)諸如硬盤(pán)等低速存儲(chǔ)裝置進(jìn)行存取。這將能夠降低對(duì)諸如硬盤(pán)等低速存取裝置存取的頻率。
      權(quán)利要求
      1.一種樂(lè)音合成方法,借助于第一存儲(chǔ)裝置和第二存儲(chǔ)裝置合成樂(lè)音,其中,該第一存儲(chǔ)裝置存儲(chǔ)代表各種樂(lè)音的波形的矢量數(shù)據(jù),所述的第一存儲(chǔ)裝置按第一存取速率存取,該第二存儲(chǔ)裝置以快于該第一存取速率的第二存取速率高速緩存該矢量數(shù)據(jù),用于迅速提供代表將要合成的樂(lè)音波形的矢量數(shù)據(jù),該方法包括以下步驟接收沿時(shí)間軸連續(xù)播放樂(lè)音的包流,所述包流包含先行包和接續(xù)包,每個(gè)包均包含有效指定在該第一存儲(chǔ)裝置中存儲(chǔ)的矢量數(shù)據(jù)的識(shí)別信息;根據(jù)包含在先行包中的識(shí)別信息,預(yù)測(cè)接續(xù)包中的矢量數(shù)據(jù);在接收接續(xù)包之前將預(yù)測(cè)的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,以便在合成之前將預(yù)測(cè)的矢量數(shù)據(jù)高速緩存到該第二存儲(chǔ)裝置中;以及當(dāng)接收到接續(xù)包并且包含在接續(xù)包中的識(shí)別信息命中高速緩存的矢量數(shù)據(jù)時(shí),從該第二存儲(chǔ)裝置中檢索出高速緩存的矢量數(shù)據(jù)并由此合成樂(lè)音。
      2.如權(quán)利要求1所述的方法,還包括如下步驟當(dāng)未命中高速緩存的矢量數(shù)據(jù)時(shí),將由包含在接續(xù)包中的識(shí)別信息指定的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,以確保樂(lè)音的連續(xù)合成。
      3.如權(quán)利要求1所述的方法,其中該第一存儲(chǔ)裝置存儲(chǔ)的矢量數(shù)據(jù)分成第一矢量數(shù)據(jù)和第二矢量數(shù)據(jù),所述第一矢量數(shù)據(jù)代表對(duì)應(yīng)于樂(lè)音前部的起音波形,而第二矢量數(shù)據(jù)代表對(duì)應(yīng)于同一樂(lè)音后部的主體波形,從而所述預(yù)測(cè)步驟將預(yù)測(cè)代表主體波形的第二矢量數(shù)據(jù)能否與由包含在先行包中的第一矢量數(shù)據(jù)指定的起音波形相接。
      4.如權(quán)利要求3所述的方法,其中該第一存儲(chǔ)裝置還存儲(chǔ)第三矢量數(shù)據(jù),該數(shù)據(jù)代表的是樂(lè)音主體波形之后的釋放波形或連接波形,從而所述預(yù)測(cè)步驟將預(yù)測(cè)代表釋放波形或連接波形的第三矢量數(shù)據(jù)能否與由包含在先行包中的第一矢量數(shù)據(jù)指定的主體波形相接。
      5.如權(quán)利要求1所述的方法,還包括如下步驟使沒(méi)有被命中的高速緩存矢量數(shù)據(jù)成為可釋放狀態(tài),以便能夠在接收下一包之前將處于可釋放狀態(tài)的高速緩存矢量數(shù)據(jù)從該第二存儲(chǔ)裝置中刪除。
      6.如權(quán)利要求1所述的方法,其中該第一存儲(chǔ)裝置設(shè)置成硬盤(pán)驅(qū)動(dòng)器的形式,而該第二存儲(chǔ)裝置設(shè)置成隨機(jī)存取存儲(chǔ)器芯片的形式。
      7.一種用于執(zhí)行如權(quán)利要求1所述方法的計(jì)算機(jī)程序。
      8.如權(quán)利要求1所述的方法,還包括如下步驟在該第二存儲(chǔ)裝置中保持在對(duì)應(yīng)于先前包的合成中使用的矢量數(shù)據(jù),以便在對(duì)應(yīng)于接續(xù)包的另一次合成中再次使用所述數(shù)據(jù)。
      9.如權(quán)利要求1所述的方法,其中所述傳輸步驟周期性地傳輸足以連續(xù)生成樂(lè)音的預(yù)定量的矢量數(shù)據(jù)。
      10.如權(quán)利要求8所述的方法,還包括如下步驟檢測(cè)該第二存儲(chǔ)裝置何時(shí)沒(méi)有足夠的空白區(qū)域來(lái)接收將要傳輸?shù)皆摰诙鎯?chǔ)裝置中的新矢量數(shù)據(jù),并且從該第二存儲(chǔ)裝置中釋放舊矢量數(shù)據(jù)以產(chǎn)生用于接收新矢量數(shù)據(jù)的空白區(qū)域。
      11.如權(quán)利要求10所述的方法,其中所述矢量數(shù)據(jù)用于合成具有預(yù)定長(zhǎng)度的樂(lè)音波形,所述矢量數(shù)據(jù)包含用于合成預(yù)定波形長(zhǎng)度前部的有實(shí)義的矢量數(shù)據(jù)以及用于合成預(yù)定波形長(zhǎng)度保持部分的無(wú)實(shí)義的矢量數(shù)據(jù);其中相比釋放有實(shí)義的矢量數(shù)據(jù),所述釋放步驟更易于釋放無(wú)實(shí)義的矢量數(shù)據(jù)。
      12.一種用于合成樂(lè)音的設(shè)備,包括第一存儲(chǔ)裝置,其存儲(chǔ)代表各種樂(lè)音波形的矢量數(shù)據(jù),所述第一存儲(chǔ)裝置可以第一存取速率進(jìn)行存??;第二存儲(chǔ)裝置,其以快于該第一存取速率的第二存取速率高速緩存矢量數(shù)據(jù),以便迅速提供代表將要合成的樂(lè)音波形的矢量數(shù)據(jù);和處理器,其控制矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置并且從該第二存儲(chǔ)裝置中獲得用于樂(lè)音合成的矢量數(shù)據(jù),其中該處理器包括接收部分,其接收沿時(shí)間軸連續(xù)播放樂(lè)音的包流,所述包流包含先行包和接續(xù)包,每個(gè)包中均包含有效指定在該第一存儲(chǔ)裝置中存儲(chǔ)的矢量數(shù)據(jù)的識(shí)別信息;預(yù)測(cè)部分,其根據(jù)包含在先行包中的識(shí)別信息預(yù)測(cè)接續(xù)包中的矢量數(shù)據(jù);傳輸部分,其在接收到接續(xù)包之前,將預(yù)測(cè)的矢量數(shù)據(jù)從該第一存儲(chǔ)裝置傳輸?shù)皆摰诙鎯?chǔ)裝置,以便在合成之前將預(yù)測(cè)的矢量數(shù)據(jù)高速緩存到該第二存儲(chǔ)裝置中;以及檢索部分,其在接收到接續(xù)包并且包含在接續(xù)包中的識(shí)別信息命中高速緩存的矢量數(shù)據(jù)時(shí),從該第二存儲(chǔ)裝置中檢索出高速緩存的矢量數(shù)據(jù)并由此合成樂(lè)音。
      全文摘要
      本發(fā)明提供樂(lè)音合成方法和用于合成樂(lè)音的設(shè)備。該方法包括如下步驟接收沿時(shí)間軸連續(xù)播放樂(lè)音的包流,所述包流包含先行包和接續(xù)包,每個(gè)包均包含有效指定在第一存儲(chǔ)裝置中存儲(chǔ)的矢量數(shù)據(jù)的識(shí)別信息;根據(jù)包含在先行包中的識(shí)別信息,預(yù)測(cè)接續(xù)包中的矢量數(shù)據(jù);在接收接續(xù)包之前將預(yù)測(cè)的矢量數(shù)據(jù)從第一存儲(chǔ)裝置傳輸?shù)降诙鎯?chǔ)裝置,以便在合成之前將預(yù)測(cè)的矢量數(shù)據(jù)高速緩存到該第二存儲(chǔ)裝置中;以及當(dāng)接收到接續(xù)包并且包含在接續(xù)包中的識(shí)別信息命中高速緩存的矢量數(shù)據(jù)時(shí),從第二存儲(chǔ)裝置中檢索出高速緩存的矢量數(shù)據(jù)并由此合成樂(lè)音。通過(guò)本發(fā)明可以用豐富的表現(xiàn)力實(shí)時(shí)播放波形合成聲音數(shù)據(jù),并降低對(duì)低速存儲(chǔ)裝置例如硬盤(pán)等進(jìn)行存取的頻率。
      文檔編號(hào)G10H1/00GK1838234SQ200610073560
      公開(kāi)日2006年9月27日 申請(qǐng)日期2002年3月22日 優(yōu)先權(quán)日2001年3月23日
      發(fā)明者田邑元一 申請(qǐng)人:雅馬哈株式會(huì)社
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1