專利名稱:波形產生方法和裝置的制作方法
技術領域:
本發明涉及以從波形存儲器等裝置中讀取的波形數據為基礎產生樂音、語音或其他期望聲音波形的方法和裝置,尤其涉及一種改進的波形產生方法和裝置,這種方法和裝置能夠產生如實體現音色變化的波形,音色變化受普通樂器所特有的奏法或鏈接格調的影響。應注意的是,本發明可廣泛用于所有能產生樂音、語音或其他期望聲音波形的裝置、裝置或方法的領域,例如自動演奏裝置、計算機、電子游戲機或其他類型的多媒體裝置,更不用說普通的電子樂器。還應注意的是,在本說明書中,術語“聲音(tone)”不僅用來代表樂音,而且用來代表語音或其他聲音,類似地,術語“聲音波形”用來包括語音波形或任何其他期望的聲音波形,而不是單指樂音的波形。
在這些預先存儲所要發出聲音自始至終的整個波形的波形數據,或者預先存儲一個聲音激起部分等的整段波形的波形數據的波形存儲器讀出技術中,必須預先存儲與各種奏法(或鏈接)相對應的多種多樣的種種波形數據,因而需要很大的存儲容量來存儲多種多樣的波形數據。
另外,雖然上述用來預先存儲整個波形的波形數據的技術可以如實地體現受普通樂器所特有的各種奏法或鏈接影響的音色變化,但是它只能再現與預先存儲數據所表現的聲音方式相同的聲音,因而其易于出現可控性差、可編輯性差的情況。例如,對于進行波形特征控制的技術來說非常困難,這種技術例如是根據演奏數據控制與要求的奏法或鏈接相對應的波形數據的時間軸。
為了解決上述麻煩之處,在第2000-122665號等日本專利公開文獻中已經提出了更先進的技術,這些技術便于實現逼真地再現和控制普通樂器所特有的各種奏法(或鏈接);這些技術是公知的SAEM(聲音鏈接要素模塊化(Sound Articulation Element Modeling))技術。在這些SAEM技術的情況下,當要將若干奏法波形模塊按時間連續連接在一起以產生一連續的聲音波形時,希望把這些奏法波形模塊連接起來,而不存在不自然的情況。
本發明的另一個目的在于提供一種波形產生方法和裝置,在產生與各種奏法(或鏈接)相對應的高質量波形數據方面,這種方法和裝置能夠把各奏法模塊互連在一起,而不存在不自然的情況。
本發明的又一個目的在于提供一種波形產生方法和裝置,這種方法和裝置便于創建音樂片段數據,并且易于操作。
根據本發明的第一方面,提供一種波形產生方法,該方法包括以下步驟根據時間順序提供指定各奏法模塊的演奏過程信息片段;當要根據按時間順序提供的演奏過程信息片段處理給定時間點的給定演奏過程信息片段時,在該給定演奏過程信息片段之后,其他演奏過程信息片段的預定原始時間位置之前,取得與一個或多個過程相關的另一個演奏過程信息片段;在一給定演奏過程信息片段和預先通過所述取得步驟取得的其他演奏過程信息片段的基礎上,產生與該給定片段和該其他片段中至少一個所指定的奏法模塊相對應的控制數據;在該控制數據的基礎上,合成與所指定奏法模塊相對應的波形數據。
本發明的特征在于,當要根據按時間順序提供的演奏過程信息片段處理給定時間點的給定演奏過程信息片段時,在其他演奏過程信息片段的預定原始時間位置之前,取得與該給定演奏過程信息片段之后的一個或多個過程相關的另一個演奏過程信息片段,然后,在至少一個給定演奏過程信息片段和其他預先通過上述取得步驟取得的其他演奏過程信息片段的基礎上,產生與該給定片段和該其他片段所指定的奏法模塊相對應的控制數據。該設置能夠考慮到以連續的演奏過程信息片段為基礎的奏法模塊之間的關系創建控制數據。例如,如此設置的本發明能夠對控制數據作適當處理,以使以連續的演奏過程信息片段為基礎的奏法模塊所指定的奏法波形能夠平滑互連。
根據本發明的第二方面,提供一種波形產生方法,該方法包括以下步驟按順序指定奏法模塊;取得與前面奏法模塊的至少一個尾端部的特征有關的尾端信息和與后面奏法模塊的至少一個頭端部特征有關的頭端信息;在所取得的尾端信息和頭端信息的基礎上,修改至少一個前面和后面奏法模塊的特征;根據修改的特征,合成與所指定奏法模塊相對應的一個波形。
本發明的特征在于,在實際合成與該前面奏法模塊相對應的一個波形之前,借助所謂“預演”來取得與前面奏法模塊的至少一個尾部特征有關的尾端信息和與后面奏法模塊的至少一個頭端部特征有關的頭端信息。根據如此取得的尾部和頭端信息,修改該前面奏法模塊和該后面奏法模塊中至少一個的特征,以使該前面奏法模塊和該后面奏法模塊能夠平滑互連。把如此修改的特征保留起來作為一個參數或控制數據。然后,根據修改的特征實際合成與所指定奏法模塊相對應的波形。這樣,以該連續的(前面的和后面的)奏法模塊為基礎的奏法波形就可以平滑互連起來。
根據本發明的第三方面,提供一種波形產生方法,該方法包括以下步驟提供包括指定一奏法模塊的信息和用來控制該奏法模塊的參數信息的奏法指定信息;當必要參數信息中缺少所提供的奏法指定信息時,以一預定標準參數填充缺少的必要參數信息,由此補充該奏法指定信息;合成對應于在包括以預定標準參數信息補充的奏法指定信息的奏法指定信息的基礎上指定的奏法模塊的波形數據。
本發明的特征在于,當合成與任何所提供的奏法指定信息所指定的奏法模塊相對應的奏法波形所必要的參數信息中缺少該指定信息時,以一預定標準參數自動填充缺少的必要參數信息,由此補充該奏法指定信息,以便能夠方便地合成所指定的奏法模塊相對應的奏法波形。例如,如果指定的奏法模塊是具有顫吟特征的奏法波形的模塊,那么表示顫吟深度等的控制參數必須按正常情況準備。但是,即使在這些必需參數不包括在奏法指定信息中的情況下,填充如上設置的本發明特征的參數也可以方便地合成要求的的奏法波形。當要采用預定的標準參數時,可以準備固定的缺省值,該缺省值對應于每一種奏法模塊的參數。另一方面,可以將這些參數最后使用(最近使用)的值存入存儲器中,以便將其用作標準參數(可變缺省值)。由于本發明可以如此省去對在奏法指定信息中包括所有必需參數的需要,所以本發明可以有效地減少創建要自動演奏音樂片段的數據的負荷、時間和勞動。
本發明不僅可以構成和實現為如上所述的方法發明,還可以為裝置發明。而且,本發明可以設置和實現為一軟件程序和一存儲媒體,該軟件程序由一處理器如計算機或DSP執行,該存儲媒體存儲該程序。此外,用于本發明的處理器可以包括具有由硬件構建的專用邏輯的專用處理器,更不必說能夠運行期望的軟件程序的計算機或其他通用型處理器。
盡管這里要描述的實施例代表本發明的優選形式,不過應理解的是,對于本領域的那些普通技術人員來說,在不脫離本發明的實質的情況下,可作各種修改。因此,本發明范圍只由所附的權利要求書確定。
圖7A是示出一奏法過程序列對象實例的圖;圖7B是一時序圖,表示對一當前奏法過程進行處理的時間和對一后面奏法過程預先讀取的時間之間的關系;圖8是一時序圖,表示其中把要產生聲音自始至終的奏法模塊結合在一起的典型方式;圖9A至9D是流程圖,表示與各種奏法模塊相對應的預演處理過程實例;
圖10是示出以下實例的圖激起部分奏法模塊((a)和(b)區)中泛音分量和非泛音分量的向量實例;主體部分奏法模塊((c)和(d)區)中泛音分量和非泛音分量的向量實例;圖11是示出以下實例的圖連接部分奏法模塊((a)和(b)區)中泛音分量和非泛音分量的向量實例;斷開部分奏法模塊((c)和(d)區)中泛音分量和非泛音分量的向量實例。
圖1中,根據本發明該實施例的波形產生裝置包括CPU(中央處理單元)101,它起計算機的主控制部分作用,經總線(例如數據和地址總線)BL連接有以下部分ROM(只讀存儲器)102、RAM(隨機存取存儲器)103、開關面板104、面板顯示單元105、驅動器106、波形輸入部分107、波形輸出部分108、硬盤109和通信接口111。如以下將要描述的那樣,CPU101執行各種涉及以預定程序為基礎的“奏法波形產生”、“基于軟件發聲器的普通聲音合成”等過程。例如,從一網絡經通信接口111或從安裝在驅動器106中的外部存儲媒體106A如CD或MO(磁光盤)提供這些程序,然后將這些程序存入硬盤109。對于執行所期望的一個程序來說,從硬盤109中將所期望的程序裝入RAM 103中;不過,這些程序可以預先存儲在ROM 102中。
ROM 102中存儲有要由CPU 101執行或涉及的各種程序和數據。RAM 103用作一個工作存儲器,它用來在CPU 101執行各程序時暫時存儲與演奏有關的各種信息和所產生的各種數據;或者用作存儲當前執行的程序和與該程序有關的數據的存儲器。RAM 103的預定地址區分配給各個功能,并且用作各種寄存器、特征位、表、存儲器等。開關面板104包括各種操作部件,它們用來輸入各種設定信息如演奏條件和波形產生條件,編輯波形數據等,并且輸入各種其他信息。例如,開關面板104可以是用來輸入數字值數據的10個數字按鍵鍵盤的形式、用來輸入字符數據的鍵盤和/或面板開關。開關面板104還可以包括其他用來選擇、設定和控制每一個要產生聲音的音調高低、音色、音效等的操作部件。面板顯示單元105包括液晶顯示裝置(LCD)、CRT(陰極射線管)和/或類似用來顯示經開關面板104輸入的各種信息、采樣波形數據等的裝置。
波形輸入部分107包括一A/D轉換器,該轉換器用來把通過外部波形輸入裝置如麥克風輸入的模擬聲音信號轉換為數字數據(波形數據采樣),該部分將如此采樣的數字波形數據作為數字波形數據輸入至RAM 103或硬盤109中。奏法波形數據庫可以在上述輸入波形數據的基礎上創建。而且,由CPU通過波形產生處理過程產生的波形數據經總線BL送至波形輸出部分108,必要時然后存入其緩沖存儲器。波形輸出部分108在一預定輸出采樣頻率下讀取所緩存的波形數據,然后在D/A轉換該波形數據后將該數據發送給音響系統108A。這樣,通過音響系統108A聽到或可聽見地再現每一個從該波形輸出部分108輸出的聲音信號。這里,硬盤109用來起一數據庫的作用,它存儲用來合成與奏法相對應波形的數據(下文描述的奏法表、編碼簿等的各種數據)、普通波形數據、與演奏有關的若干類型數據如由各種音色參數組成的音色數據、與控制有關的數據如要由CPU 101執行的各種程序。
驅動器106用來驅動可拆卸盤(外部存儲媒體106A),該可拆卸盤存儲用來合成與奏法相對應波形的數據(下文描述的奏法表、編碼簿等的各種數據)、普通波形數據、與演奏有關的若干類型數據如由各種音色參數組成的音色數據、與控制有關的數據如要由CPU 101執行的各種程序。要由驅動器106驅動的外部存儲媒體106A可以是各種公知的可拆卸式媒體中的任何一種,例如軟盤(FD)、光盤(CD-ROM或CD-RAM)、磁光(MO)盤或數字化視頻光盤(DVD)。設置在驅動器106中的外部存儲媒體106A所存儲的內容(控制程序)可以直接裝入RAM 103中,而不必首先裝入硬盤109中。經外部存儲媒體106A或經通信網絡提供期望程序的方法的有利之處在于,它非常便于對控制程序進行版本升級、增加新的控制程序等等。
另外,通信接口111接至通信網絡如LAN(局域網)、互連網或電話線,它可以通過該通信網絡接至一期望的服務器計算機等裝置(圖中未示),以便將控制程序和各種數據或者演奏信息輸入至波形產生裝置。即,在特定的控制程序和各種數據不包括在波形產生裝置的ROM 102或硬盤109中的情況下,這些控制程序和數據可以從該服務器計算機經通信接口111下載到波形產生裝置中。這種情況下,作為“客戶端”的本發明的波形產生裝置借助通信接口111和通信網絡向服務器計算機發送一個請求命令以下載控制程序和各種數據。響應于來自客戶端的命令,服務器計算機將所請求的控制程序和數據經通信網絡傳送給波形產生裝置。該波形產生裝置經通信網絡和通信接口111從服務器計算機上接收控制程序和數據,并且將它們累積存儲到硬盤109中。這樣,完成了對控制程序和各種數據的必要下載。顯然,波形產生裝置還可以包括MIDI接口,以便接收MIDI演奏信息。另外,音樂演奏鍵盤和音樂操作裝置可以接至總線BL,以便可以通過實際實時演奏將演奏信息供給波形產生裝置。當然,含一期望音樂片段的演奏信息的外部存儲媒體106A可以用來提供該期望音樂片段的演奏信息。
在用上述硬盤109或其他合適的存儲媒體構建的奏法波形數據庫中,存儲有多個用來再現與各種奏法(即各種演奏)相對應的波形的模塊數據集(下文稱為“奏法模塊”),以及屬于各奏法模塊的數據組。每個奏法模塊是一奏法波形單元,它能夠在一奏法波形合成系統中作為單獨一組受到處理;換句話說,該奏法模塊是能夠作為單獨一個過程受到處理的奏法波形單元。在本實施例中,各奏法模塊包括那些根據一演奏聲音的奏法特征限定的部分;那些根據一聲音的局部部分如激起部分、主體部分或斷開部分限定的部分;那些根據連續聲音之間的連接部分如連奏限定的部分;那些根據一個聲音的特殊演奏部分如顫吟限定的部分;和那些根據多個象樂節那樣的律音限定的部分。
這些奏法模塊可以根據奏法特征、時間區段或演奏的段節等被分為幾種主要類型。例如,本實施例中五種主要類型的奏法模塊為
1)“正常進入”(簡寫為“NE”)代表一個聲音從無聲狀態開始的升高部分(即激起部分)的奏法模塊;2)“正常結束”(簡寫為“NF”)代表一個聲音至無聲狀態的落下部分(即斷開部分)的奏法模塊;3)“正常連接”(簡寫為“NJ”)代表不插入無聲狀態而互連兩個連續聲音的連接部分的奏法模塊;4)“正常短主體”(簡寫為“NSB”)代表升高部分與落下部分之間聲音的不帶顫吟的短部分(即該聲音的不帶顫吟的主體部分)的奏法模塊;5)“顫吟長主體”(簡寫為“VLB”)代表升高部分與落下部分之間聲音的帶顫吟部分(即該聲音的帶顫吟主體部分)的奏法模塊。
對以上五種模塊的分類只是說明性的,對各奏法模塊的分類可以采用其他合適的方式,例如,各奏法模塊可以分為五種以上的類型。另外,各奏法模塊還可以根據原始聲源如樂器進行分類。
在本實施例中,每個與單一奏法模塊相對應的奏法波形數據存儲在數據庫中,作為若干波形組成因素或元素組的數據,下文將每個波形組成元素稱為向量。例如,該奏法模塊包括以下向量。需注意的是,這里,通過將所述的原始奏法波形分為具有音高和諧分量(泛音分量)的波形段和具有非音高和諧分量(非泛音分量)的其余波形段來定義“泛音”分量和“非泛音”分量。
1)泛音分量的波形形狀(音色)向量該向量僅表示從該泛音分量的各種波形組成元素中取出且按音高和幅度歸一化的波形形狀特征。
2)泛音分量的幅度向量該向量表示從該泛音分量的波形組成元素中取出的幅度包絡線波形特征。
3)泛音分量的音高向量該向量表示從該泛音分量的波形組成元素中取出的音高特征,例如,它表示相對于給定參考音高的音調高低起伏特征。
4)非泛音分量的波形形狀(音色)向量該向量僅表示從該非泛音分量的波形組成元素中取出的帶有歸一化幅度的波形形狀(噪聲類波形形狀)特征。
5)非泛音分量的幅度向量該向量表示從該非泛音分量的波形組成元素中取出的幅度包絡線特征。
雖然這里沒有具體描述,不過該奏法模塊可以包括一個或一個以上其他類型的向量,例如表示波形在時間軸上前進的一種向量。
對于奏法波形的合成來說,通過根據控制數據對這些向量數據作適當的處理,并且將如此處理的向量數據置于一演奏聲音的再現時間軸上,然后在置于該時間軸上的向量數據基礎上執行預定的波形合成處理過程,從而沿該時間軸構成與該奏法波形的各種組成元素相對應的波形或包絡線。例如,為了產生一期望的演奏聲音波形,即表現預定最終奏法特征的期望奏法波形,通過為一泛音分量的波形形狀向量賦予一音高及其與一泛音分量的音高向量相對應的時變特征以及一幅度及其與一泛音分量的幅度向量相對應的時變特征,來產生該泛音分量的波形段,并且通過為一非泛音分量的波形形狀向量賦予一幅度及其與一非泛音分量的幅度向量相對應的時變特征,來產生該非泛音分量的波形段。然后,可以通過增加合成如此產生的泛音和非泛音分量的波形段來產生期望的演奏聲音波形。
本段和以后的段落參照圖2描述了奏法模塊的典型數據格式。例如,每個奏法模塊可以通過如圖2所示的分級數據結構識別或確定。在第一分級水平上,由“奏法ID(識別信息)”和“奏法參數”的結合來確定一奏法模塊。“奏法ID”是唯一識別該奏法模塊的信息,并且能夠用來從數據庫中讀取必要向量數據的一段信息。第一分級水平上的“奏法ID”例如可以根據“樂器信息”和“模塊部分名稱”的結合來分類。每一段“樂器信息”表示要采用該奏法模塊的樂器名稱,如小提琴、中音薩克斯管或鋼琴。“模塊部分名稱”是表示類型和符號的信息,如該奏法模塊的“正常進入”或“轉彎進入”。這樣的“樂器信息”和“模塊部分名稱”可以以這樣一種方式加給“奏法ID”,即,使用戶能夠從“樂器信息”和“模塊部分名稱”得知該“奏法ID”所屬的奏法模塊符號。
“奏法參數”用來控制該奏法模塊代表的持續時間和波形級別,根據該奏法模塊的符號,它們可以包括一種或一種以上彼此不同的參數。例如,在可由樂器信息與模塊部分名稱的結合“小提琴[正常進入]”確定的給定奏法模塊的情況下,這些奏法參數可以包括不同類型的參數,例如進入或激起之后馬上出現的絕對音高和音量。在可由樂器信息與模塊部分名稱的結合“小提琴[轉彎進入]”確定的另一個奏法模塊的情況下,這些奏法參數可以包括不同類型的參數,例如轉彎進入結束時的絕對音高、轉彎進入時的初始轉彎深度值、轉彎進入從開始(提示定時)到結束的持續時間、進入之后馬上出現的音量、和/或轉彎進入過程中一缺省曲線的時間延長/縮短值。在可由樂器信息與模塊部分名稱的結合“小提琴[正常短主體]”確定的另一個奏法模塊的情況下,這些奏法參數可以包括不同類型的參數,例如模塊的絕對音高、正常短主體的開始和結束時間(即結束時間-開始時間)、正常短主體開始時的動態特征和正常短主體結束時的動態特征。這些“奏法參數”可以連同相應的奏法ID一起預先存儲在存儲器等中,或者通過用戶的輸入操作輸入,或者可以通過用戶的操作修改現有的參數,從而提供這些奏法參數。另外,在再現一奏法波形時只提供奏法ID而沒有奏法參數的情況下,可以為所提供的奏法ID自動賦予標準的奏法參數。此外,在處理的過程中可以自動賦予適當的參數。
在圖2第二分級水平上的數據包括每一個都可由奏法ID確定的向量ID數據。這些向量ID數據不僅可以由奏法ID確定,還可以由奏法參數確定。該奏法數據庫包括奏法表或存儲器。在該奏法表中,預先存儲有與奏法ID相關的若干波形組成元素即各向量的識別信息(即向量ID),它們用來構建各奏法ID所識別的奏法模塊。即,期望的向量ID等的數據可以通過根據奏法ID讀取奏法表來得到。而且,期望的向量ID等的數據可以根據奏法ID和奏法參數從奏法表中得到。應注意的是,存儲在該奏法表中第二分級水平的數據可以包括除了向量ID的數據之外的其他必要數據。該奏法表可以包括作為其他必要數據的表示要在采樣序列中修改的典型采樣點數目(下文稱為“典型采樣點數目序列”)的數據。例如,如果諸如幅度向量和音高向量數據之類的包絡線波形形狀數據僅僅包括幾個典型采樣點的數據,由于它們可以再現該波形形狀,所以不必預先存儲所有作為樣板的包絡線波形形狀數據,只預先存儲典型采樣點數據序列的數據足矣。在下文中,典型采樣點數據序列的數據也稱為“形狀”數據。該奏法表還可以包括諸如各波形組成元素向量數據的開始和結束時間位置之類的數據,即,波形形狀、音高(音高包絡線)和幅度(幅度包絡線)。時間位置等的所有或部分數據可以包括在上述奏法參數中;換句話說,某些類型的奏法參數可以連同相應的奏法ID一起存儲在奏法表中。連同相應的奏法ID一起存儲在奏法表中的某些類型的奏法參數可以由第一分級水平上給定的其他奏法參數改變或控制。
圖2第三分級水平上的數據包括可由相應向量ID確定的向量數據。該奏法數據庫包括稱為“編碼簿”的存儲器,其中預先存儲有與向量ID有關的具體的向量數據(例如音色波形形狀的模板)。即,可以根據該向量ID從編碼簿中讀取具體的向量數據。
以下描述各種具體數據的實例,這些數據包括預先存儲在奏法中的奏法模塊的向量ID和形狀(典型采樣點數目的序列)數據
數據1奏法模塊的采樣長度;數據2提示定時的位置;數據3泛音分量幅度元素的向量ID和典型采樣點數目的序列;數據4泛音分量音高元素的向量ID和典型采樣點數目的序列;數據5泛音分量波形形狀(音色)元素的向量ID;數據6非泛音分量幅度元素的向量ID和典型采樣點數目的序列;數據7非泛音分量波形形狀(音色)元素的向量ID;數據8泛音分量波形形狀(音色)元素的波形塊的開始位置;數據9泛音分量波形形狀(音色)元素的波形塊的結束位置(即循環部分的開始位置);數據10非泛音分量波形形狀(音色)元素的波形塊的開始位置;數據11非泛音分量波形形狀(音色)元素的波形塊的結束位置(即循環部分的開始位置);數據12非泛音分量波形形狀(音色)元素的循環部分的結束位置。
上述的數據1-數據12將在以下參照圖3詳細描述。
圖3是示意性地示出組成與所述奏法模塊相對應的實際波形段的各種波形分量和元素的圖。從圖3的頂部到底部,示出了已經在該波形段中檢測到的泛音分量的幅度元素、音高元素和波形形狀(音色)元素以及非泛音分量的幅度元素和波形形狀(音色)元素。應注意的是,圖中的數值對應于上述數據(數據1-數據12)。
更具體地說,數值“1”代表與該奏法模塊相對應波形段的采樣長度(波形段長度),例如,它對應于從其中得到所述奏法模塊的原始波形數據的總持續時間。數值“2”代表提示定時的位置,它可變地設定在奏法模塊的任何時間位置。雖然在原則上,聽取基于該波形的演奏聲音開始于提示定時的位置,但是出現波形分量的開始點可以在提示定時之前,這取決于特定奏法如轉彎激起的性質。例如,在小提琴的情況下,在實際聽音之前開始用弓弦進行摩擦,該數據適于精確地模擬實際聽音之前奏法波形的開始部分。數值“3”代表指定泛音分量的幅度元素向量數據的向量ID(“泛音幅度”)和存儲在編碼簿中的典型采樣點數目序列;圖中,兩個填充黑色的方形標記表示這些典型采樣點。數值“4”代表指定泛音分量的音高元素向量數據的向量ID(“泛音音高”)和典型采樣點數目序列。
數值“6”代表指定非泛音分量的幅度元素向量數據的向量ID(“非泛音幅度”)和典型采樣點數目序列。這些典型采樣點數目是要用來改變/控制向量ID所指定向量數據的數據,它們指定某些典型采樣點。隨著所指定典型采樣點的(圖中橫軸上繪出的)各時間位置和(圖中縱軸上繪出的)水準受到改變或控制,其他采樣點也改變,以使該向量的整體性質能夠受到改變。例如,這些典型采樣點數目代表比采樣總數少的分散的采樣;但是,這些典型采樣點數目可以是各采樣之間中間點處的值,或者是一預定范圍內若干連續采樣處的值。另一方面,這些典型采樣點數目可以是表示各采樣值之間差的一些值,而不是這些采樣值本身,要對這些采樣值作加法運算處理等。每一個向量數據的形狀,即包絡線波形的形狀可以通過沿橫軸(時間軸)和/或縱軸(水準軸)移動這些典型采樣點來改變。數值“5”代表指定泛音分量的波形形狀(音色)元素向量數據的向量ID(“泛音音色”)。
此外,圖3中,數值“7”代表指定非泛音分量的波形形狀(音色)元素向量數據的向量ID(“非泛音音色”)。數值“8”代表泛音分量的波形形狀(音色)元素波形塊的開始位置。數值“9”代表泛音分量的波形形狀(音色)元素波形塊的結束位置(即,泛音分量的波形形狀(音色)元素循環部分的開始位置)。即,“8”所指的點處的三角形起始點代表一非循環波形段,其中逐一存儲有特征波形形狀,接下來由“9”所指的點處的矩形起始點代表一循環波形段,它可以以一重復的方式讀取。該非循環波形段代表一高品質波形段,其是奏法(鏈接)等所特有的,而該循環波形段代表一相對單調聲音片段的單元波形,該片段具有單個或適當多個波循環。
數值“10”代表非泛音分量的波形形狀(音色)元素波形塊的開始位置。數值“11”代表非泛音分量的波形形狀(音色)元素波形塊的結束位置(即,非泛音分量的波形形狀(音色)元素循環部分的開始位置)。此外,數值“12”代表非泛音分量的波形形狀(音色)元素循環波形段的結束位置。數據3-數據7是表示存儲在與各波形元素有關的編碼簿中向量數據的ID數據,數據2和數據8-數據12是時間數據,該時間數據用來存儲以向量數據為基礎的原始波形(即,分離或分割波形之前的波形)。即,每一個奏法模塊的數據包括指定向量數據和時間數據的數據。采樣這樣存儲在奏法表中的奏法模塊數據和存儲在編碼簿中的波形產生素材(即向量數據),可以隨意構建期望的波形。也就是說,每一個奏法模塊包括代表要根據奏法或鏈接產生的波形狀態的數據。應注意的是,這些奏法模塊可以在類型方面和其中所包括的數據總數方面彼此不同,還可以包括除上述數據以外的其他數據。例如,這些奏法模塊可以包括要用來控制波形時間軸以使其伸長/縮短(時間軸伸長/縮短控制)的數據。
鑒于前面的段落已經描述了這樣一種情況,即,每一個奏法模塊包括泛音分量的所有基本波形組成元素(波形形狀、音高和幅度元素)和非泛音分量的所有基本波形組成元素(波形形狀和幅度元素),本發明并不受此限制,每一個奏法模塊或某些奏法模塊當然可以只包括泛音分量的波形組成元素(波形形狀、音高和幅度)和非泛音分量的波形組成元素(波形形狀和幅度)中一個元素。例如,每一個奏法模塊或某些奏法模塊可以包括從泛音分量的波形形狀、一個和幅度元素以及非泛音分量的波形形狀和幅度元素中選擇的一個元素。這樣,這些奏法模塊可以隨意用于每一個波形分量的結合,這是非常有利的。
本實施例中,一個期望音樂片段的自動演奏數據(音樂片段文件)集包括用來再現奏法波形的演奏過程數據,從而在根據自動演奏順序進程讀取演奏過程數據的基礎上產生各奏法波形。本實施例中每一個自動演奏數據(音樂片段文件)基本上是SMF(標準MIDI文件)格式,它包括普通MIDI數據和AEM(鏈接元素模塊化)演奏數據的混合體。例如,一個音樂片段的自動演奏數據集包括若干音軌的演奏數據,分配這些音軌中的一個或多個用于AEM演奏順序,該AEM演奏順序含AEM演奏過程(奏法過程),而分配其余的音軌用于普通的MIDI演奏順序。但是,MIDI數據和AEM演奏過程(奏法過程數據)可以混合地包括在單獨一個音軌中,在這種情況下,基本上以MIDI格式描述該AEM演奏過程(奏法過程)數據,并且為該AEM演奏數據分配一個或一個以上的MIDI頻道。此外,即使在為該AEM演奏數據分配整個音軌的情況下,原則上也可以以MIDI格式描述該數據。也就是說,可以把表示AEM演奏過程(奏法過程)的識別符加至以MIDI格式描述的數據上。當然,本實施例中也可以采用MIDI格式以外其他合適的數據格式。每個音軌的演奏數據包括不同演奏部分的演奏數據。此外,由于多個MIDI頻道的演奏數據可以混合地存在于單獨一個音軌的演奏數據中,所以甚至是單獨一個音軌的演奏數據也可以組成每個MIDI頻道不同演奏部分的演奏數據。例如,通過基于AEM演奏數據的奏法波形合成來再現一個或一個以上演奏部分的演奏聲音。舉例來說,在AEM演奏數據的基礎上,對于多個演奏部分如小提琴和鋼琴部分來說,可以分別合成奏法波形。
圖4的(A)部示出一音樂片段的自動演奏數據集的典型總結構圖,它包括音軌1、2、3……的標題和演奏數據序列。圖4的(B)部示出包括AEM演奏數據的一個音軌(例如音軌2)的演奏數據序列實例。類似于公知結構的普通演奏順序數據,圖4的(B)部的演奏數據序列包括時差數據(持續時間數據)和過程數據的結合。仍如眾所周知的那樣,每個時差數據(持續時間數據)代表一給定過程出現的時間點與下一個過程出現的時間點之間的時差。
圖4的(B)部中每一個奏法過程數據包括圖2所示第一分級水平的數據,即表示要響應于一奏法過程和與其有關的奏法參數而再現的奏法模塊的“奏法ID”。如上所述,在奏法過程數據中不必需要所有的奏法參數。
在圖4的(B)部所示實例中,“奏法過程(1)”包括表示激起(即進入)部分的奏法模塊的奏法ID和指示按與“奏法過程(1)”成對的關系存儲發聲開始的“提示項”數據。由“奏法過程(1)”所指示的激起(即進入)部分的奏法波形發聲開始點由與“奏法過程(1)”成對關系給出的“提示項”數據來指定。也就是說,對于激起部分來說,“奏法過程(1)”和相應的“提示項”一起被處理。這樣,與激起(即進入)部分相對應的“奏法過程(1)”的到達或出現時間僅僅表示的是,現在應當開始為產生該激起(即進入)部分的奏法波形作準備,它不表示發聲開始時間。如下面將要描述的那樣,這里,可以在開始產生激起(即進入)部分奏法波形之后開始產生相應的聲音,這樣,可以在與提示項出現時間點相對應的一個中途點處開始發聲,而不是從所產生的激起(即進入)部分奏法波形的開頭開始。這樣一種設置有利于模擬這樣一種情況,即,在演奏者開始演奏操作(例如開始用小提琴的弓弦摩擦)時,對該演奏操作有響應的顫動并不隨人可聽到的顫音立即產生。另外,在其他情況下,該設置可有助于增強波形產生的靈活性和可控制性。
此外,在圖4的(B)部所示的實例中,“奏法過程(2)”包括表示一主體部分奏法模塊的奏法ID,“奏法過程(3)”包括表示一連接部分奏法模塊的奏法ID,“奏法過程(4)”包括表示另一個主體部分奏法模塊的奏法ID。連接部分的奏法模塊代表一連接奏法波形,它用來在例如諸如連接符或連音符之類的奏法中從前面一個聲音連接到隨后一個聲音而不消除前面一個聲音。這樣,類似于上述激起部分的“奏法過程(1)”,指示該隨后一個聲音發聲開始定時的“提示項”數據按照與“奏法過程(3)”成對的關系給出,也就是說,“提示項”緊隨“奏法過程(3)”之后出現。連接部分的“奏法過程(3)”和相應的“提示項”一起被處理。“奏法過程(4)”表示通過上述連接部分與該前面一個聲音相連的該隨后一個聲音主體部分的奏法模塊。“奏法過程(5)”包括表示一斷開(完成)部分奏法模塊的奏法ID,指示聲音減弱(斷開開始的“提示結束項”數據與“奏法過程(5)”以成對的關系存儲。斷開部分的“奏法過程(5)”和相應的“提示結束項”一起被處理。類似于提示項,本實施例中,斷開(即完成)部分奏法波形的產生開始之后,開始減弱相應聲音(提示結束項),從而在與提示結束項出現的時間點相對應的中途點處開始減弱聲音,與提示項有關的如上所述同樣的原因,這不是從斷開(完成)部分所產生的奏法波形開頭開始。這樣一種設置在模擬某樂器演奏操作終止時的情況下是有利的。另外,在其他情況下,這種設置有助于增強波形產生的靈活性和可控制性。
圖1的波形產生裝置用一臺計算機合成普通的聲音波形和奏法波形,該計算機執行普通的發聲程序、用于奏法波形產生處理的預定程序等等。如圖5中示意性示出的那樣,這種奏法波形產生過程通常包括簡單的自動演奏裝置段20、奏法順序段21、演奏部分段22、奏法合成段23和波形合成段24。圖6是一示意性時序圖,它表示出構成該奏法波形產生過程的上述過程方框或段20-24所執行的各種操作之間總的時間關系。在圖6中平行示出的方框30、31、32、33和34大致表示一些時區,在這些時區中,簡單的自動演奏裝置段20、奏法順序段21、演奏部分段22、奏法合成段23和波形合成段24執行它們各自指定的操作。在圖6中平行示出方框30、31、32、33和34表示以并行的方式進行各段20、21、22、23和24的操作。
(1)簡單的自動演奏裝置段20簡單的自動演奏裝置段20執行以下功能從一存儲媒體中讀取要再現的期望音樂片段的自動演奏數據集(音樂片段文件),該存儲媒體包括這種自動演奏數據集;接受由輸入操作者執行的有關期望音樂片段的各種設定操作(例如傳輸量設定操作、音量調節操作等)和指令操作(例如再現開始指令、再現停止指令等);控制包括當前再現位置(時間)顯示的各種顯示填充必要的信息;以及其他功能。
圖6的時間方框30表示簡單的自動演奏裝置段20執行其配屬操作的時區。簡單的自動演奏裝置段20從自動演奏再現程序啟動的時間開始運行,到自動演奏再現程序到結尾的時間結束。當發出再現開始指令PLAY時,簡單的自動演奏裝置段20從存儲媒體中讀取要再現的期望音樂片段的自動演奏數據集(音樂片段文件),然后在時區301的定時翻譯該讀取的自動演奏數據。當然,接受再現開始指令PLAY之前,可以根據對期望音樂片段的選擇開始自動演奏數據(音樂片段文件)的讀取。
簡單的自動演奏裝置段20構建成能夠控制具有以如前所述方式混合存儲在單一音軌上或若干音軌上的普通MIDI數據和AEM演奏數據的自動演奏數據。另外,簡單的自動演奏裝置段20對于包括在讀取的自動演奏數據(音樂片段文件)中的AEM演奏數據執行基本的翻譯操作,并且將單獨的必要奏法過程數據重建為賦予時間標記的奏法過程序列對象。“基本的翻譯操作”包括例如,累積各過程之間的時差,以在時差的基礎上創建各個過程(該音樂片段的一系列絕對時間信息)的時間標記。把具有如此時間標記的重建奏法過程序列對象發送給奏法順序段21(即,寫入與該順序段21有關的存儲器中)。在圖6的時區301和302結束之前完成演奏數據翻譯和奏法過程序列對象的重建。
簡言之,簡單的自動演奏裝置段20起這樣一個作用,即,在構建方面類似現有的自動演奏數據,將AEM演奏數據(如圖4中說明性示出的那樣)轉換為一數據序列,該數據序列可易于受奏法順序段21的控制。應注意的是,由設置在簡單的自動演奏裝置段20中公知的MIDI演奏定序器(MIDI演奏裝置)來處理普通MIDI演奏數據;但是,這里不具體描述普通MIDI演奏數據的處理,因為它是公知技術。另外,盡管基于AEM演奏數據的奏法波形產生過程需要有相當長的延時,但是由MIDI演奏裝置進行的普通MIDI演奏數據處理實際不會產生時間延時。因此,本實施例設置成構建基于AEM演奏數據的奏法波形產生過程的延遲時間,用MIDI演奏裝置強迫性延遲該普通MIDI演奏數據的處理,由此在普通MIDI演奏數據的處理與AEM演奏數據的處理之間實現準確的同步。
·填充省略的必要信息的功能如果從所讀取的自動演奏數據(音樂片段文件)的AEM演奏過程數據(奏法過程數據)中省略一個必要的奏法參數,那么簡單的自動演奏裝置段20執行另一個填充省略參數的功能,由此補充該AEM演奏過程數據。例如,在一給定的奏法過程的ID是“顫吟長主體”的情況下,如果并未設定指定例如顫吟深度的控制參數,那么會導致用戶可能不了解用來合成奏法波形的顫吟程度的麻煩。這樣,根據奏法模塊的類型,該奏法過程必須增加奏法ID和這樣一個必要參數。這樣,簡單的自動演奏裝置段20查對是否每一個奏法過程數據都包括這樣一個必要參數,如果不包括,那么它自動增加該必要參數。在時區302的定時時刻執行該信息補充功能。從簡單的自動演奏裝置段20發送到奏法順序段21的奏法過程序列對象包括這樣一個增加的參數。作為自動填充該缺少的必要參數的一個典型方式,可以為每一種奏法模塊預先存儲各種參數的預定缺省(標準)值,以使與所述奏法過程相對應的一個缺省值能夠被用來填充必要參數。作為確定這些缺省值的一個典型方式,可以預先準備各種參數的預定固定缺省值,或者可以緩存各種參數的最后使用的(最近使用的)值,以便能夠確定該預定固定缺省值,并且將其用作各缺省值;當然,這些缺省值可以以任何其他合適的方式確定。
預先將預定時間保留為要被簡單的自動演奏裝置段20使用的時區301和302,也就是說,響應于再現開始指令PLAY,在時區301和302內執行SMF自動演奏數據的讀取和必要的信息補充。雖然這里并沒有具體描述,不過用戶可以設定要在奏法波形產生過程中使用的各種處理時間信息,并且進行各種其他的設定操作,之后發出再現開始指令PLAY。簡單的自動演奏裝置段20在時區302的結尾處將順序再現開始指令發送給奏法順序段21。在響應于該再現開始指令開始實際再現演奏之后,簡單的自動演奏裝置段20從波形合成段24接收表示改變再現演奏當前時間點(即,改變當前再現位置)的信息,并且顯示再現演奏的當前時間。圖6中的小方框303a、303b、303c……代表作為周期性中斷過程執行的顯示改變過程的時間,該周期性中斷過程用來周期性地顯示改變再現演奏的當前時間。
(2)奏法順序段21奏法順序段21緩存帶有時間標記的奏法過程序列對象(即,奏法過程數據序列),它根據時間標記所表示的再現時間按順序讀取奏法過程數據。對奏法過程數據的依次讀取作為批處理執行,在與期望的“輸出頻率”相對應的每一個時間周期都執行該批處理。圖6說明性地示出這些時間周期的連續性。
·部分管理由于以一并行的方式對不同演奏部分進行奏法波形合成,因此奏法順序段21的第一項任務是在接受順序再現開始指令之前檢查有多少AEM演奏部分存在于當前的音樂片段演奏中,并且指示演奏部分段22設定用于再現的必要數目的AEM演奏部分。然后,奏法順序段21翻譯來自簡單的自動演奏裝置段20的帶有時間標記的奏法過程序列對象(即奏法過程數據序列),并且在逐項的基礎上設定(緩存)該奏法過程數據序列。這樣,在對每一個演奏部分進行接受順序再現開始指令的操作之后,對奏法過程數據的順序進行讀取。因此,在以下的描述中,短語“預先讀取給定過程之后的過程”或類似的話討論同一演奏部分的奏法過程數據序列中兩個連續過程。以下描述中“部分”一詞或“演奏部分”一詞是指“AEM演奏部分”。
·其他預備性操作作為上述部分管理以外的另一種初步操作,奏法順序段21根據考慮了各種操作延時的各種時間參數執行一過程。時間參數的實例包括以下內容“與該奏法順序段的輸出頻率相對應的時間周期”如前所述,這是一個用來設定頻率的參數,采用該參數,奏法順序段21應當將演奏過程數據輸出給演奏部分段22和后面的各處理段。也就是說,在一給定的輸出時間點(當前時刻)處,奏法順序段21集中發送在相應時間周期內存在的演奏過程數據。應注意的是,本實施例不僅用來讀取當前時間的演奏過程(更具體地說,在當前時間周期內出現的演奏過程),還用來預先讀取一個或一個以上后面的(將來的)演奏過程,以便將如此讀取的演奏過程發送給演奏部分段22,這將在下面詳細描述。在該演奏部分段22和以下處理段中,在每一個這樣的時間周期所提供的演奏過程數據基礎上執行奏法波形再現所必需的操作。
“該奏法順序段中的預先處理時間”這是一個用來設定該奏法順序段21應當預先處理信息到何種程度的參數。
“發聲開始之前的等待時間周期”這是一個用來補償順序再現開始時操作延時的參數。也就是說,顯然在順序再現開始位置之前與該發聲等待時間周期相等量的位置設定波形合成段24中的操作開始時間;即,將順序再現開始位置延遲一個發聲等待時間周期。更具體地說,在順序再現開始時,由于不只必須對與奏法順序段21的輸出頻率相對應的時間周期內出現的演奏過程集中進行奏法波形產生處理,還必須在預先處理時間內對要處理的演奏過程集中進行奏法波形產生處理,會由該集中處理產生的延時設定為該發聲等待時間周期以承受足夠的處理量,從而補償再現開始時的操作延時。
“訪問編碼簿的預取時間”這是一個時間參數,用來設定應當由波形合成段24從硬盤(即存儲在其中的編碼簿)中預先讀取或預取當前時間后的數據到RAM中達何種程度。奏法順序段21設定波形合成段24中該預取時間的數據。
“輸出到音頻裝置之前的等待時間周期”這是一個時間參數,用來設定波形合成段24應當比輸出音頻裝置的操作時間早到何種程度來開始執行波形合成處理過程。該奏法順序段21設定波形合成段24中該等待時間周期的數據。例如,波形合成段24執行對一寫入動作的控制,該寫入動作是將所合成的波形數據寫入輸出緩沖存儲器,在其操作時間過去之后的等待時間周期后使用該輸出緩沖存儲器。
上述時間參數可以固定在各自的預定值上,或者由用戶可變地設定。在后一情況下,這些時間參數由簡單的自動演奏裝置段20的設定操作進行可變地設定。
·未來過程的預先讀取現在假定在與奏法順序段21有關的存儲器中,以如圖7A所示的方式緩存一個給定演奏部分的奏法過程序列對象。該圖中,EV1、EV2……代表各個過程,Ts1、Ts2……代表與各個過程相對應的施加標記。還假定該存儲器的讀取指針設定為與初始時間點t0相對應。
圖7B是一時序圖,簡要表示出奏法順序段21的過程處理的定時。當從簡單的自動演奏裝置段20給出一順序再現開始指令時,到達第一過程定時,并將該第一活過程定時設定為初始時間點t0。每一次與奏法順序段21的輸出頻率相對應的時間周期過去之后,到達后面的過程定時,這些后面的過程定時設定為時間點t1、t2……。在初始時間點t0處,奏法順序段21從圖7A的存儲器中讀取第一時間周期所定義的當前時區內出現的過程(當前過程)以及時間標記。由于每一個過程包括一奏法ID、各個參數等,所以如前所述,把屬于該過程的所有這些數據一起讀取出來作為單一數據集。圖7B示出了這樣一種情況,即,第一過程EV1和第二過程EV2出現在第一時間周期所定義的時區內;第一過程EV1通常為一激起部分的奏法過程,它連同如前所述的下一個提示項EV2一起(與其以成對的關系)被處理。當然,在某些情況下,在當前時區內沒有過程。可以根據各時間標記Ts1、Ts2……識別各個過程EV1、EV2……的時間位置。
在本實施例中,奏法順序段21不僅讀取這些當前奏法過程,還讀取下一個時間周期內出現的一個或一個以上奏法過程(未來過程)。也就是說,在圖7B所示的實例中,在與過程EV1和EV2相同的時間預先讀取下一個奏法過程EV3。把如此讀取的具有各自時間標記的當前和未來奏法過程EV1、EV2和EV3送至下面的演奏部分段22。在一部分接一部分的基礎上執行這些操作,之后,將奏法順序段21置于等待或待機狀態下。
就上述讀取當前奏法過程和下一個(未來)奏法過程并且將其傳送給演奏部分段22的設置來說,考慮到基于連續演奏過程的各奏法模塊之間的關系,屬于當前奏法過程的奏法模塊的波形合成可以在演奏部分段22和以后的處理段中進行。例如,可以采用適當的處理,以實現基于連續演奏過程的奏法模塊所包括的各奏法波形之間平滑的連接。
另外,在圖7B所示的實例中,一旦到達下一個處理時間點t1,就重新開始奏法順序段21進行的處理。在不存在過程的情況下,奏法順序段21不進行處理。如果一到達下一個處理時間點tn就重新開始奏法順序段21進行的處理,并且如果奏法過程EV3出現在與該時間點tn相對應的當前時區內,那么奏法順序段21讀取當前時間周期內出現的每一個過程(即,每一個當前過程),并且預先讀取下一個時間周期內出現的每一個過程(每一個未來過程)。由于演奏部分段22存儲每一個接收到的過程,并且一直保持它到進行相應過程處理過程為止,所以這里不必再次讀取已經讀取的過程。也就是說,圖7B的實例中,不必再次讀取已經在最近一次讀取操作期間作為未來過程讀取的、出現在與處理時間點tn相對應的當前時間周期內的過程EV3。在再下一個過程EV4需要用來處理當前過程EV3的過程中,讀取過程EV4及其時間標記,并且將其提供給演奏部分段22。在這種情況下,演奏部分段22調整屬于已經接收的當前過程EV3和當前接收的未來過程的各個奏法模塊之間的連接關系。
圖6中,小方框311a、311b、311c……示出奏法順序段21所執行的當前和未來過程的上述過程讀取定時。
(3)演奏部分段22演奏部分段22存儲每一個來自奏法順序段21的帶有時間標記的奏法過程,在該奏法過程的基礎上執行預定的預演處理過程,并且管理要在下面的奏法合成段23中執行的過程。演奏部分段22的這些操作還在一部分接一部分的基礎上進行。圖6中,小方框321a、321b、321c……示出了演奏部分段22執行預演處理過程的定時。
·預演處理過程該預演處理過程用來在進行奏法合成之后,實現后面奏法波形的各種波形組成元素如波形形狀(音色)、幅度和音高的各個開始點和結束點之間按時間和分級水平值的平滑的連接。為此,在實際奏法合成之前,預演處理過程借助“預演”讀取向量ID、各采樣點數目的序列以及與奏法過程相對應的參數,并且在如此讀取的信息基礎上進行模擬奏法合成,由此設定用來控制后面奏法模塊開始點和結束點處時間和分級水平值的適當參數。這樣,對于每一個波形組成元素如波形形狀、幅度和音高來說,通過奏法合成段23利用已經在預演處理過程的基礎上設定的參數執行奏法合成處理過程,后面的奏法波形可以互連。也就是說,在本實施例中,不必調整或控制已經合成的奏法波形或波形組成元素以實現各奏法波形或波形組成元素之間的平滑連接,而是就在實際合成奏法波形或波形組成元素之前,演奏部分段22執行“預演”處理過程,以模擬合成奏法波形或波形組成元素,由此設定與奏法模塊的開始點和結束點處時間和分級水平值有關的最佳參數。然后,奏法合成段23用如此設定的最佳參數進行后面的奏法波形或波形組成元素的實際合成,以便能夠平滑地互連后面的奏法波形或波形組成元素。
在預演處理過程中,根據要處理奏法模塊的類型或特點進行必要的操作。雖然該預演處理過程中要處理的主要對象是奏法過程,但是也考慮提示項和提示結束過程的出現時間。為作參考,圖8示出其中把要產生聲音自始至終的奏法模塊結合在一起的方式實例。圖8所示的結合按所述順序包括(1)指定激起(進入)部分奏法模塊的奏法過程EV1;(2)提示項EV2;(3)指定主體部分奏法模塊的奏法過程EV3;(4)指定連接部分奏法模塊的奏法過程EV4;(5)提示項EV5;(6)指定主體部分奏法模塊的奏法過程EV6;(7)指定斷開(完成)部分奏法模塊的奏法過程EV7;和(8)提示結束過程EV8。
在圖8所示的實例中,當要根據隨后設定為當前過程的奏法過程EV1和提示項EV2所指定的激起(進入)部分奏法模塊合成一奏法波形時,如前所述,預先將下一個奏法過程EV3讀取為一未來過程,響應于此,預演處理過程確定這兩個奏法模塊之間平滑連接所必需的參數。然后,當要根據隨后設定為當前過程的奏法過程EV3所指定的主體部分奏法模塊合成一奏法波形時,預先將指定一連接部分奏法模塊的下一個奏法過程EV4和提示項EV5讀取為未來過程,響應于此,預演處理過程確定這兩個奏法模塊之間平滑連接所必需的參數。類似地,當要根據隨后設定為當前過程的奏法過程EV4和提示項EV5所指定的連接部分奏法模塊合成一奏法波形時,如前所述,預先將下一個奏法過程EV6讀取為一未來過程,響應于此,預演處理過程確定這兩個奏法模塊之間平滑連接所必需的參數。在圖示實例中,要響應于第一提示項EV2產生的聲音和要響應于下一個提示項EV5產生的聲音通過連接部分的奏法波形互連。類似地,當要根據隨后設定為當前過程的再下一個奏法過程EV6所指定的主體部分奏法模塊合成一奏法波形時,預先將指定一斷開部分奏法過程模塊的后面的奏法過程EV7和提示結束過程讀取為未來過程,響應于此,預演處理過程確定這兩個奏法模塊之間平滑連接所必需的參數。此外,當要根據隨后設定為當前過程的奏法過程EV7和提示結束過程EV8所指定的斷開(完成)部分奏法模塊合成一奏法波形時,不再執行考慮再下一個過程的預演處理過程,因為響應于提示結束或聲音減弱指令,終止斷開(完成)部分的奏法波形,因而不必與下一個奏法波形相連。
以下的段落描述了涉及幾種奏法模塊的預演處理過程具體實例。
<激起(進入)模塊>
圖9A是一流程圖,表示在當前過程指定一激起(進入)部分的奏法模塊時預演處理過程的典型步驟順序(“激起模塊預演處理過程”)。
在步驟S1a,把目前要處理的每一個奏法過程(當前過程)(圖8所示實例中的過程EV1和EV2)發送給奏法合成段23,并且通過奏法合成段23從上述奏法表中把向量ID、典型采樣點數目的序列(形狀)和與指定一具體激起部分奏法模塊的奏法ID相對應的其他參數讀取為預演數據。把如此讀取的預演數據送至演奏部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如分級水平和時間值。
在步驟S2a,把通過預先讀取得到的下一個奏法過程或未來過程(圖8所示實例中的過程EV3)發送到奏法合成段23,并且由奏法合成段23從上述奏法表中把向量ID、典型采樣點數目的序列(形狀)和與指定一具體主體部分奏法模塊的奏法ID相對應的其他參數讀取為預演數據。把如此讀取的預演數據送至演奏部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如分級水平和時間值。
在下一個步驟S3a,在當前和下一個奏法過程的讀取數據基礎上,確定屬于當前奏法過程的奏法模塊的預定分級水平和時間數據。這樣,對于以上的步驟S1a和S2a來說,只需要從奏法表中讀取該步驟的操作所必需的數據。以下參照圖10的(a)、(b)、(c)和(d)描述這里執行的預演處理過程典型細節。
圖10的(a)區示出激起部分奏法模塊中泛音分量的向量實例;具體地說,“HA”代表該泛音分量幅度向量的典型采樣點數目序列(在圖示實施例中,為三個采樣點“0”、“1”和“2”),“HP”代表該泛音分量音高向量的典型采樣點數目序列(在圖示實施例中,為三個采樣點“0”、“1”和“2”),“HT”表示該泛音分量波形形狀向量的一個實例(該波形形狀在這里僅示出其包絡線)。應注意的是,該泛音分量的波形形狀向量HT基本上包括代表聲音升高部分整個波形段的采樣數據,并且具有代表該波形段結尾處循環波形段的數據。為了與緊隨其后的波形段平滑轉換合成,以重復或循環的方式讀取該代表循環波形段的數據。限定該激起部分奏法模塊中泛音分量開始時間的參數“preBlockTimeE”指定該激起波形中泛音分量的實際發聲開始點與波形產生開始時間之差。為此,取得相應提示項(圖8實例中的過程EV2),以了解實際發聲開始點(圖10實例中的“noteOnTime”),并且將該實際發聲開始點與參數“preBlockTimeE”所代表的開始時間之差(“noteOnTime”-“preBlockTimeE”)設定為激起部分奏法模塊中泛音分量的開始時間。
在限定該激起部分奏法模塊中泛音分量結束時間的各種參數中,“postBlockTimeE”是限定激起波形中泛音分量主體的實際發聲開始點與結束時間點之差的參數,“fadeTimeE”是限定該激起波形結尾處平滑轉換時間長度的參數。這樣,包括平滑轉換結束部分的激起部分奏法模塊中泛音分量的結束時間“endTimeH”可以確定為“noteOnTime+(postBlockTimeE+fadeTimeE)”。該結束時間“endTimeH”被發送到奏法合成段23,作為限定下一個奏法過程(圖8實例中的EV3)所指定奏法模塊中泛音分量開始時間的數據。這樣,執行預演處理過程以根據該泛音分量的上述結束時間“endTimeH”設定下一個奏法模塊泛音分量的開始時間。
圖10的(b)區示出激起部分奏法模塊中非泛音分量的向量實例;具體地說,“NHA”代表該非泛音分量幅度向量的典型采樣點數目序列(在圖示實例中,是兩個采樣點“0”和“1”),“NHT”示出該非泛音分量的波形形狀向量實例(該波形形狀這里僅僅示出其包絡線)。限定激起部分奏法模塊中非泛音分量開始時間的參數“preTimeNH”確定該激起波形中非泛音分量實際發聲開始點與波形產生開始點之差。為此,取得相應提示項(圖8實例中的過程EV2)的時間標記,以了解實際發聲開始點(圖10實例中的“noteOnTime”),該實際發聲開始點與參數“preTimeNH”所代表的開始時間之差(“noteOnTime”-“preTimeH”)設定為激起部分奏法模塊中非泛音分量的開始時間。
限定該激起部分奏法模塊中非泛音分量結束時間的參數“postTimeNH”是這樣一個參數,即,它確定激起波形中非泛音分量的實際發聲開始點與結束時間點之差。這樣,該激起部分奏法模塊中非泛音分量的結束時間“endTimeNH”可以確定為“noteOnTime+postTimeNH”。該結束時間“endTimeNH”被發送到奏法合成段23,作為限定下一個奏法過程(圖8實例中的EV3)所指定奏法模塊中非泛音分量開始時間的數據。這樣,執行預演處理過程以根據該非泛音分量的上述結束時間“endTimeNH”設定下一個奏法模塊中非泛音分量的開始時間。由于可以從前述內容中清楚得知,所以可以獨立于泛音分量的那些過程而執行該非泛音分量的時間調整過程。
對于幅度和音高級別來說,預演處理過程是針對以下二者之間的匹配進行調整屬于當前奏法過程的激起部分奏法模塊幅度向量結束點處(例如圖10(a)中HA的位置“2”)與音高向量(例如圖10(a)中HP的位置“2”)的結束點水平或值,和屬于下一個奏法過程的主體部分奏法模塊幅度向量開始點處(例如圖10(c)中HA的位置“0”)與音高向量(例如圖10(c)中HP的位置“0”)的開始點水平或值。
圖10的(c)區示出主體部分奏法模塊中泛音分量的向量實例;具體地說,“HA”代表該泛音分量幅度向量的典型采樣點數目序列(在圖示實施例中,為兩個采樣點“0”和“1”),“HP”代表該泛音分量音高向量的典型采樣點數目序列(在圖示實施例中,為兩個采樣點“0”和“1”),“HT”表示該泛音分量波形形狀向量的一個實例(該波形在形狀這里僅由黑色矩形方框示出)。主體部分中泛音分量的波形形狀向量HT包括由N(N是整數)個黑色矩形方框(0,1,……,N-1)代表的N個循環波形段,預定時間長度的主體部分波形通過連續讀取和連接連續的循環波形段來產生。如果減小或增大(縮短或拉長)主體部分波形的時間長度,那么減少或增加循環波形段的循環或重復時間足矣。在要進一步縮短主體部分波形時間長度的情況下,可以以使其稀疏的方式,即,以適當剔除N個循環波形段中的所需一個或一個以上段的方式讀取主體部分波形。另一方面,如果要進一步拉長主體部分波形的時間長度,那么可以以預定順序或隨機地另外在N個循環波形段中插入N個循環波形段中的所需兩個或兩個以上段。
在圖9(A)的步驟S2a,從奏法表中得到表示屬于下一個奏法過程的主體部分奏法模塊的該泛音分量的幅度向量HA開始點(圖10(c)中HA的位置“0”)處水平(開始點水平)的數據。然后,在下一個步驟S3a,把一速度值、音量設定值等加入到所得到的開始點水平數據中,由此計算主體部分奏法模塊泛音分量的幅度向量HA實際開始點水平,如此計算的實際開始點水平設定為屬于當前奏法過程的激起部分奏法模塊中泛音分量結束點(圖10(a)中HA的位置“2”)處幅度水平(值)。
類似地,從奏法表中得到表示屬于下一個奏法過程的主體部分奏法模塊該泛音分量的音高向量HP開始點(圖10(c)中HP的位置“0”)處水平(開始點水平)的數據。然后,把一音高控制值加入到所得到的開始點音高值數據中,由此計算主體部分奏法模塊泛音分量的音高向量HP實際開始點音高值,如此計算的實際開始點音高值設定為屬于當前奏法過程的激起部分奏法模塊中泛音分量結束點(圖10(a)中HP的位置“2”)處音高值。
圖10的(d)區示出主體部分奏法模塊中非泛音分量的向量實例;具體地說,“NHA”代表該非泛音分量幅度向量的典型采樣點數目序列(在圖示實施例中,為兩個采樣點“0”和“1”),“NHT”表示該非泛音分量波形形狀向量的一個實例。這里,非泛音分量的波形形狀向量包括三個方框;第一方框包括預定時間周期(NHBlockTime0)內非泛音分量的波形形狀全波波形段,第二方框包括要循環的非泛音分量波形形狀(循環),第三方框包括預定時間周期(NHBlockTime1)內非泛音分量的波形形狀全波波形段。通過調整第二方框即要循環的非泛音分量波形形狀(循環)的循環(重復)再現長度,對與主體部分時間長度有關的非泛音分量波形形狀的施加長度進行調整。
在圖9(a)區的步驟S2a處,從奏法表中得到表示屬于下一個奏法過程的主體部分奏法模塊該非泛音分量的幅度向量NHA開始點(圖10(d)中NHA的位置“0”)處水平的數據。然后,在下一個步驟S3a,把一速度值、音量設定值等加入到所得到的開始點水平數據中,由此計算主體部分奏法模塊非泛音分量的幅度向量NHA實際開始點水平,如此計算的實際開始點水平設定為屬于當前奏法過程的激起部分奏法模塊中非泛音分量幅度向量結束點(圖10(d)中NHA的位置“1”)處幅度水平(值)。
一旦完成上述操作,該預演處理過程就轉至圖9(a)區中的步驟S4a,這里它指示奏法合成段23開始合成屬于當前奏法過程的奏法模塊。在下一步驟S5a,把已經以上述方式確定的當前奏法過程(圖8實例中的過程EV1)的泛音分量和非泛音分量結束時間“endTimeH”和“endTimeNH”設定為限定下一個奏法過程(圖8實例中的過程EV3)的泛音分量和非泛音分量模塊開始時間的數據。一旦完成該預演處理過程,流程轉移到下述奏法合成段23的處理過程。以下的段落描述對其他類型奏法模塊進行的預演處理過程。
<主體部分模塊>
圖9B是一流程圖,表示在當前過程指定一主體部分的奏法模塊時預演處理過程的典型步驟順序(“主體模塊預演處理過程”)。
在步驟S1b,把目前要處理的每一個奏法過程(當前過程)(圖8所示實例中的過程EV3或EV6)發送到奏法合成段23,并且通過奏法合成段23從上述奏法表中把向量ID、典型采樣點數目的序列(形狀)和與指定一具體主體部分奏法模塊的奏法ID相對應的其他參數讀取為預演數據。把如此讀取的預演數據送至演奏部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如水平和時間值。應注意的是,在最后的奏法的預演處理期間已經被調整或改變的那些參數這里按其原值使用。
在步驟S2b,把通過預先讀取得到的下一個奏法過程或未來過程發送給奏法合成段23,由奏法合成段23讀取向量ID、典型采樣點數目的序列(形狀)和與奏法ID相對應的其他參數并送至演奏部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如水平和時間值。在指定奏法過程的主體部分之后跟隨指定斷開部分或連接部分的奏法過程。在圖8的實例中,指定連接部分奏法模塊的奏法過程EV4和相應的提示項EV5跟在主體部分指定奏法過程EV3之后,指定斷開部分奏法模塊的奏法過程EV7和相應的記錄結束過程EV8跟在主體部分指定奏法過程EV6之后。
在步驟S3b和S5b,在當前和下一個奏法過程的各讀取數據基礎上,確定屬于當前奏法過程的奏法模塊的預定水平和時間數據。在步驟S4b,預演處理過程指示奏法合成段23開始合成屬于當前奏法過程的主體部分奏法模塊。
基本上,調整主體部分奏法模塊的開始時間,以匹配直接在其前面的奏法模塊的結束時間,并且調整該主體部分奏法模塊的結束時間,以匹配緊跟其后的奏法模塊的開始時間。此外,作為該主體部分奏法模塊的泛音分量和非泛音分量各自幅度向量的開始點水平和結束點水平以及該主體部分奏法模塊的泛音分量音高向量的開始點水平和結束點水平,采用其前面和后面的奏法模塊的那些值。也就是說,執行預演處理過程,以便設定其前面奏法模塊的結束點水平,使其匹配主體部分奏法模塊的開始點水平,并且設定其后面奏法模塊的開始點水平,使其匹配該主體部分奏法模塊的結束點水平。
這里不必確定主體部分奏法模塊的泛音分量和非泛音分量的開始時間,因為它們已經由為前面的奏法過程(例如,上述激起部分奏法模塊過程)進行的預演處理過程所確定。
為了確定主體部分奏法模塊的泛音分量和非泛音分量各自的結束時間,在S2b預演處理下一個奏法模塊(斷開或連接部分),以便確定下一個奏法模塊的泛音分量和非泛音分量各自的開始時間。然后,在步驟S3b,把如此確定的下一個奏法模塊的泛音分量和非泛音分量的開始時間確定為當前主體部分奏法模塊的泛音分量和非泛音分量各自的結束時間。
這樣的時間確定操作詳細內容可以以與上述涉及激起部分奏法模塊基本相同的方式進行。
為作參考,圖11(a)區示出了該主體部分奏法模塊之后連接部分奏法模塊中泛音分量的向量實例,而圖11(b)區示出了該連接部分奏法模塊中非泛音分量的向量實例。參考符號“HA”、“HP”、“HT”、“NHA”、“NHT”等具有如早先涉及圖10所述相同的含義。在圖11(a)區中,限定該泛音分量開始時間的參數“preTimeH”確定該連接部分中提示項(圖8實例中的過程EV5)出現時間與該連接部分中泛音分量的波形產生開始時間之差。在該預演處理過程中,取得該提示項(圖8實例中的過程EV5)的時間標記,以了解實際發聲開始點(圖11(a)區實例中的“noteOnTime”),并且將該實際發聲開始點與參數“preTimeH”所代表的開始時間之差(“noteOnTime”-“preTimeH”)設定為該連接部分奏法模塊中泛音分量的開始時間。這樣,將已經由該預演處理過程取得的連接部分奏法模塊中泛音分量的開始時間設定為主體部分奏法模塊中泛音分量的結束時間。類似地,采用圖11(b)區中所指的參數“preTimeNH”執行該預演處理過程,該參數限定非泛音分量的開始時間,以便確定該連接部分奏法模塊中非泛音分量的開始時間,并且設定為主體部分奏法模塊中非泛音分量的結束時間。
主體部分奏法模塊中泛音分量和非泛音分量幅度向量各自的開始點水平和泛音分量音高向量的開始點水平已經通過對前面(例如激起部分)奏法模塊進行的預演處理過程得到設定,它們作為前面(例如激起部分)奏法模塊中泛音分量和非泛音分量幅度向量各自的結束點水平和泛音分量音高向量的結束點水平。
因此,在下一個步驟S5b,把主體部分奏法模塊中泛音分量和非泛音分量幅度向量各自的結束點水平和泛音分量音高向量的結束點水平設定為下一個奏法過程(未來過程)所指定的奏法模塊中泛音分量和非泛音分量幅度向量的開始點水平和泛音分量音高向量的開始點水平。
這樣的水平確定操作詳細內容可以以與上述涉及激起部分奏法模塊基本相同的方式進行。也就是說,從奏法表中得到表示屬于當前奏法的主體部分奏法模塊泛音分量幅度向量HA結束點(圖10(c)區中HA的位置“1”)處水平的數據。然后,把速度值、音量設定值等加入到所得到的結束點水平數據中,由此計算主體部分奏法模塊泛音分量的幅度向量HA實際結束點水平,如此計算的實際結束點水平設定為屬于下一個奏法過程的奏法模塊中泛音分量幅度向量的開始點(圖11(a)中HA的位置“0”)處幅度水平(值)。類似地,從奏法表中得到表示屬于當前奏法過程的主體部分奏法模塊該泛音分量的音高向量HP結束點(圖10(c)中HP的位置“1”)處值的數據。然后,把一控制值加入到所得到的結束點音高值數據中,由此計算主體部分奏法模塊泛音分量的音高向量HP實際結束點音高值,如此計算的實際結束點音高值設定為屬于下一個奏法過程的主體部分奏法模塊泛音分量音高向量的開始點(圖11(a)中HP的位置“0”)處音高值。
類似地,從奏法表中得到表示屬于當前奏法過程的主體部分奏法模塊非泛音分量的幅度向量NHA結束點(圖10(d)中NHA的位置“1”)處水平的數據。然后,把速度值、音量設定值等加入到所得到的開始點水平數據中,由此計算主體部分奏法模塊非泛音分量的幅度向量NHA實際結束點水平數據,如此計算的實際結束點水平設定為屬于下一個奏法過程的激起部分奏法模塊中非泛音分量幅度向量開始點(圖11(b)中NHA的位置“0”)處幅度水平(值)。
<連接部分模塊>
圖9C是一流程圖,它示出在當前過程指定一連接部分的奏法模塊時預演處理過程的典型步驟順序(“連接模塊預演處理過程”)。
在步驟S1c,把目前要處理的每一個奏法過程(當前過程)(圖8所示實例中的過程EV4和EV5)發送給奏法合成段23,并且通過奏法合成段23從上述奏法表中把向量ID、典型采樣點數目的序列(形狀)和與指定一具體連接部分奏法模塊的奏法ID相對應的其他參數讀取為預演數據。把如此讀取的預演數據給至演奏部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如水平和時間值。應注意的是,在對前面奏法的預演處理過程中已經受到調整或改變的那些參數這里按其原值使用。
在步驟S2c,把通過預先讀取得到的下一個奏法過程或未來過程發送給奏法合成段23,并且讀取向量ID、典型采樣點數目的序列(形狀)和與奏法ID相對應的其他參數,將它們送至演奏部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如水平和時間值。在指定第二主體部分的奏法過程(例如圖8實例中的過程EV6)之后,指定該奏法過程的連接部分。
在圖9C的步驟S3c和S5c,在當前和下一個奏法過程的如此得到的數據基礎上,確定屬于當前奏法過程的奏法模塊的預定水平和時間數據。在步驟S4c,預演處理過程指示奏法合成段23開始合成屬于當前奏法過程的連接部分奏法模塊。
基本上,在該預演處理過程中,調整該連接部分部分中泛音分量和非泛音分量各自幅度向量的開始點水平以及泛音分量音高向量的開始點水平,以匹配前面的主體部分奏法模塊(例如圖8實例中的EV3)相應向量的結束點水平,并且調整該連接部分奏法模塊中泛音分量和非泛音分量各自幅度向量的結束點水平以及泛音分量音高向量的結束點水平,以匹配后面的主體部分奏法模塊(例如圖8實例中的EV6)的開始點水平。
應注意的是,已經通過對前面的奏法過程所進行的預演處理過程(圖9B中的步驟S5b)確定了該連接部分奏法模塊的泛音分量和非泛音分量各自幅度向量的開始點水平以及泛音分量音高向量的開始點水平,所以這里使用這些開始點水平。因此,以一種方式利用上面步驟S2c得到的下一個主體部分奏法模塊的預演結果執行步驟S3c處的操作,該方式是,把該連接部分奏法模塊中泛音分量和非泛音分量各自幅度向量的結束點水平以及泛音分量音高向量的開始點水平設定為與后面奏法模塊相應向量的開始點水平相對應。以與圖9A的步驟S3a類似的方式執行步驟S3c的操作,所以這里不對此進行詳細描述。
以基本上與涉及圖11(a)的上述方式相同的方式設定該連接部分奏法模塊的開始時間。也就是說,取得下一個過程即提示項(圖8實例中的過程EV5)的時間標記,以了解實際發聲開始點(圖11(a)實例中的“noteOnTime”),并且將該實際發聲開始點與參數“preTimeH”所代表的開始時間之差(“noteOnTime”-“preTimeH”)設定為該連接部分奏法模塊中泛音分量的開始時間。還以基本上與涉及圖11(b)的上述方式相同的方式確定該連接部分奏法模塊非泛音分量的開始時間。這些開始時間可以在步驟S1c的預演操作過程中確定。
還以基本上與涉及圖11(a)的上述方式相同的方式設定該連接部分奏法模塊的結束時間。也就是說,由于限定泛音分量結束時間的的參數“postTimeH”確定該連接部分中下一個提示項(圖8實例中的過程EV5)出現時間與該連接部分泛音分量的波形產生結束時間之差,所以把參數“postTimeH”所確定的時間加至該連接部分中過程(圖8實例中的過程EV5)的出現時間“noteOnTime”,把得到的和“noteOnTime+postTimeH”確定為該連接部分奏法模塊泛音分量的結束時間。這樣,在步驟S5c,把通過該預演處理過程確定的連接部分奏法模塊中泛音分量的結束時間設定為下一個主體部分奏法模塊中泛音分量的開始時間。類似地,采用圖11(b)中所指的參數“postTimeNH”執行該預演處理過程,該參數限定非泛音分量的結束時間,從而確定該連接部分奏法模塊中非泛音分量的結束時間,并且將其設定為下一個主體部分奏法模塊中非泛音分量的開始時間。
<斷開(完成)模塊>
圖9D是一流程圖,它示出在當前過程指定一斷開(完成)部分的奏法模塊時預演處理過程的典型步驟順序(“斷開模塊預演處理過程”)。
在步驟S1d,把目前要處理的每一個奏法過程(當前過程)(圖8所示實例中的過程EV7和EV8)發送給奏法合成段23,并且通過奏法合成段23從上述奏法表中把向量ID、典型采樣點數目的序列(形狀)和與指定一具體斷開部分奏法模塊的奏法ID相對應的其他參數讀取為預演數據。把如此讀取的預演數據給至部分段22,在此基礎上,演奏部分段22以下述方式確定或調整各參數(控制數據)如水平和時間值。應注意的是,在對前面奏法的預演處理過程中已經受到調整或改變的那些參數這里按其原值使用。通常,在此階段,已經通過對前面奏法過程進行的預演處理過程得到當前奏法過程必需的所有數據,這樣,實際上,步驟S1d可以省去。
為作參考,圖11(c)區示出了該斷開部分奏法模塊中泛音分量的向量實例,而圖11(d)區示出了該斷開部分奏法模塊中非泛音分量的向量實例。參考符號“HA”、“HP”、“HT”、“NHA”、“NHT”等具有如早先涉及圖10所述相同的含義。在圖11(c)區中,在限定該泛音分量開始時間的參數中,“fadeTimeF”是確定前面奏法模塊的尾部波形段與該斷開部分奏法模塊的頭部波形段之間平滑轉換合成時間的參數,“preBlockTimeF”是確定該平滑轉換合成的結束時間與下一個過程即提示結束過程(圖8實例中的過程EV8)的出現時間之間時差的參數。在提示結束過程的出現時間“noteOffTime”基礎上,也就是說,由“noteOffTime-(fadeTimeF+preBlockTimeF)”確定該斷開部分奏法模塊中泛音分量的開始時間。由“noteOffTime-preTimeNH”確定該斷開部分奏法模塊中非泛音分量的開始時間。這些開始時間已經由對前面主體部分奏法模塊進行的預演處理過程(圖9B的步驟S2b和S3b)確定,因而這里可以采用這些已經確定的開始時間。
調整該斷開部分奏法模塊中泛音分量和非泛音分量幅度向量各自的開始點水平和泛音分量音高向量的開始點水平,以使其匹配前面主體部分奏法模塊(例如圖8實例中的EV6)相應向量的結束點水平。這些水平也已經由對前面主體部分奏法模塊進行的預演處理過程(圖9B的步驟S5b)確定,因而這里可以采用這些已經確定的水平。
也就是說,由于至此應當已經完成發聲終止斷開(完成)部分所必需的預演操作,所以實際上不需要步驟S1d的預演操作。在步驟S4d,該預演處理過程指示奏法合成段23開始合成屬于當前奏法過程的斷開部分奏法模塊。
應注意的是,圖9A至9C中所示步驟S5a、S5b和S5c的操作可以在實際奏法合成過程中由奏法合成段23進行,而不是在預演處理過程中由演奏部分段22進行。
(4)奏法合成段23圖5中,在從演奏部分段22中接收的時標奏法過程和表示該預演處理過程結果的數據基礎上,奏法合成段23執行預定的奏法合成處理過程。在該奏法合成處理過程中,奏法合成段23翻譯和處理該奏法過程的奏法ID和參數或者控制數據,在此基礎上,奏法合成段23從奏法表中讀取各個向量ID、典型點數目序列和各種參數。然后,奏法合成段23修改、改變或處理如此讀取的數據和參數。此外,演奏合成段23對向量ID、典型點數目序列、各種參數等和由該預演處理過程所確定的參數(控制數據)如時間和水平進行打包(制成一個數據包),并且將該數據包作為時間連續的數據流輸出。在圖6中,小方框331a、331b、331c……示出演奏合成段23執行奏法合成處理過程的定時。此外,圖6中,方框330代表用來輸出該打包數據流的輸出過程段,其中小方框330a、330b、330c……示出各數據流的輸出定時。
(5)波形合成段24圖5中,波形合成段24從奏法合成段23中接收打包的數據流,該打包的數據流包括向量ID、典型點數目序列等、根據當前時間前面的上述預取時間處向量ID從波形數據庫的編碼簿中讀取的波形模板數據等,而且該波形合成段24在當前時間前面的上述輸出等待時間周期處典型點數目序列、各參數等的基礎上,創建幅度向量和音高向量的包絡線波形形狀,然后,在包絡線波形形狀等的基礎上產生奏法波形的泛音分量波形和非泛音分量波形。之后,波形合成段24根據該奏法波形的泛音分量波形和非泛音分量波形各自的時間數據,將它們加至預定的時間位置,然后補充合成這些波形以最終合成一奏法波形。把這里所建立的每一個再現時間(即當前時間)數據送給簡單的自動演奏裝置段20,并將其用于改變再現位置(時間)的實時顯示。圖6中,方框341、342、343……示出從波形數據庫編碼簿中預取數據的定時。應注意的是,為使合成段24在上述波形模板數據、如上所述幅度向量和音高向量的包絡線波形形狀等的基礎上創建奏法波形數據,可以采用例如公知的技術“軟件發聲器”。把由合成段24創建的奏法波形數據送到輸出緩沖存儲器,該緩沖存儲器設置在圖1的波形輸出段108內。然后,在一預定采樣頻率下讀取如此存儲在輸出緩沖存儲器中的奏法波形數據,并經圖1的音響系統108A產生可聞聲音。
盡管以上已經將該實施例作為在每一個預定時間周期內執行每一個當前奏法過程的數據讀取和相應未來奏法過程的預先數據讀取進行了描述,不過本發明并不受此限制;例如,可以在任何期望的時間進行每一個當前奏法過程的數據讀取和相應未來奏法過程的預先數據讀取。
總之,本發明的特征在于,當要根據依時間順序提供的各演奏過程信息片段處理一給定時間點處的給定演奏過程信息片段時,在其他演奏過程信息片段之前得到涉及該給定演奏過程信息片段之后的一個或一個以上過程的另一個演奏過程信息片段,然后在該給定演奏過程信息片段和其他片段的基礎上,產生與由該給定演奏過程信息片段和預先得到的其他演奏過程信息片段中至少一個指定的奏法模塊相對應的控制數據。本發明的設置允許考慮基于連續演奏過程信息片段的奏法模塊之間的關系而創建控制數據。例如,如此設置的本發明可以對控制數據進行適當的處理,以使基于連續演奏過程信息片段的奏法模塊所指定的奏法波形能夠平滑互連。
權利要求
1.一種波形產生方法,該方法包括以下步驟按時間順序提供指定各奏法模塊的演奏過程信息片段;當要根據所述按時間順序提供指定各奏法模塊的演奏過程信息片段的步驟所提供的演奏過程信息片段處理給定時間點的給定演奏過程信息片段時,在該給定演奏過程信息片段之后,其他演奏過程信息片段的預定原始時間位置之前,取得與一個或多個過程相關的另一個演奏過程信息片段;在給定演奏過程信息片段和預先通過所述取得步驟取得的其他演奏過程信息片段的基礎上,產生與該給定演奏過程信息片段和該其他演奏過程信息片段中至少一個所指定的奏法模塊相對應的控制數據;以及在該控制數據的基礎上,合成與所指定奏法模塊相對應的波形數據。
2.如權利要求1所述的波形產生方法,其特征在于在給定演奏過程信息片段和預先取得的其他演奏過程信息片段的基礎上,所述產生控制數據的步驟處理對應于該給定演奏過程信息片段和該其他演奏過程信息片段的至少一個所指定的奏法模塊的控制數據。
3.一種計算機程序,它包括用來使計算機執行如權利要求1或2所述的波形產生方法的一組指令。
4.一種波形產生裝置,包括按時間順序提供指定各奏法模塊的演奏過程信息片段的裝置;取得裝置,當要根據所述按時間順序提供的裝置提供的演奏過程信息片段處理給定時間點的給定演奏過程信息片段時,在該給定演奏過程信息片段之后,其他演奏過程信息片段的預定原始時間位置之前,該裝置取得與一個或多個過程相關的另一個演奏過程信息片段;產生控制數據的裝置,該裝置在給定演奏過程信息片段和預先由所述取得裝置取得的其他演奏過程信息片段的基礎上產生對應于該給定演奏過程信息片段和該其他演奏過程信息片段的至少一個所指定的奏法模塊的控制數據;以及在該控制數據的基礎上合成對應于所指定奏法模塊的波形數據的合成波形數據裝置。
5.一種波形產生方法,包括以下步驟按順序指定奏法模塊;取得與前面奏法模塊的至少一個尾端部特征有關的尾端信息和與后面奏法模塊的至少一個頭端部特征有關的頭端信息;在由所述取得步驟取得的尾端信息和頭端信息的基礎上修改前面和后面奏法模塊至少一個的特征;以及根據所述修改步驟修改的特征合成對應于所述按順序指定步驟所指定的奏法模塊的一個波形。
6.如權利要求5所述的波形產生方法,其特征在于所述尾端信息和頭端信息的每一個都包括時間信息和水平信息的至少一個。
7.一種計算機程序,它包括用來使計算機執行如權利要求5或6所述波形產生方法的一組指令。
8.一種波形產生裝置,包括按順序指定指定奏法模塊的裝置;取得與前面奏法模塊的至少一個尾端部特征有關的尾端信息和與后面奏法模塊的至少一個頭端部特征有關的頭端信息的裝置;該裝置在由所述取得裝置取得的尾端信息和頭端信息的基礎上修改前面和后面奏法模塊中至少一個的特征的裝置;以及根據所述修改裝置修改的特征合成對應于所述按順序指定奏法模塊的裝置所指定奏法模塊的一個波形的裝置。
9.一種波形產生方法,包括以下步驟提供包括指定一奏法模塊的信息的奏法模塊指定信息和用來控制該奏法模塊的參數信息;當必要參數信息中缺少所述提供步驟提供的奏法指定信息時,以一預定標準參數填充缺少的必要參數信息,由此補充該奏法指定信息;以及合成對應于在包括以預定標準參數信息補充的奏法指定信息的奏法指定信息的基礎上指定的奏法模塊的波形數據。
10.一種計算機程序,它用來使計算機執行如權利要求9所述波形產生方法。
11.一種波形產生裝置,包括提供包括指定奏法模塊的信息和用來控制該奏法模塊的參數信息的奏法指定信息裝置;當必要參數信息中缺少所述提供裝置提供的奏法指定信息時,以預定標準參數填充缺少的必要參數信息來補充該奏法指定信息的裝置;以及合成對應于在包括以預定標準參數信息補充的奏法指定信息的奏法指定信息的基礎上指定的奏法模塊的波形數據。
12.一種波形產生方法,包括以下步驟按時間順序提供指定奏法模塊的演奏過程信息片段;在給定的演奏過程信息的基礎上產生對應于奏法模塊的波形數據;其中當要合成至少包括激起部分和主體部分的波形時,所述提供步驟提供用來指定該激起部分的波形的第一模塊過程數據、指示項數據和用來指定主體部分的波形的第二模塊過程數據,作為演奏過程信息;其中所述產生步驟響應于該指示項數據之前提供的所述第一模塊過程數據開始產生該激起部分的波形,并且響應于該指示項數據之后提供的所述第二模塊過程數據開始產生主體部分的波形。
13.如權利要求12的波形產生方法,其特征在于當要合成至少包括主體部分和離開部分的波形時,所述提供步驟提供用來指定該離開部分和提示結束項數據的波形并跟隨用來指定主體部分的波形的第二模塊過程數據的第三模塊過程數據;以及其中所述產生步驟響應于在該提示結束項數據之前并響應于所述第二模塊過程數據已經產生了主體部分的波形之后提供的所述第三模塊過程數據開始產生該離開部分的波形。
14.一種計算機程序,它用來使計算機執行如權利要求12或13所述波形產生方法。
15.一種波形產生裝置,包括按時間順序提供指定奏法模塊的演奏過程信息片段的裝置;和在給定的演奏過程信息的基礎上產生對應于奏法模塊的波形數據的裝置;其中當要合成至少包括激起部分和主體部分的波形時,所述提供步驟提供用來指定該激起部分的波形的第一模塊過程數據、指示項數據和用來指定主體部分的波形的第二模塊過程數據,作為演奏過程信息;其中所述產生步驟響應于該指示項數據之前提供的所述第一模塊過程數據開始產生該激起部分的波形,并且響應于該指示項數據之后提供的所述第二模塊過程數據開始產生主體部分的波形。
16.如權利要求15的波形產生裝置,其特征在于當要合成至少包括主體部分和離開部分的波形時,所述提供步驟提供用來指定該離開部分和提示結束項數據的波形并跟隨用來指定主體部分的波形的第二模塊過程數據的第三模塊過程數據;以及其中所述產生步驟響應于在該提示結束項數據之前并響應于所述第二模塊過程數據已經產生了主體部分的波形之后提供的所述第三模塊過程數據開始產生該離開部分的波形。
全文摘要
按時間順序提供指定各奏法模塊的演奏過程信息片段。當要根據所提供的演奏過程信息片段處理給定時間點的給定演奏過程信息片段時,在該給定演奏過程信息片段之后,其他演奏過程信息片段的預定原始時間位置之前,取得與一個或多個過程相關的另一個演奏過程信息片段。在一給定演奏過程信息片段和預先所取得的其他演奏過程信息片段的基礎上,產生與該給定演奏過程信息片段和該其他演奏過程信息片段中至少一個所指定的奏法模塊相對應的控制數據,并且在該控制數據的基礎上,合成與所指定奏法模塊相對應的波形。
文檔編號G10H1/02GK1383129SQ0210810
公開日2002年12月4日 申請日期2002年3月26日 優先權日2001年3月27日
發明者田邑元一, 梅山康之, 增田英之, 赤沢英治 申請人:雅馬哈株式會社