專利名稱:具有兼容軟件模塊的計算機化樂器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于計算機化的樂器,該樂器通過加載軟件模塊而產(chǎn)生音樂以完成二級存儲器件到初始存儲器件的各種任務(wù)。進而,本發(fā)明是關(guān)于計算機化的樂器,該樂器通過擴展通用性能模仿現(xiàn)存電子樂器的音調(diào)產(chǎn)生系統(tǒng)。
現(xiàn)存在各種類型的包括高性能產(chǎn)品和低性能產(chǎn)品的電子樂器。通常的電子樂器使用隨產(chǎn)品不同而不同的硬件和通常的隨著特殊的產(chǎn)品而獨立開發(fā)的軟件。為不同的樂器獨立地開發(fā)軟件是很討厭的事,通常的技術(shù)已經(jīng)在JP-A-3-39995中公開了。在JP-A-3-39995公開的技術(shù)是這樣的,指定所希望產(chǎn)品的模塊碼由跳線或開關(guān)加以登記。產(chǎn)品的CPU鑒別模塊碼,并且根據(jù)碼執(zhí)行數(shù)據(jù)處理。這樣,公共的程序能被性能不同的多種產(chǎn)品使用。選擇性地完成各種控制是可能的,例如僅在該功能被執(zhí)行的產(chǎn)品中安裝和演奏自動伴奏功能。該功能在不執(zhí)行該功能的其它產(chǎn)品中就不能執(zhí)行。然而,在JP-A-39995公開的技術(shù)具有缺點,控制程序是事先固定的,修改程序是困難的。例如,僅僅是涉及自動伴奏功能的軟件必須被修改,僅僅修改那部分是不容易的。近而,在現(xiàn)有技術(shù)中,在具有不同性能的諸多產(chǎn)品中公共使用的程序存儲在初級存儲器中,這樣使程序的不必要部分也能存儲在初級存儲器中。近而,公共使用的程序模塊在現(xiàn)有技術(shù)中并不被考慮。例如,許多類似的程序被分別地開發(fā),它們彼此之間并不兼容。
當今,各種類型的電子樂器投入實際使用,和各種聲源(音樂音調(diào)發(fā)生器)為人所共知和使用在樂器中,在當今的產(chǎn)品當中,現(xiàn)存在著共同使用同樣聲源的一些電子樂器。然而,絕大多數(shù)樂器一般使用特定的聲源,該聲源隨產(chǎn)品不同而不同。這樣,在樂器中使用音調(diào)產(chǎn)生系統(tǒng)的組態(tài)和數(shù)據(jù)格式也隨著產(chǎn)品不同而變化。為了取消這樣的不方便性和為了改進演奏數(shù)據(jù)和音色數(shù)據(jù)的數(shù)據(jù)格式的兼容性,建立了GM(一般MIDI)標準。例如,由碼指定音色的順序已在GM標準中加以定義和MIDI僅被構(gòu)成去選取類似的音色,甚至在該樂器中不支持的另一個音色碼按照定義的音色順序被指定時也是如此。然而,為特定平臺產(chǎn)生的演奏數(shù)據(jù)和音色信息經(jīng)常不與另外的一個臺兼容,它們不能在另一個平臺上完美地再現(xiàn)。這是因為聲源硬件和其它部分的不兼容性造成的。不兼容的例子列在下面(a)在聲源內(nèi)使用的音樂音調(diào)合成方法在不同的產(chǎn)品中是不同的,這里有不同的合成原理,例如PCM,F(xiàn)M,和物理模型。
(b)聲音操作裝置不兼容,一聲源可以提供各種操縱裝置例如音調(diào)濾波器和混響(reverb)電路,如果聲源缺乏操縱裝置,這就很難象其它樂器一樣合成同樣的聲音。
(c)在各種聲源中控制參數(shù)的類型和數(shù)目不兼容,甚至類似控制參數(shù)在不同的平臺使用,參數(shù)的控制范圍能被限制,或不能完成替換。
(d)由于在平臺之間的硬件不同,使得對應(yīng)參數(shù)的實際效果是不同的,由于濾波方法或濾波維數(shù)不同,實際濾波器的效果(即截止頻率)可以因平臺不同而變化。
(e)控制聲源的CPU程序是不同的,程序可以改變音調(diào)指定模型,音調(diào)的多音,控制定時等等。
如上所述,通常的電子樂器在硬件和軟件方面受到大量限制和因而在兼容性和通用性方面是很差的。
為了解決上面指出的現(xiàn)有技術(shù)的缺點,本發(fā)明的第一個目的是完成容易修改軟件并同時節(jié)約初級存儲器,使得程序模塊能被電子樂器不同模型所共同使用。
本發(fā)明的第二個目的是指供一音樂音調(diào)產(chǎn)生系統(tǒng),使用該系統(tǒng)就可能在不同電子樂器中共享演奏數(shù)據(jù)。
本發(fā)明的第三個目的是提供一個音樂音調(diào)產(chǎn)生系統(tǒng),通過該系統(tǒng)在音色特性上等同于在另一個樂器中產(chǎn)生的音樂聲能被單一的處理器件所產(chǎn)生。
本發(fā)明的第四個目的是指供一個音樂音調(diào)產(chǎn)生系統(tǒng),使用該系統(tǒng)為樂器特定模型創(chuàng)造的演奏數(shù)據(jù)能被轉(zhuǎn)換為更通用的格式。
本發(fā)明的第五個目的是提供一個音樂音調(diào)產(chǎn)生系統(tǒng),使用該系統(tǒng)為樂器特定模型創(chuàng)造的演奏數(shù)據(jù)能被編輯,這樣克服了特定產(chǎn)品模型的限制,和能產(chǎn)生豐富多彩的音樂聲音。
本發(fā)明的第六個目的是提供一個音樂音調(diào)產(chǎn)生系統(tǒng),使用該系統(tǒng)數(shù)據(jù)轉(zhuǎn)換能夠精確地完成,使得為樂器特定模型創(chuàng)造的演奏數(shù)據(jù)能在樂器的另一個模型高保真地產(chǎn)生。
依照發(fā)明的第一方面,計算機化的樂器使用包括軟件模塊以產(chǎn)生所希望音樂聲音的資源,該樂器包括可用一組軟件模塊加載的初級存儲器,該組軟件模塊被選出以執(zhí)行為產(chǎn)生所希望的音樂聲音而需要的任務(wù);一中央處理單元,用于存取初級存儲單元以執(zhí)行存在其中的軟件模塊來產(chǎn)生音樂聲音;一第二存儲器,臨時存儲指定執(zhí)行各種任務(wù)的大量軟件模塊;一在產(chǎn)生音樂聲音初始化時操作的加載器,用于根據(jù)預(yù)定的標準檢索第二存儲器以選擇出有效的和最佳的軟件模塊,和把這樣選取出的軟件模塊加載到初級存儲器以此確保有效和最佳的使用資源。
近而,發(fā)明的使用包括軟件模塊以產(chǎn)生所希望音樂聲音的資源的計算機化的樂器包括,可以用一組軟件模塊加載的初級存儲器,該組軟件模塊被選出去執(zhí)行產(chǎn)生所希望音樂聲音所需的任務(wù);一和初級存儲器分開配置的第二存儲器,用于臨時存儲被指定執(zhí)行各種任務(wù)的不同類型的軟件模塊,一音樂聲音產(chǎn)生的初始化時操作的加載器,用于檢索第二存儲器而選擇出有效的和最佳的一組軟件模塊,和把選出的軟件模塊加載到初級存儲器;和一中央處理單元,用于存取初級存儲器以執(zhí)行存在其中的軟件模塊來產(chǎn)生音樂聲音,使得中央處理單元通過交換信息使軟件模塊相互通信以使一組軟件模塊集中在一塊。
依發(fā)明的第二方面,構(gòu)成計算機化樂器以模仿模型(model)電子樂器的一音調(diào)產(chǎn)生系統(tǒng),該樂器包括一存儲器,用于存儲指示包括在模型電子樂器中的諸器件的器件信息和用于存儲最初準備的要饋送到模型電子樂器的演奏信息;一處理器,用于從存儲器恢復演奏信息,和用于處理恢復的演奏信息以產(chǎn)生事件信息,該事件信息命令產(chǎn)生一音樂音調(diào),和一基于存儲在存儲器的器件信息操作的模仿器,用于模仿模型電子樂器的音調(diào)產(chǎn)生系統(tǒng),使得模仿器響應(yīng)事件信息而操作以產(chǎn)生出仿佛由模型電子樂器奏出的音樂音調(diào),在特定的形式下,模仿器包括驅(qū)動器軟件模塊,用于模仿包括在音調(diào)產(chǎn)生系統(tǒng)的驅(qū)動器器件,使得驅(qū)動器軟件模塊控制音樂音調(diào)的產(chǎn)生。在另一個特定的形式中,模仿器包括一寄存器軟件模塊以模仿包括在音調(diào)產(chǎn)生系統(tǒng)中的寄存器器件,以便寄存器軟件模塊記住為控制音樂音調(diào)的產(chǎn)生而使用的控制參數(shù)。在近一步的特定形式當中,模仿器包括了一個產(chǎn)生器軟件模塊,用于模仿包括在音調(diào)產(chǎn)生系統(tǒng)中的產(chǎn)生器器件,使得產(chǎn)生器軟件模塊創(chuàng)造要被產(chǎn)生的音樂音調(diào)的波形,在另外進一步的特定形式中,模仿器包一單獨的計算機,用于共同地模仿大量模型電子樂器的不同音調(diào)產(chǎn)生系統(tǒng)。
近而,本發(fā)明的計算機化的樂器被構(gòu)成模仿由模型電子樂器產(chǎn)生的音色,它包括第一裝置,用于建立基本音調(diào)產(chǎn)生系統(tǒng);第二裝置,用于提供由模型電子樂器的特定音調(diào)產(chǎn)生系統(tǒng)產(chǎn)生音樂音調(diào)的音色為特征的最初的音色信息;第三裝置,用于轉(zhuǎn)換所提供的最初音色信息為在基本音調(diào)產(chǎn)生系統(tǒng)內(nèi)有效的等同的音色信息,和第四裝置,用于提供命令音樂音調(diào)產(chǎn)生有效的事件信息,使得基本音調(diào)產(chǎn)生系統(tǒng)根據(jù)事件信息操作和根據(jù)等同的音色信息產(chǎn)生仿佛模型電子樂器的特定音調(diào)產(chǎn)生系統(tǒng)所創(chuàng)造的具有音色的音樂音調(diào)。在特定的形式中,第三裝置包括任選的裝置,用于反向地轉(zhuǎn)換等同的音色信息為不同的音色信息,該不同的音色信息被指定在不同于第一前述的電子樂器的另一模型電子樂器中使用。在另一特殊形式中,第五個裝置被手工地操作以重寫等同音色信息值以修改由基本音調(diào)產(chǎn)生系統(tǒng)創(chuàng)造的音色。
依照本發(fā)明的第一方面的計算機化的樂器中,軟件模塊被加載到初級存儲器,和由CPU執(zhí)行以產(chǎn)生音樂聲音,軟件模塊臨時存儲在第二存儲器中,然后在樂器通電時,或在特定的用戶輸入指令時再加載到初級存儲器。依據(jù)預(yù)先標準的一或多項確定要加載的模塊。這樣,音調(diào)產(chǎn)生系統(tǒng)為執(zhí)行而建立起來,使得修改軟件模塊是非常容易,不需要的程序并不加載到初級存儲器,和恰恰是所需的軟件被加載進去。
在依照本發(fā)明的第二方面的安排中,指定要被模仿的電子樂器的器件信息和為被模仿的電子樂器的特定平臺而創(chuàng)造的演奏信息的組合存儲在數(shù)據(jù)介質(zhì)中。然后,器件和演奏信息從數(shù)據(jù)介質(zhì)中讀出,命令音樂音調(diào)產(chǎn)生的事件信息按照演奏信息被產(chǎn)生。使用器件信息,這就可能使用發(fā)明的計算機化的樂器處理演奏信息。近而,依照器件信息建立音調(diào)產(chǎn)生系統(tǒng),這就可能再現(xiàn)和模型樂器有等同特性的音樂聲音,在發(fā)明的安排中,指定了要被模仿的電子樂器,當產(chǎn)生音樂聲音命令時,音樂聲音信號波形依照聲音產(chǎn)生命令通過模仿指定的電子樂器聲源的操作而被產(chǎn)生。依照產(chǎn)生的音樂聲音信號波形再現(xiàn)音樂聲音。這就可能以指定的電子樂器一致的方式處理演奏信息。在發(fā)明的安排中,音樂聲音信號波形產(chǎn)生處理控制指定電的聲源的處理器的操作,使得能夠產(chǎn)生對應(yīng)各種處理器的音樂聲音信號波形。在發(fā)明的安排中,音樂聲音信號波形產(chǎn)生處理模仿在指定的電子樂器的聲源內(nèi)存儲大量控制參數(shù)的控制存寄存器的操作,使得按照控制寄存器的內(nèi)容進行處理能為不同的電子樂器所共同使用。在發(fā)明的安排中,音樂聲音信號波形產(chǎn)生處理模仿指定的電子樂器聲源的音樂聲音的產(chǎn)生的方法,使得按照各種方法操作的各種聲源能夠被非常精確地加以模仿。在本發(fā)明的安排中,音樂聲音信號波形產(chǎn)生處理僅使用單一的計算機執(zhí)行,使用該計算機可以模仿電子樂器的不同聲源的操作,使得有可能使用不昂貴的安排模仿電子樂器的許多模型。
在發(fā)明的安排中,首先指定要模仿的電子樂器,被指定的第一電子樂器的第一音色信息被分配,然后音樂聲音產(chǎn)生被命令,第一音色信息被轉(zhuǎn)換為在第一電子樂器中模仿聲源安排的基本音調(diào)產(chǎn)生系統(tǒng)中使用的基本的或等同的音色信息。然后,基本音調(diào)產(chǎn)生系統(tǒng)的操作被執(zhí)行以聲音產(chǎn)生命令而產(chǎn)生響應(yīng)音樂聲音信號波形。按照產(chǎn)生的音樂信號波形再現(xiàn)音樂聲音。這樣,為樂器特定模型創(chuàng)造的音色信息能被轉(zhuǎn)換為更通用的格式,在發(fā)明的安排中,基本音色信息能夠被轉(zhuǎn)換為不同于第一電子樂器的第二電子樂器的第二音色信息,使得為樂器的特定模型創(chuàng)造的特殊的音色信息能夠高保真度地轉(zhuǎn)換以供樂器的另一個模型所使用。在發(fā)明的安排中,基本音色信息的值按手工操作裝置加以編輯,使得最初為樂器特定模型創(chuàng)造的音色信息能被自由地編輯,這樣克服了特定模型的限制,能夠產(chǎn)生豐富多采的音樂聲音。
圖1是按照本發(fā)明的第一實施例的電子樂器的示意性方框圖。
圖2給出了在圖1硬件結(jié)構(gòu)上的軟件結(jié)構(gòu)的方框圖。
圖3給出了存儲在第二存儲器的軟件模塊的實例。
圖4給出了軟件模塊的屬性信息的一實例。
圖5的流程圖給出了樂器的接收器程序。
圖6的流程圖給出了主模塊的操作。
圖7的流程圖給出了每一個軟件模塊的操作。
圖8詳細的流程圖給出了加載聲源的過程。
圖9A和9B的詳細的流程圖給出了分配器資源和自動伴奏資源的加載過程。
圖10的詳細的流程圖給出了自動演奏資源的加載過程。
圖11的音樂音調(diào)產(chǎn)生系統(tǒng)的示意性方框圖作為本發(fā)明的第二個實施例。
圖12給出了本發(fā)明第二實施例中裝配的軟件的層結(jié)構(gòu)。
圖13A-13D給出了在本發(fā)明第二實施例中采用的數(shù)據(jù)結(jié)構(gòu)。
圖14A和14B給出了在本發(fā)明第二實施例的顯示器件的熒光屏上顯示的顯示實例。
圖15A和15B的流程圖給出了在本發(fā)明的第二實施例中執(zhí)行的控制程序。
圖16A-16C的流程圖給出了在本發(fā)明的第二實施例中執(zhí)行的控制程序。
圖17A和17B的流程圖給出了在本發(fā)明的第二實施例執(zhí)行的控制程序。
圖18的流程圖給出了在本發(fā)明第二實施例中執(zhí)行的控制程序。
圖19的時序圖給出了本發(fā)明的第二實施例的操作。
此后,本發(fā)明的實施例將參照附圖加以描述。圖1的示意性方框圖給出了依本發(fā)明第一實施例的電子樂器的硬件結(jié)構(gòu)。該樂器包括中央處理單元(CPU)101,只讀存儲器(ROM)102,隨機存取存儲器(RAM)103,MIDI(樂器數(shù)字接口)接口104,聲源105,聲源105的接口106,操作器件107,操作器件107的另一個接口108,第二存儲器109和聲音系統(tǒng)110。這些硬件模塊通過總線111彼此相互聯(lián)接。
CPU101控制電子樂器的整個系統(tǒng),參看流程圖將在后面詳細描述CPU101的操作。ROM102存儲著接收程序(圖5),這些也在以后加以描述。各種軟件模塊加載在初級存儲器即RAM103內(nèi)。各種軟件模塊臨時地存儲在第二存儲器109內(nèi)。作為例子,第二存儲器109可以由硬磁盤機構(gòu)成。
聲源或音調(diào)產(chǎn)生器105通過接口106接收來自CPU101的命令,和產(chǎn)生音樂聲音信號。聲音系統(tǒng)110聲學地再現(xiàn)由聲源105產(chǎn)生的音樂聲音信號,在該實施例中,聲源105是使用硬件模塊實現(xiàn)的。然而,聲源105可以使用軟件模塊加以實現(xiàn)。
操作器件107可以由各類的手動輸入硬件例如具有按鍵的并且由用戶演奏的鍵盤構(gòu)成。由操作器件107饋入的輸入信息通過接口108送到CPU。外部的MIDI樂器能夠連接到MIDI接口104。
圖2給出了完成圖1所示硬件結(jié)構(gòu)的軟件結(jié)構(gòu)的方框圖,該軟件結(jié)構(gòu)包括鍵盤驅(qū)動器模塊201,自動伴奏ABC自動低音和諧音)模塊202,自動演奏(SEQ定序器)模塊202,MIDI接口模塊204,通訊訊道模塊205,分配器模塊206,和聲源驅(qū)動器模塊207。每一個軟件模塊由第二存儲器109加載到RAM103,和由CPU加以執(zhí)行。
鍵盤驅(qū)動器模塊201實際上是指定給包括在操作驅(qū)動107內(nèi)的控制鍵盤的控制程序。自動伴奏(ABC)模塊202被執(zhí)行去演奏自動伴奏的特定任務(wù)。自動演奏(SEQ)模塊203控制著自動演奏。MIDI接口模塊204是控制圖1所示的MIDI接口104的軟件模塊。分配器模塊206執(zhí)行分配或指定聲源的音調(diào)產(chǎn)生訊道每一個由聲源所接收的音符(note-on)命令,聲源驅(qū)動器模塊207是控制聲源105的驅(qū)動器軟件,和按照從分配器模塊206來的命令執(zhí)行音符命令。
通訊訊道開關(guān)模塊205開關(guān)在各種軟件模塊之間的信息交換路徑。實際上,通訊訊道開關(guān)模塊205是由主模塊(圖6)執(zhí)行的。例如,通訊訊道開關(guān)模塊205執(zhí)行的開關(guān)任務(wù)包括(1)在接收到從鍵盤驅(qū)動器模塊201的鍵壓信息時,開關(guān)模塊205發(fā)出信息到分配器模塊206。
(2)在接收到伴奏和諧音的鍵壓信息時,開關(guān)模塊205發(fā)送信息到自動伴奏模塊202。
(3)在接收到自動伴奏模塊202的自動伴奏的音符命令時,開關(guān)模塊205發(fā)送命令到分配器模塊206。
圖3給出了臨時存儲在電子樂器的第二存儲器109內(nèi)的以各種軟件模塊的形式的軟件資源。這些軟件模塊中選出的一些從第二存儲器109中加載到RAM103以構(gòu)成在圖2所示的軟件結(jié)構(gòu),該軟件結(jié)構(gòu)包括了有效的和最佳的一組軟件模塊。
在圖3中,主模塊被選取作為通訊訊道開關(guān)模塊205,和控制著軟件模塊之間的信息交換。單個的鍵盤驅(qū)動器模塊302被選取作為圖2結(jié)構(gòu)的鍵盤驅(qū)動器模塊201。ABC模塊303被選取作為自動伴奏(ABC)模塊202。當ABC模塊303加載到初級存儲器時,ABC發(fā)動機(engine)和ABC模型作為子模塊也應(yīng)加載到初級存儲器。子模塊匯總到較高層次模塊的低層次模塊,并且在操作上依賴較高層次的模塊。號304和305分給兩種類型的ABC模型子模塊。號306至308分給三種類型的ABC模型子模塊,ABC模塊303,兩個ABC發(fā)動機子模塊304,305中的一個或二個,三種ABC模型子模塊306-308中的一個或者多個有選擇地加載到初級存儲器以構(gòu)成圖2示出的合成的自動伴奏(ABC)模塊202。
號309和310分給兩種類型的自動演奏(SEQ)模塊。號311至313分給三種類型的格式轉(zhuǎn)換器,該格式轉(zhuǎn)換器是隸屬SEQ模塊下的子模塊。自動演奏數(shù)據(jù)的格式可隨模式和樂器制造商不同而變化,所以適當格式轉(zhuǎn)換器應(yīng)當被選取以翻譯自動演奏數(shù)據(jù)的一種格式為能由SEQ模塊處理的另外一種格式。兩種SEQ模塊309和310中的一個和三種格式轉(zhuǎn)換器311-313中的一個或者多個被選取以確定圖2給出的自動演奏(SEQ)模塊203。在個別情況下,如果SEQ模塊能夠直接處理自動演奏數(shù)據(jù)的最初的格式,就可以不需要格式轉(zhuǎn)換器。
號314和315分給兩種類型的分配器模塊,分配器模塊314和315中的一個被選取作為圖2中所示分配器模塊206、號316和317分給兩種類型聲源驅(qū)動器模塊316和317,聲源驅(qū)動器模塊316和317中的一個或二個被選取作為聲源驅(qū)動器模塊207。特別地,聲源驅(qū)動器模塊316被指定為波形存儲器只讀出型聲源,和另一聲源驅(qū)動器模塊317被指定為物理模型類型的聲源。
在該實施例中,在圖3給出的各種軟件模塊被臨時地存儲在第二存儲器109中。根據(jù)樂器加電或用戶指令輸入,適當?shù)能浖K有選擇地加載到初級存儲器即RAM103中以建立電子樂器。加載器安裝在樂器中和當音樂聲音產(chǎn)生初始化時操作,通過按下述標準檢索第二存儲器以選出有效的和最佳的一組軟件模塊(1)檢查裝備的硬件,加載器選取相應(yīng)裝備的硬件的模塊。例如,在檢測安裝在樂器中的聲源板后,如果一波形存儲器只讀型聲源被配備,相應(yīng)的聲源驅(qū)動器模塊316被選取和被加載。即,加載器依照物理標準進行操作,以檢查包括在樂器資源的硬件模塊以確定在產(chǎn)生音樂聲音使用有效的硬件模塊,和選出對應(yīng)確定的有效硬件模塊的有效的軟件模塊。
(2)如果這里存在著執(zhí)行類似類型任務(wù)的諸多軟件模塊,加載器選出具有較高性能或具有較新時間章(stamp)的一個。即,如果第二存儲器存儲著執(zhí)行實質(zhì)一樣的任務(wù)但是具有不同程序的性能和不同的創(chuàng)造年齡的兩個或多個類似軟件模塊時,加載器按照性能指標操作,以選出具有最高級的性能和最小創(chuàng)造年齡中的一個的類似軟件模塊中的最佳的一個。
(3)如果軟件模塊需要幾個子模塊,加載器尋找在第二存儲器中存在的多個子模塊。然后,加載器選出其子模塊存在在第二存儲器中的軟件模塊。即,加載器按照集總的標準進行操作,如果僅當必不可少的軟件子模塊也存儲在第二存儲器時,加載器一塊選出一軟件模塊和一個或多個必不可少的軟件子模塊。
(4)就信號流到特定的軟件模塊而如果同一軟件模塊不是不可以避免的話,加載器并不加載軟件模塊下級。即,加載器按照連續(xù)標準操作,以選取相對于另一個軟件模塊而位于數(shù)據(jù)處理流上游的一軟件模塊,盡管所說的另一軟件模塊是存儲在第二存儲器中也是如此。
(5)加載器并不選取不兼容的模塊和其它模塊組合。即,加載器按照兼容地標準選取進行操作,反當該模塊與從第二存儲器選出的其它軟件模塊兼容時,加載器才選取該模塊。
第二存儲器109冗余地存儲各種軟件模塊。然而,第二存儲器的每位的價格是便宜的,所以花費不了多少就能存儲不被使用的諸多模塊。另一方面,初級存儲器(RAM)的存儲價格是貴的和存儲容量是有限的。這樣,依照本發(fā)明,根據(jù)加電或用戶命令輸出,適當?shù)能浖K從第二存儲器加載到RAM,以建立電子樂器。
圖4給出了軟件模塊屬性信息,根據(jù)上述的標準(1)至(5),加載器的屬性信息被參考,以確定是否模塊被加載。屬性信息包括在所有軟件模塊中公共的通常部分,和特殊部分。在圖4中,號401分給聲源驅(qū)動器模塊屬性信息的通常部分。信息模塊姓名指出了模塊的姓名,版本號指定的版本的號數(shù),創(chuàng)造日期指定了模塊創(chuàng)造的日期,模塊類型指定了諸如主模塊,鍵盤驅(qū)動器模塊和ABC模塊的模塊類型。分配器模塊,ABC模塊,和SEQ模塊屬性信息的通常部分402-404和聲源驅(qū)動器模塊屬性信息401的結(jié)構(gòu)相同。
聲源驅(qū)動器模塊屬性信息號405指定信息Tg類型為由驅(qū)動器所支持的聲源的類型,例如波形存儲器只讀類型或物理模型類型。
號406指出了分配器屬性信息的特殊部分。信息Max ChNum指定了分配器模塊能夠控制的音調(diào)產(chǎn)生訊道的數(shù)目,BasicAlgorithm指定了訊道指定(即數(shù)據(jù)到達次序的優(yōu)先權(quán))的基本算法,AbCAwart是識別是否模塊有個檢測自動伴奏聲音信號和指定它的設(shè)備的標志,SeqAware是指定是否模塊有個檢測自動演奏聲音信號和指定它的設(shè)備的標志,和MultiBware是指定是否模塊有個檢測多鍵盤的較上或較下區(qū)域被操作的設(shè)備的標志。
號407指定了ABC模塊屬性的特殊部分。信息StyleNum指定了自動伴奏風格的數(shù)目,VariationNum指定了自動伴奏變化的數(shù)目,和AcceptChordType指定了在自動伴奏中使用和支持的和諧音的數(shù)目。
號408指定了SEQ模塊屬性信息的特殊部分。輸入信息TrackNum指定了自動伴奏音軌的數(shù)目,SeqFormat指定了自動伴奏數(shù)據(jù)的數(shù)據(jù)格式。
號409至412分別指定了由每一個模塊可接收的信息表和包括在聲源驅(qū)動器模塊,分配器模塊,ABC模塊和SEQ模塊的屬性信息的特殊部分內(nèi),在該實施例中,軟件模塊之間的接口是統(tǒng)一的以改進模塊之間的兼容性。即,信息通路方法被使用。可接收的信息表409至412指示能被每一個模塊接收和處理的信息。通過存取信息表,系統(tǒng)可以獲得在諸模塊中執(zhí)行的詳細的設(shè)備的知識。通過在模塊之間的接口使用信息通路方法,軟件模塊的兼容性能夠極大地改善。即,CPU通過交換信息能使諸軟件模塊相互通訊以共同執(zhí)行加載在初級存儲器內(nèi)的一組軟件模塊。
現(xiàn)在,由每一個模塊處理的通訊信息的例子將在下面描述。
(1)由聲源驅(qū)動模塊可以接收或可以采納的信息,根據(jù)接收信息引入的過程(11)GetTgInfo()得到關(guān)于聲源的各種信息。
(12)GetToneColorList()得到由聲源創(chuàng)造的聲調(diào)色(tone color)表。
(13)GetToneInfo(ToneColorNum)得到特定音調(diào)色的信息。
(14)GenerateTone(ToneInformation)根據(jù)音調(diào)信息合成音符或產(chǎn)生音調(diào),該音調(diào)信息指明音調(diào)產(chǎn)生指令。
(15)DumpTone(Toneinformation)按照音調(diào)信息排放音符
(16)GetChannelStatus(ChannelNum)得到對應(yīng)訊道號的音調(diào)產(chǎn)生訊道的狀態(tài)。
(2)由自動演奏(SEQ)模塊接收的信息,和由同一模塊按照接收的信息執(zhí)行的步驟(21)StartAllTrack(SongNum)開始放對應(yīng)歌曲號的歌曲數(shù)據(jù)。
(22)StartSpecificTrack(SongNum TrackInfo);開始放對應(yīng)歌曲號的歌曲數(shù)據(jù)的特定的音軌。
(23)StopAllTrack()停止記錄/放所有音軌。
(24)StopSpecifiTrack(SongNum,TrackInfo)停止去記錄/放一特定的音軌。
(25)Pause()暫停記錄/放所有音軌。
(26)RecardAllTrack(SongNum)開始記錄所有音軌。
(27)RecordSpecificTrack(SongNum,TrackInfo)開始記錄一特定音軌。
(28)MoveSongPointer(SongNum,Location)移動地址指針到特定歌曲數(shù)據(jù)的指定的地址位置。
(3)由自動伴奏(ABC)模塊接收的信息,和執(zhí)行對應(yīng)信息執(zhí)行的步驟。
(31)SetAbcType(AbcTypeInfo)按照Abc類型信息建立自動伴奏。
(32)ExpandAbc(ChordInfo)按照和諧音信息產(chǎn)生自動伴奏模型。
(33)GetAbcStyle()得到可獲得的自動伴奏風格表。
(34)GetAbcType()得到可獲得的自動伴奏類型表。
(4)由分配器模塊接收的信息,如按照接收的信息執(zhí)行的步驟。
(41)GetChanneMaxNum()得到音調(diào)產(chǎn)生訊道的最大數(shù)目。
(42)GetIdleChannel()得到空閑或可獲得的音調(diào)產(chǎn)生訊道的信息。
(43)AssignChannel(ToneInformation)分配音調(diào)信息到一空閑的音調(diào)產(chǎn)生訊道。
(44)Truncate(TruncateAlgorithm)按照縮短的算法縮短一特定的音符。
現(xiàn)在,依照第一實施例的電子樂器的操作結(jié)合圖5至10的流程圖詳細地加以描述。圖5流程圖給出了系統(tǒng)的引導過程,引導程序存儲在ROM102中,和在加電或按照用戶的命令,即復位命令下啟動。首先,在步501,CPU101把圖3所示的主模塊301從第二存儲器加載到初級存儲器。在步502,主模塊開始被引用或開始被使用。
圖6的流程圖給出了在步502引用的主模塊的操作。主模塊順序地加載各個軟件模塊從對應(yīng)系統(tǒng)數(shù)據(jù)流的下游到上游。諸軟件模塊有選擇地從第二存儲器109到初級存儲器RAM103。在步601聲源資源被加載。然后,在步602,分配器資源被加載。資源加載以后參看圖8和9A加以解釋。在步603,操作資源被加載。在該步,圖3所示鍵盤驅(qū)動器模塊302被加載,和其它涉及各種操作硬件的驅(qū)動器也同樣被加載。在步604,功能或應(yīng)用資源被加載。在該步,自動伴奏資源和自動演奏資源被加載,和資源加載參照圖9B和10在以后加以解釋,在步605,按口資源(I/F)例如MIDI驅(qū)動器模塊被加載。
在步606,主模塊通過存取資源表建立資源聯(lián)接。資源表分配在RAM103中以存儲在步601至605加載的軟件模塊的名稱和類型,通過存取資源表,主模塊識別哪一個模塊當前被加載了。在步606建立資源聯(lián)接狀態(tài),信息通路被建立,通過信息通路的建立通訊信息在加載的諸模塊之間交換。
在步607,每一個資源被引用。然后,通過步608形成程序環(huán)以觀察MIDI事件,在步609,對應(yīng)當前事件的信息被傳送給有關(guān)的模塊。例如,根據(jù)鍵盤的操作,一鍵壓事件在步608被檢測,和對應(yīng)鍵壓信息事件的信息被頒布。即基于伴奏鍵的操作,鍵壓信息傳送給自動伴奏模塊。否則,根據(jù)一正常的鍵操作,鍵壓信息傳送給分配器模塊。
圖7的流程圖給出了每一個模塊的操作。根據(jù)接收到的在步607中產(chǎn)生的引用的命令,每個模塊執(zhí)行在圖7中的步驟,在步701收到任何信息,在步702執(zhí)行對應(yīng)收到的信息的處理,其它的處理可以在703中完成,需要傳送的任何信息可在步704中發(fā)出。然后步驟返回到步701,和同樣的步驟被重復。例如,在ABC模塊中,根據(jù)在步701從鍵盤接收到的和諧音鍵壓信息,ABC模塊擴展輸入的和諧音模型到自動伴奏音符模型。在步703,ABC模塊執(zhí)行其它步驟,和然后發(fā)出擴展的伴奏音符到分配器模塊。
圖8詳細流程圖給出了在圖6步601內(nèi)引入的聲源資源的加載步驟。在步801,CPU通過檢查連接硬件接口的任何聲源來檢測是否存在還未處理的聲源。在所有的聲源被處理后,程序通過802返回,如果這里有任何沒被處理的聲源硬件,程序到步803。在步803,聲源的類型(例如波形存儲只讀類型或物理模型類型)存儲在寄存器TgType。寄存器TgType是工作寄存器,和不同于存儲在第二存儲器的在圖4中的聲源驅(qū)動器模塊給出屬性信息TgType。在步804,CPU檢測由在第二存儲器109的寄存器TgType指定的塊源驅(qū)動器模塊的存在。通過從第二存儲器讀出聲源驅(qū)動器模塊的屬性信息TgType和把讀值和工作寄存器TgType的值加以比較,以檢索相應(yīng)的聲源驅(qū)動器模塊而完成檢測任務(wù),在步804中,如果檢測出,任何相應(yīng)聲源驅(qū)動器模塊存在在第二存儲109的HD中,程序到步805。如果沒有發(fā)現(xiàn)任何聲源驅(qū)動器模塊,程序返回到步801。在多個驅(qū)動器存在的情況下,性能最高的和時間章最新的一驅(qū)動器在步805中選出。通過存取性的版本號和創(chuàng)造時間可以檢測驅(qū)動器模塊的能力和年齡。在步806、選出的聲源驅(qū)動器模塊的名稱和類型TgTypo寄存在資源表內(nèi),在步807,選取的聲源驅(qū)動器模塊從第二存儲器109加載到RAM,和程序返回到步801。
圖9A的詳細的流程圖給出了圖6的步602示出的分配器資源的加載步驟。在步901,CPU進行初步檢測例如存儲在第二存儲器109內(nèi)的ABC和SEQ模塊的應(yīng)用軟件模塊。存儲在第二存儲器109的分配器模塊可以從能夠指定自動伴音音符或自動演奏音符的高性能版本和可以分正規(guī)的鍵音符變化為僅有能力指定一接收的鍵碼的低性能或簡化的版本。然而,如果根本不存在ABC或SEQ模塊,加載高性能分配器模塊恰恰是浪費了RAM103的存儲能力。在該情況下,低性能分配器恰恰是做這樣的工作。這就是在步901為什么進行初步檢查的原因。在步902,存儲在第二存儲器109的分配器模塊被檢查。在步903,要被加載的分配器模塊被確定。特別在該確定中,所需的分配器的性能級別被確定作為步901內(nèi)的初步檢查的結(jié)果。然后,具有該級別的分配器在第二存儲器109中被檢索。如果多個分配器被檢出,具有最高性能和最小年齡的最佳分配器模塊被選出。在步904中,選出分配器模塊的類型被存儲在工作寄存器AsType中和名稱和類型AsType被寄存在步905中的資源表內(nèi)。在步906,選出的分配器模塊從第二存儲器109加載到RAM103,于是程序完成了。
圖9B詳細的流程圖給出了圖6的步604示出的自動伴奏資源的加載步驟。在步911,檢驗存儲在第二存儲器中的ABC發(fā)動機,和然后在步912檢查存儲在第二存儲器109內(nèi)的ABC模塊,在步913,選出具有最高性能和最新時間章的模塊和子模塊的組合以確定在檢驗時發(fā)現(xiàn)的ABC模塊和ABC發(fā)動機的兼容的組合。在步914,選出的ABC發(fā)動機的類型存儲在工作寄存器AbcType。在步915,名稱和類型AbcType被寄存在資源表內(nèi),在步916,選出的ABC模塊和ABC發(fā)動機從第二存儲器109加載到RAM103。近而在步917,可供選出的ABC發(fā)動機使用的ABC模型DB(數(shù)據(jù)庫)從第二存儲器109加載到RAM103。在個別情況下,可以加載兩個或多個ABC模型子模塊。
圖10的詳細的流程圖給出了在圖6步604執(zhí)行的自動演奏資源的加載步驟。在步951,存儲在第二存儲器109的SEQ模塊被檢驗。如果檢驗出多個SEQ模塊,在步952中選出具有最高性能和最小年齡最佳模塊,在步953,與選出SEQ模塊兼容的自動演奏數(shù)據(jù)的數(shù)據(jù)格式的信息存儲在工作寄存器SeqFormat。在步954,選出的SEQ的類型存儲在工作寄存器SeqType。在步955,名稱和類型SeqType被登錄在資源表內(nèi)。在步956,選出的SEQ模塊從第二存儲器109加載到RAM103。近而在步957中,與由工作寄存器SeqFormat指定的格式的自動演奏數(shù)據(jù)兼容的格式轉(zhuǎn)換器子模塊從第二存儲器109加載到RAM103,和程序結(jié)束,在個別情況下,兩個或多個轉(zhuǎn)換器模塊可以被加載初級存儲器。
根據(jù)第一個實施例,修改軟件模塊是非常容易的。例如,通過僅僅是存儲定序器的新版本到電子樂器的第二存儲器,使舊版本的定序器程序能夠容易地更新為新的版本。在加電或重置系統(tǒng)時,定序器程序的新版本自動地加載到初級存儲器,本發(fā)明可以應(yīng)用到多用途的計算機系統(tǒng),該系統(tǒng)在廣義下可以稱為電子樂器。例如,本發(fā)明可以應(yīng)用到配備聲源板和硬盤的多用途計算機系統(tǒng)。在接收到用戶命令放音符時,這就可能把上述的軟件模塊存儲在第二存儲器中,和去選取,加載,和執(zhí)行適當?shù)能浖K、通過便攜式存儲介質(zhì)例如軟盤軟件模塊能容易地分配,和能夠復制到硬盤。
如前所述,根據(jù)本發(fā)明的第一個方面,軟件音調(diào)產(chǎn)生系統(tǒng)是自由地建立,使得修改軟件模塊是非常容易的,由于需要的軟件模塊是有選擇的從第二存儲器加載到初級存儲器,不必要的程序并不加載到初級存儲器,這樣避免了存儲容量的浪費,軟件程序能與模塊為單元分配,模塊之間的通訊通過信息傳送方法完成,使得相同的程序模塊在不同的產(chǎn)品中共同使用,這些不同的產(chǎn)品在軟件技術(shù)要求上是彼此相互不同的。這樣,就有可能取消現(xiàn)有技術(shù)的缺點,即,程序不能容易地被替換,甚至新的程序和舊的程序之間有共同的設(shè)備、部件。在本發(fā)明中,通過使用信息傳送方法,程序間的接口是統(tǒng)一的,使得通過更新軟件模塊而容易地改進樂器的性能,和通過增加軟件模塊容易地增加設(shè)備部件數(shù),由于根據(jù)本發(fā)明每一個程序被打包為模塊,僅僅需要的軟件能夠相互組合。數(shù)據(jù)例如ABC模型能夠以軟件包的形式被公共地使用。
本發(fā)明第二實施例的細節(jié)將參照附圖加以詳細地描述。
A1.硬件依本發(fā)明第二實施例的音樂音調(diào)產(chǎn)生系統(tǒng)的硬件結(jié)構(gòu)將參照附圖加以描述。依第二實施例的音樂音調(diào)產(chǎn)生系統(tǒng)是在一般用途計算機例如個人計算機上實現(xiàn)的。在圖11中,標號1001指示輸入裝置例如鍵盤和鼠標工具。標號1002表示顯示器,該顯示器顯示通過總線1012分配的信息。標號1003表示硬盤驅(qū)動器,該驅(qū)動器存儲操作系統(tǒng)軟件,各種應(yīng)用軟件,軟件使用的數(shù)據(jù)和等等。標號1009表示依照以后描述的控制程序控制其它器件的CPU。標號1007表示MIDI接口,通過該接口MIDI信號和外部部件進行交換。根據(jù)從外部器件收到的MIDI信號,MIDI接口1007中斷CPU1009。標號1008表示產(chǎn)生時間信息的定時器,標號1010表示ROM,該ROM存儲各種程序和數(shù)據(jù)例如初始程序加載器和由顯示器顯示的字符鉛字。標號1011表示RAM,該RAM能被CPU1009存取以讀/寫數(shù)據(jù)。標號1004表示從RAM1011的預(yù)定區(qū)域讀出存儲的數(shù)據(jù)和通過DMA中斷CPU1009再現(xiàn)數(shù)據(jù)的再現(xiàn)器件。標號1005表示把由再現(xiàn)器件1004產(chǎn)生的數(shù)字聲音數(shù)據(jù)轉(zhuǎn)換為模擬數(shù)據(jù)的轉(zhuǎn)換器,標號1006是依照模擬聲音信號再現(xiàn)音樂音符的聲音系統(tǒng)。
A2.任選的硬件附加到上述列表的器件,任選的硬件可以附加到系統(tǒng)(1)MMU1013AMMU(算術(shù)操作單元協(xié)同處理器)1013能被附加到CPU1009。
(2)DSP板1014在該實施例中,再現(xiàn)器件1004能由DSP板1014所取代。DSP板1014配置有以高速管道處理執(zhí)行算術(shù)操作的DSP(數(shù)字信號處理器)1014a,波形存儲器1014b,和延遲存儲器104C。
A3.實施例的層結(jié)構(gòu)依本發(fā)明第二實施例的音樂音調(diào)產(chǎn)生系統(tǒng)的硬件和軟件的層結(jié)構(gòu)將參照圖12加以描述。在圖12中,第一層是由硬件例如CPU1009組成的物理層。第二層至第六層是由CPU執(zhí)行的軟件組成的邏輯層。第二層是由包括子程序的信號處理模塊組成以執(zhí)行最初的信號處理例如算術(shù)操作四規(guī)則,位移和延遲。第三層是由基本聲源模塊或基本音調(diào)產(chǎn)生器模塊組成,通過按照各種方法使用信號處理模塊去產(chǎn)生波形數(shù)據(jù)。聲源模塊將在下面解釋。當前,這現(xiàn)存在著按照各種方法合成波形數(shù)據(jù)的各種聲源器件,包括主要三種方法類型如下稱為“PCM聲源”的一聲源通過讀出存儲在存儲器的音樂聲的采樣的波形數(shù)據(jù)和通過轉(zhuǎn)換波形數(shù)據(jù)為模擬信號來合成聲音。
稱為“FM聲源”的一聲源包括大量操作器或振蕩器,通過用其它操作器的其它輸出諸信號頻率調(diào)制一操作器的輸出信號或者使多個操作器的輸出信號相互疊加來合成模擬聲信號。
稱為“物理模型聲源”的一聲源通過模擬聲學樂器性能以產(chǎn)生數(shù)字聲音數(shù)據(jù)和通過轉(zhuǎn)換該聲音數(shù)據(jù)為模擬信號來合成聲樂聲音。
這里還有其它的方法在聲源器件中產(chǎn)生音調(diào),包括高頻合成方法,共振峰合成方法,振鈴調(diào)制方法等等。
在該實施例中,裝配了軟件模塊1031至1033以按照上述的基本方法產(chǎn)生聲音數(shù)據(jù)。PCM聲源模塊1031完成包括在那類的含有濾波器的離散PCM聲源器件的電路方框的基本操作,和每一個操作是由包括在第二層的稱為初始信號處理模塊1020執(zhí)行的。FM聲源模塊1032執(zhí)行含有六個操作器的離散FM聲源器件的基本操作。物理模型聲源模塊1033完成或模仿管樂器物理模型的基本操作。物理模型聲源模塊的算法隨要被模擬的實際的樂器的種類而變化。因此,多個物理模型聲源模塊1033被要求去模仿物理的樂器。此外,如上所述,這里存在著合成音樂聲音的各種基本方法,盡管基本方法是相同的,實際合成的算法稍微地不同,這取決于安裝在要被模仿的電子樂器內(nèi)的聲源LSI芯片。聲源模塊1031至1033配備有盡可能精確地模仿各種聲源LSI芯片的基本操作的各種算法。
在第四層,偽聲源1041至1045被提供以模仿各種聲源LSIs。偽聲源1041至1045通過命令選擇,組合,或擴展在聲源模塊的基本算法中使用的各種控制參數(shù)。由聲源模塊產(chǎn)生的音樂聲信號的的特性并不僅僅依賴聲源LSI的硬件組配,而且還依賴聲源LSI的控制程序??刂瞥绦蜃畛踉O(shè)計為控制電子樂器的一特殊模型,和由于軟件的不同而變化。這樣,在第五層,這里提供了聲源驅(qū)動器1051至1055。聲源驅(qū)動器1051至1055模仿控制相應(yīng)聲源的LSI芯片的CPU的操作,和命令偽聲源1041至1045模仿LSI芯片的內(nèi)部處理,使得聲源或音調(diào)合成器完全地被模仿。在要被模仿的模型音調(diào)產(chǎn)生系統(tǒng)包括多個聲源LSIs的情況下,多個偽聲源1041至1045能夠被調(diào)入。
第六層配備有應(yīng)用軟件1061至1065例如定序器,游戲和安排軟件。軟件1061至1065選取聲源驅(qū)動器1051至1055中的適當?shù)囊恍┮园凑找院竺枋龅乃惴óa(chǎn)生音樂聲音。如果提供任選的DSP板1014,涉及第一至第三層的處理由DSP板1014執(zhí)行。
A4.數(shù)據(jù)格式演奏數(shù)據(jù)的文件格式在第二實施例中使用的各種數(shù)據(jù)格式參照圖13A-13D加以闡述。圖13A給出了演奏數(shù)據(jù)文件,該文件存儲在硬盤1003中。在圖13中,標號1101表示位于演奏數(shù)據(jù)文件頂部標題。1101記錄信息例如被模仿的聲源的類型,由演奏數(shù)據(jù)表示的在歌中使用的音調(diào)的數(shù)目和內(nèi)容,音色碼等等。涉及被模仿的聲源的信息包括(a)被模仿的電子樂器的類型。即,涉及PCM聲源,F(xiàn)M聲源,物理模型聲源等等的類型。
(b)被模仿的電子樂器的聲源LSI的模型碼,一個或多個模型碼被指定。
(c)被模仿的電子樂器的模型碼。
這些數(shù)據(jù)共同參考為器件信息,該信息要包含在被模仿的模型電子樂器的音調(diào)產(chǎn)生系統(tǒng)中的器件。
標號1102表示聲源參數(shù)字段,在該段中為每一個音色記錄控制參數(shù)。一般而言,音色控制參數(shù)的格式隨樂器不同而不同,在該實施例中,記錄在聲源參數(shù)字段中的控制參數(shù)的格式取決于聲源的類型。該格式與要被模仿的電子樂器聲源控制參數(shù)的最初格式一致。
標號1103表示波形數(shù)據(jù)字段,在該字段中波形數(shù)據(jù)被記錄以制造音樂聲音的所希望音色。在要被模仿的樂器是PCM聲源的情況下波型數(shù)據(jù)可以是采樣數(shù)據(jù),或者在要被模仿的聲源是物理模型類型的情況下波型數(shù)據(jù)可以是非線性函數(shù)表,具有采樣值的數(shù)據(jù)存儲在表地址中。標號1104表示順序數(shù)據(jù)字條,在該字條中歌曲的事件數(shù)據(jù)順序地加以記錄,順序數(shù)據(jù)1104的格式和MIDI數(shù)據(jù)文件的格式一樣。
(2)聲源參數(shù)和波型數(shù)據(jù)。
存儲在RAM1011的各種數(shù)據(jù)格式將參看圖13B-13D加以解釋。
在13B中標號1120表示波形數(shù)據(jù)字條,在該字條中大量波形數(shù)據(jù)WD被記錄。標號1110表示包括被分為16部分的聲源參數(shù)PD1,PD2,…PD16的聲源參數(shù)字條,每個聲源參數(shù)字條記錄著各種參數(shù)以產(chǎn)生各種聲音。一組聲源參數(shù)在該圖的展開形式中給出。在該實例中,要被模仿的樂器的聲源是PCM聲源,該參數(shù)包括了指定波形數(shù)據(jù)中的一個的波形指定數(shù)據(jù)。波形指定數(shù)據(jù)根據(jù)音色寄存器的內(nèi)容而不同的,波形數(shù)據(jù)的數(shù)目可以是聲源參數(shù)的幾倍。
(3)輸入緩沖器如在圖13C中所示,標號1130表示輸入緩沖器,該緩沖器存儲通過MIDI接口1007輸入的MIDI數(shù)據(jù)或從軟盤1003加載的順序數(shù)據(jù)1104的內(nèi)容。輸入緩沖器1130按時間系列存儲事件數(shù)據(jù)ID1,ID2,ID3…,當前事件數(shù)據(jù)的數(shù)目存儲在輸入緩沖器的頂部地址中。每一個事件數(shù)據(jù)ID1,ID2,ID3…包括一個事件信息(音符開始,或音符結(jié)束)和指示當事件已經(jīng)開始的定時的時間信息。
(4)聲源寄存器標號1140表示在圖13D中給出的聲源寄存器。聲源寄存器1140具有“32”個音調(diào)產(chǎn)生訊道。聲源寄存器的一個訊道作為實例以擴展的形式給出,其中,要被模仿的樂器的聲源是PCM聲源,聲源寄存器的每一個訊道記錄著指定給訊道的音符數(shù),在波形數(shù)據(jù)字條1120中指定波形數(shù)據(jù)中的一個的波形指定數(shù)據(jù),和其它處理聲源的數(shù)據(jù)。聲源寄存器的內(nèi)容可以是不同的,這取于于等同于在要被模仿的樂器中所提供的偽聲源的類型。
B1.引導和初始化系統(tǒng)第二實施例的操作將在下面加以解釋,記算機化的音樂音調(diào)產(chǎn)生系統(tǒng)按照預(yù)定的操作系統(tǒng)和殼程序(窗口系統(tǒng))加以運行。殼程序在顯示器1002產(chǎn)生各種插畫。如果用戶使用鼠標“咔嚓”選出對應(yīng)音樂音調(diào)產(chǎn)生程序的插畫時,窗口1200在顯示1002上打開,如圖14A所示,操作系統(tǒng)的核心為第二實施例的音樂音調(diào)產(chǎn)生系統(tǒng)分配預(yù)定的資源(存儲器和時間分隔法)。然后,音樂音調(diào)產(chǎn)生系統(tǒng)的主程序被調(diào)用,這如圖15A所示,預(yù)定的初始化在步SP1完成,在步SP1,列在下面的步驟被執(zhí)行。
(1)加載初始的文件硬盤1003的預(yù)定的目錄提供定義音樂音調(diào)產(chǎn)生系統(tǒng)初始化內(nèi)容的初始文件,初始化文件的內(nèi)容列表如下(a)DSP板1014的存在/缺乏,如果DSP板存在,它的類型名稱。
(b)省缺聲源驅(qū)動器,省缺偽聲源,和省缺基本聲源模塊的類型。
(c)設(shè)置省缺聲源驅(qū)動器,省缺偽聲源,和省缺基本聲源模塊。
(d)指定初始化文件的省缺目錄。
(2)設(shè)置省缺聲源驅(qū)動器,省缺的聲源,省缺基本聲源模塊。
在步SP1,按照初始文件的內(nèi)容,省缺聲源驅(qū)動器,省缺偽聲源,和省缺基本聲源模塊從硬盤被加載。這些資源的建立可以由用戶的輸入或演奏數(shù)據(jù)加以修改。建立聲源驅(qū)動器,偽聲源和基本聲源模塊的細節(jié)在以后描述。
(3)其它的初始化在步SP1中,上述的步驟,各種初始化包括設(shè)置各種控制參數(shù)的初始值完成以后。
B2.主循環(huán)在初始化以后,步驟進到步SP2。在步SP2,輸入緩沖器1130被存取以檢查是否新的MIDI數(shù)據(jù)通過MIDI接口1007到達。如果沒有MIDI數(shù)據(jù)到達,程序進到步SP4。在步SP4,開關(guān)事件的發(fā)生被檢測。開關(guān)事件包括在窗口1200內(nèi)的鼠標操作事件,和在窗口1200激活時的情況下的鍵盤事件。如果沒有開關(guān)事件,程序進到步SP6,在步SP6,標志RUN被測試,是否標志是“1”。標志RUN指示是否自動演奏按照存在硬盤1003中的演奏數(shù)據(jù)當前被執(zhí)行。如果沒有自動演奏在處理中,標志RUN是“0”,那么處理步進到步10。在步SP10,圖18所示音調(diào)產(chǎn)生處理子程序被調(diào)用。然而,如果聲源寄存器1140根據(jù)根本不包含任何數(shù)據(jù),那么音調(diào)產(chǎn)生處理子程序?qū)嶋H上什么也不做,音調(diào)產(chǎn)生處理子程序的細節(jié)將在以后描述,在隨后的步SP11中,各種其它的處理被完成,步SP2至SP11的主循環(huán)被重復。
B3.MIDI事件處理根據(jù)通過MIDI接口1007接收到的事件數(shù)據(jù),CPU109的中斷信號被產(chǎn)生,使得在圖5B給出的MIDI接收中斷程序被調(diào)用。根據(jù)調(diào)用的程序,程序步進入到步SP21,那里接收的MIDI數(shù)據(jù)從MIDI接口1007加載到RAM1011的預(yù)定的范圍。在步SP22,定時信息從定時器1008中讀出,接收的數(shù)據(jù)和定時信息寫在輸入緩沖器1130端。與此同時,在輸入緩沖器1130頂部的輸入事件計數(shù)器加1。在上述的步都做完時,程序返回到中斷前執(zhí)行的程序。
在返回參看圖15A,在主循環(huán)的前述步驟之后,如果程序帶有新接收的數(shù)據(jù)再次進入步SP2,程序又分枝到步SP3。在步SP3中,根據(jù)新收到的數(shù)據(jù),合成音樂音調(diào)所需的音符數(shù),音符開始和其它各種的數(shù)據(jù)寫入聲源寄存器1140。在接收的數(shù)據(jù)是音符開始的情況下執(zhí)行的處理現(xiàn)參考圖17A和17B詳細描述。在圖17A的步SP61中,音符數(shù),速度和音色碼tn(“n”是對應(yīng)相應(yīng)音色的部分數(shù)‘1’至‘16’中的1個)分別寄存在變量NN,變量VEL,變量tn中。然后,在步SP62中,在當前選出的聲源驅(qū)動器DP(a)(在第五層中的子程序)中的涉及音符開始的處理被執(zhí)行。特別是,圖17B的子程序被調(diào)用。
在圖17B的步SP71,聲源寄存器空閑聲調(diào)產(chǎn)生訊道分配給音符開始事件,如果兩被模仿的聲源這種類型,一音調(diào)是由兩個聲源合成的,則分配二個聲道、在步72,按照音符數(shù)和速度等等處理最初的參數(shù)PDn(“n”是部分數(shù))。在步SP72中,樂器的音調(diào)不僅隨強度而且隨音色變化。近而,音色可以根據(jù)操作速度變化。例如,鋼琴的音調(diào)可以由壓琴而變化。這樣,在通常的聲源中,按照音符數(shù)或速度,聲源參數(shù)可以適當?shù)丶右哉{(diào)整。類似地,在該實施例中,使用類似于要被模仿的通常聲源的算法可以修改聲源參數(shù),在步SP73中,處理的聲源參數(shù)和音符開始事件的定時被存儲在事先分配的音調(diào)發(fā)生器訊道內(nèi)。“音符開始定時”寄存是第二實施例顯著特征之一,并且從未在現(xiàn)有技術(shù)中公開過,這就是為什么“音符開始定時”寄存將在后面描述的原因。在步SP74中,音調(diào)開始被寄存到所分配的訊道。在上述的諸程序都被處理完以后,程序通過音符事件處理子程序返回到主循環(huán)。根據(jù)音符截止,音調(diào)帶等等的發(fā)生,類似的程序被執(zhí)行如同主要被模仿的模型聲源中。各種被寄存到分配的聲源寄存器。在一些事件處理中,執(zhí)行“音符開始”寄存和這就把要被模仿的真實聲源和計算機化的聲源加以區(qū)分。
B4聲調(diào)產(chǎn)生處理(1)聲調(diào)產(chǎn)生處理的方法回過來參看圖15A的步10,當一些數(shù)據(jù)寫入聲源寄存器時(換句話,特定音符產(chǎn)生訊道分配給一些音符事件),真實的發(fā)聲在音調(diào)產(chǎn)生處理子模塊中被執(zhí)行。在闡述音調(diào)產(chǎn)生處理子程序之前,參照圖19描述基本操作方法。按照寄存在聲源寄存器1140中的事件數(shù)據(jù)需要各種波形處理程序以產(chǎn)生音樂音調(diào)。然而,為每一個事件發(fā)生執(zhí)行波形處理程序可能不時造成麻煩。當波形操作處理為一事件執(zhí)行時而另一個事件發(fā)生了,多個事件應(yīng)在同時通過平行處理加以處理。這種情況可以造成每一個事件處理時間的變化,和可以破壞聲音再現(xiàn)的質(zhì)量。這樣,在本實施例中,由于處理所需時間的延遲被平均或被補償以取消處理時間變化的壞效果。為此原因,所有波形處理過程共同的在每一個周期Tp中執(zhí)行。如圖19所示,波形操作處理被順序地周期地按照定時t1,t2,t4和t5去做。雖然波形操作處理所需的單獨的時間TC是不同的,時間TC的最大值定義為TCMax。此外,如前所述,聲音再現(xiàn)器件1004不時地中斷CPU1009,以從RAM1011中讀出處理的波形數(shù)據(jù),和轉(zhuǎn)換該波形數(shù)據(jù)為再現(xiàn)的聲音信號。再現(xiàn)器件1004的存儲器的存取在恒定的TC間距下是連續(xù)地和間斷地受到影響。這樣,波形數(shù)據(jù)存儲的地址和聲音信號的真實音符開始定時在特定的關(guān)系下是相互對應(yīng)的。依此,真實音符開始定時是被TD(TD≥TP+TCMAX)所延遲。換句話說,對應(yīng)著延遲的音符開始定時,處理的波形數(shù)據(jù)被寫入地址。這樣,在時間間隙從t1到t2的時間內(nèi)如果發(fā)生音符開始事件,那末在t3之后執(zhí)行事件的真實音符開始。通常,延遲時間TD近似設(shè)置為0.1秒。由于如何設(shè)置恒定的間隙TP延遲時間可以變化,這就可能縮短合成的波形數(shù)據(jù)存取間隔TP和設(shè)置延遲時間T0為大約0.01秒,使得盡管他或她手動地操作連接在MIDI接口1007的樂器演奏者并不感到非自然的響應(yīng)。如前所述,這就要求寄存器調(diào)整或后處理聲源參數(shù),和在聲源寄存器內(nèi)的“音符開始定時”。這就要求精確地執(zhí)行音調(diào)產(chǎn)生處理。在本實施例中,事件發(fā)生的定時應(yīng)當被檢測以取代在延遲時間TD過去后定時音符開始以響應(yīng)事件的發(fā)生。換句話說,在該實施例中的聲源寄存器是唯一的,在該寄存器中它不僅模仿要被模仿的聲源LSI的離散的寄存器,而且還要回憶事件發(fā)生的定時信息。
(2)音調(diào)產(chǎn)生處理的細節(jié)通過調(diào)用屬于第四層的子程序完成音調(diào)產(chǎn)生處理。處理的一實施例見圖18。在圖18的步81中,聲源寄存器1140的內(nèi)容被檢索。在步SP82通過參看步SP81的檢索結(jié)果進行測試看是否有新的數(shù)據(jù)在任一寄存器間隔內(nèi)寄存在音調(diào)產(chǎn)生訊道內(nèi)。如果新數(shù)據(jù)寄存在步SP82中被檢出(在圖中“是”分枝),程序進入步SP83,其中適當?shù)膫温曉碨P(b)被調(diào)用作為要模仿的離散聲源LSI而起作用。偽聲源SP(b)轉(zhuǎn)換寄存在聲源寄存器1140內(nèi)的初始的參數(shù)數(shù)據(jù)為控制基本聲源模塊的有效的或等同的參數(shù)數(shù)據(jù),轉(zhuǎn)換結(jié)果存儲在RAM1011的預(yù)定的區(qū)域。在步SP84,一基本聲源模塊MP(c)被調(diào)用。聲源模塊MP(c)被分為聲源子模塊MP(c)-1至MP(c)-3,在步SP84聲源子模塊MP(c)-1被調(diào)用。
為了準備圖19所示的下一個波形操作處理,聲源子模塊MP(c)-1建立波形,操作或合成所需的各種參數(shù)。即,新寄存的數(shù)據(jù)應(yīng)當是事件數(shù)據(jù)諸如音符開始,音符截止,強度變形等等。波形操作處理的細節(jié)在該步被定義。例如,強度變形事件的操作恰恰是移動強度。此外,表示事件的處理恰恰是音量的變化。如上所示,聲源子模塊MP(c)-1模仿包括在要被模仿的聲源LSI內(nèi)所具有的各種內(nèi)部電路塊,和屬于第三層。在偽聲源SP(b)或聲源子模塊MP(c)-1內(nèi)的處理僅根據(jù)新數(shù)據(jù)被寄存的聲源寄存器的音調(diào)產(chǎn)生訊道加以執(zhí)行。
在步SP85和SP86,進行測試是否當前的時間達到了進行波形操作處理的定時(在圖19的t1,t2,t4或t5)。如果測試結(jié)果是“否”,程序返回主循環(huán),在當前時間達到定時(t)后根據(jù)程序進到步SP86,步SP87到SP89被執(zhí)行。至步SP87,聲源子模塊MP(c)-2被調(diào)用。根據(jù)在步SP84獲得的有效的參數(shù),聲源子模塊MP(c)-2準備波形操作處理。即,各種參數(shù)在時間的基礎(chǔ)上進行擴展,在下面的步SP88中,聲源子模塊MP(c)-3被調(diào)用,按照擴展的參數(shù)計算真實的聲音數(shù)據(jù)。在聲源子模塊MP(c)-2和MP(c)-3的處理產(chǎn)生具有比預(yù)定值較高級別的音樂音調(diào)。在子模塊MP(c)-2和MP(c)-3的處理根據(jù)所有音符開始訊道加以執(zhí)行,在固定區(qū)間的TP內(nèi)的波形數(shù)據(jù)被計算和為每一個訊道加以合成,為每一個訊道合成的波形數(shù)據(jù)在聲源子模塊MP(c)-3中被累加,為固定周期Tp的聲音數(shù)據(jù)作為累加的結(jié)果被完成。然后,在步SP89,計算的聲源數(shù)據(jù)的再現(xiàn)被保留,保留建立在再現(xiàn)器件1004中,使得當數(shù)據(jù)被復制時,隨后計算的聲音數(shù)據(jù)能夠隨著在定時時當前再現(xiàn)的先前的聲音數(shù)據(jù)加以復制,在所有的處理執(zhí)行后,程序返回到主循環(huán),這樣,對應(yīng)每一個事件的真實音符開始延遲TD后被實現(xiàn)了。
B5.開關(guān)事件處理現(xiàn)在,在輸入裝置中使用鍵盤或鼠標裝置執(zhí)行發(fā)生的開關(guān)事件的處理將被解釋,返回參看圖15A,當在步SP4開關(guān)事件被檢測時,程序分枝到步SP5,在該步中,對應(yīng)開關(guān)事件的處理被執(zhí)行、開關(guān)事件處理將在下面解釋(1)“文件”按鈕1201如圖14A所示,如在窗口1200上使用鼠標咔嚓一下選中“文件”按鈕1201,文件選擇窗口在顯示器1002上通過窗口1200被顯示出,文件選擇窗口顯示存儲在預(yù)定目錄內(nèi)的演奏數(shù)據(jù)文件的姓名(由初始的文件指定省缺的目錄)。該演奏數(shù)據(jù)文件是具有圖13A所示的數(shù)據(jù)格式,并附有預(yù)定的文件擴展。如果用戶在顯示文件名稱上移動鼠標器1204和兩次咔嚓按動鼠標器,相應(yīng)的文件進入“選擇”狀態(tài)。然后,如圖16A所示,執(zhí)行處理數(shù)據(jù)文件再現(xiàn)命令的子程序。在圖16A的步SP31中,選出的文件準備被恢復。在步SP32,按照演奏數(shù)據(jù)文件的標題1101,聲源參數(shù)字段1102,和波形字段1103建立音調(diào)產(chǎn)生系統(tǒng)或音源、聲源的建立過程如圖16B所示。在圖16B的步SP41內(nèi),在標題1101內(nèi)定義的“聲源的類型”寄存在變量TGT內(nèi)。在下面的步SP42內(nèi),變量TGT被分析,和目標聲源被識別在步SP42,按照識別的聲源確定目標聲源a,b,和c。變量a是聲源驅(qū)動器的模型號,b是偽聲源的模型號,c是聲源模塊的模型號。在步SP43,由變量a指定的聲源驅(qū)動器DP(a)被建立,聲源驅(qū)動器DP(a)從硬盤1003加載到RAM1011。在步SP44和SP55中類似,偽聲源SP(b)和聲源模塊MP(c)從硬盤1003中讀出。即,一組軟件模塊從軟件資源的不同的層中選出以共同地建立能模仿模型電子樂器的聲源的音調(diào)產(chǎn)生系統(tǒng)。在步SP46,按照選取文件聲源參數(shù)字條1102準備多聲源參數(shù)。所需的聲源參數(shù)在聲源參數(shù)字條上1110被擴展(見圖13B)。在步SP47,由波形數(shù)據(jù)字條1103指定的波形數(shù)據(jù)在波形數(shù)據(jù)字條上被擴展。在上述的所有處理完成后。程序返回到到最初的調(diào)用者程序(在該情況下是文件再現(xiàn)程序)。
返回到圖16A步SP33的處理數(shù)據(jù)文件再現(xiàn)命令事件子程序,自動演奏的準備被完成。例如,順序數(shù)據(jù)的預(yù)定部分被事先讀出。
通過圖16A和16B所示的處理,最初選取的一級省缺聲源驅(qū)動器,省缺偽聲源和省缺聲源模塊已經(jīng)由根據(jù)標題1101和波形數(shù)字字條1103的器件信息的新的一組所代替。在初始化步SP1中,如聲源建立子程序的一類似程序(圖16B)被執(zhí)行。然而,在圖16B的SP41中,由標題1101指定的聲源類型存儲在變量TGT內(nèi),而“省缺聲源類型”在初始化步時存儲在變量TGT內(nèi)。
(2)‘選取音色’按鈕1202返回參看圖14A,如果用鼠標在窗口1300咔嚓選取‘選取音色’按鈕1202,圖14B所示的音色窗口顯示在顯示器1002的屏幕上。在圖14B內(nèi),標號1302表示音色選擇表,該表提供了和要被模仿的聲源的訊道或部分同樣多的數(shù)目(在圖中示出了‘16’部分)。恰恰在音色選擇窗口1300顯示之后,音色選取表1302的部分‘1’被顯示。音色選取表1302列數(shù)能被選取的音色。當前選中的音色以黑底白字顯示。在圖14B所示的例子中,‘3 Eletric Grand Piano’在部分1中被選取。在音色名稱前面的數(shù)字被稱為音色碼。如果示出另一個音色名稱的面積被鼠標咔嚓選中,該面積變?yōu)楹诘装咨?,和以前被選中的部分返回到正常的顯示(該狀態(tài)被稱為準時選取)。為選取除部分‘1’以外的音色,使用鼠標咔嚓一聲選取索引1301中想選的部分數(shù)(‘1’至‘16’)。相關(guān)部分的另一個音色選取表1302出現(xiàn)在音調(diào)選取窗口1300。如果在音色臨時選取之后用鼠標咔嚓一聲選取cancel與按鈕1304,臨時的選取狀態(tài)均被取消了。另一個方面,用鼠標咔嚓一聲選取‘enter’按鈕1303,根據(jù)每一部分執(zhí)行圖16C所示的處理。最初設(shè)置給每一部分的音色碼tn(“n”是‘1’至‘16’)隨臨時選取的音色碼而改變。近而,聲源參數(shù)字段1110和波形數(shù)據(jù)字段1120根據(jù)在步SP51內(nèi)新選取的音色碼而更新。在上述所示的處理完畢以后,程序返回到主循環(huán),按照新選出的參數(shù)例如聲源參數(shù)執(zhí)行聲音數(shù)據(jù)的合成。
(3)開始事件處理在窗口1200上根據(jù)鼠標咔嚓一聲選取‘play’按鈕1203,標志RUN被設(shè)置“1”,和然后程序返回到圖15A的主循環(huán)。這樣,在圖15A的步SP6,程序分枝到“是”方向到步SP7。在該步中,當前的時間被測試看是否它達到了包含在演奏數(shù)據(jù)中的順序數(shù)據(jù)1104內(nèi)產(chǎn)生下一事件的定時。在存儲在順序數(shù)據(jù)1104的頂部的事件在步SP7總是鑒別為‘是’。在隨后的步SP8中,在尾接指令的頂部的事件被處理。事件處理類似于步SP3(對輸入MIDI信號的處理)。例如,如果頂部事件是音符開始,執(zhí)行圖17A和17B所示的程序。在步SP9,在頂部事件之后依照持繼時間數(shù)據(jù)需要產(chǎn)生下一個事件的定時,然后程序返回到主循環(huán)。此后,在主循環(huán)的步SP7,測試當前時間看它是否達到了預(yù)先設(shè)置的定時,如果測試結(jié)果是“是”程序分枝到步SP8,執(zhí)行涉及定時的事件處理。
(4)暫?!?’停止‘/’快速向前‘/’回轉(zhuǎn)事件處理根據(jù)使用鼠標咔嚓一下選中‘暫?!鞍粹o1205或“停止”按鈕1206,在返回到主循環(huán)之前,標志RUN被設(shè)置為“0”。此后,絕不執(zhí)行SP7至SP9,依照系統(tǒng)內(nèi)的演奏數(shù)據(jù)的自動播放被停止,僅依照外部MIDI數(shù)據(jù)的演奏被再現(xiàn)。如果用鼠標咔嚓一聲選中‘快速向前’按鈕1208,順序數(shù)據(jù)被高速跳過。咔嚓一聲選中‘回轉(zhuǎn)’按鈕1207,造成了在相反方向跳過順序數(shù)據(jù)。C.第二實施例的效果(1)在第二實施例中,演奏數(shù)據(jù)不僅包括了順序數(shù)據(jù),而且還包括了標題1101,聲源參數(shù)1102和波形數(shù)據(jù)字段。這樣,按各種方法操作的各種聲源能被非常精確地模仿。
(2)在上述第二實施例中,每一個事件的發(fā)生定時被寄存在聲源寄存器內(nèi),使得處理時間的延時能被平均和補償。
D.變化本發(fā)明的第二方面并不局限在上述第二實施例的范圍內(nèi),并能以下表加以修改。
(1)在第二實施例中,聲源驅(qū)動器,偽聲源和聲源模塊在它們由演奏數(shù)據(jù)指定的情況下從硬盤1003加載到RAM1011。然而,頻繁使用的包含這些軟件的程序文件可以事先預(yù)加載到RAM1011。使用預(yù)加載,可以省去加載相關(guān)軟件的程序文件的開銷。
(2)依照偽聲源1041至1045的類型,聲源模塊1031至1033的算法可以被修改。例如,在第二實施例中的FM聲源模塊1032的操作器的號數(shù)是‘6’,如果要被模仿的聲源的操作器的號數(shù)是‘4’,操作器的號數(shù)能被設(shè)置為‘4’。類似地,如果由PCM聲源模塊1031模仿的聲源缺少濾波功能,該功能可以在PCM聲源模塊中抹去。
(3)在第二實施例中,偽聲源SP(6)在步SP83中被調(diào)用,存儲在聲源寄存器1140的數(shù)據(jù)被轉(zhuǎn)換為有效控制聲源模塊的等同的數(shù)據(jù)。一般而言,轉(zhuǎn)換的數(shù)據(jù)分配給屬于第三層的聲源模塊1031至1033,盡管電子樂器或被模仿的聲源的類型或產(chǎn)品型號是不同的,但合成的方法(PCM,F(xiàn)M等等)是相同的,那么數(shù)據(jù)具有被提供的相同的格式。依此,控制聲源模塊(以后稱為‘基本信息’)的數(shù)據(jù)是非常通用的,并能為使用相同的合成聲音方法的聲源組共同地使用。這樣,通過‘基本信息’轉(zhuǎn)換數(shù)據(jù)使得演奏數(shù)據(jù)能在電子樂器的不同平臺之間加以交換。換言之,本發(fā)明的計算機化的音樂音調(diào)產(chǎn)生系統(tǒng)作為演奏數(shù)據(jù)轉(zhuǎn)換器使用。一實例描述如下,其中第一演奏信息例如音色信息被轉(zhuǎn)換為第二演奏信息。首先,具有圖13A所述文件格式的第一演奏信息轉(zhuǎn)換為類似第二實施例中的‘基本演奏信息’。然后,通過逆轉(zhuǎn)換過程,該‘基本演奏信息’被轉(zhuǎn)換為第二演奏信息。對于該轉(zhuǎn)換方法,在模型樂器內(nèi)的特殊演奏數(shù)據(jù)格式和‘基本演奏信息’之間的雙向轉(zhuǎn)換程序是需要的。使用這樣的演奏方法,該演奏數(shù)據(jù)文件能被電子樂器的多種不同平臺所共享。
(4)在第二實施例中,使用產(chǎn)生的‘基本信息’合成音樂音調(diào)的波形數(shù)據(jù)。然而,依照通過輸入器件1001的輸入操作可以編輯‘基本信息’,這樣,更豐富多采的音樂聲音能被產(chǎn)生,并以此克服了聲源或樂器的最初產(chǎn)品型號的限制。
如前所述,依照本發(fā)明的第二方面,計算機化的樂器使用了指定要被模仿的電子樂器的器件信息,使得有可能處理被模仿的樂器的演奏信息。近而,依照器件信息建立模仿的聲調(diào)產(chǎn)生系統(tǒng),這就有可能再現(xiàn)具有和被模仿樂器等同特性的音樂聲音。指定電子樂器聲源被模仿以產(chǎn)生電子聲音信號波形,使得有可能以指定電子樂器一致的方法處理演奏信息??刂浦付娮訕菲鞯穆曉吹奶幚砥鞯牟僮鞅荒7拢沟孟鄳?yīng)各種處理器的音樂聲音信號能夠被產(chǎn)生。存儲指定電子樂器聲源的多種控制參數(shù)的控制寄存器的操作被模仿,使得依照控制寄存器的內(nèi)容的處理為不同的電子樂器共同所使用。任何電子樂器聲源的音樂聲調(diào)產(chǎn)生被模仿,使得依照各種方法操作的各種聲源能夠非常精確地模仿。單個處理器有選擇地模仿電子樂器的各種聲源的操作,使得有可能用便宜的組態(tài)模仿電子樂器的多種方法。近而,依照本發(fā)明的第二方面,最初的音色信息被轉(zhuǎn)換為在基本音調(diào)產(chǎn)生系統(tǒng)中使用的基本音色信息,該音調(diào)產(chǎn)生系統(tǒng)模仿初始電子樂器的聲源安排,使得為特定型號樂器產(chǎn)生的最初的音色信息能被轉(zhuǎn)換為更通用的格式?;疽羯畔⒖杀蝗芜x地被轉(zhuǎn)換為另一種電子樂器的音色信息,使得為一樂器特定型號制造的音色信息能夠高保真地翻譯為樂器的另一型號。通過手動操作裝置基本音色信息的值能被編輯,使得豐富多采的音樂聲音能被產(chǎn)生,并以此克服了特定型號的限制。
權(quán)利要求
1.一種使用包括軟件模塊去產(chǎn)生音樂聲音的計算機化的樂器,包括能用一組軟件模塊加載的初級存儲器,該組軟件模塊被選取去執(zhí)行在產(chǎn)生音樂聲音;中央處理單元,用于存取初級存儲器以執(zhí)行存儲在其中的軟件模塊以產(chǎn)生音樂聲音;第二存儲器,用于臨時地存儲被設(shè)計執(zhí)行各種任務(wù)的大量的軟件模塊;和加載器,有效地當產(chǎn)生音樂聲音被初始化時用于通過按照相應(yīng)的標準檢索第二存儲器,選取一組軟件模塊,和用于把選出的軟件模塊加載到初級存儲器。
2.權(quán)利要求1的計算機化的樂器,其特征在于,中央處理單元包括通過交換信息能使諸軟件模塊相互通信,以整體地執(zhí)行這組軟件裝置。
3.權(quán)利要求1的計算機化的樂器,其特征在于,加載器包括按照物理標準操作的選擇裝置,用于檢查硬件模塊,以識別在產(chǎn)生音樂聲音中使用的硬件模塊,用于選出相應(yīng)于識別的硬件模塊的軟件模塊。
4.權(quán)利要求1的計算機化的樂器,其特征在于,加載器包括按照演奏標準操作的選取裝置,如果第二存儲器存儲著兩個或者多個執(zhí)行實質(zhì)相同的任務(wù)但具有不同程度性能和不同創(chuàng)造年齡類似的軟件模塊,該選取裝置選取具有最高級性能和創(chuàng)造最小年齡的類似軟件模塊的最佳的一個。
5.權(quán)利要求1的計算機化樂器,其特征在于,加載器包括按照整體標準操作的選取裝置,僅當必要的軟件子模塊存儲在第二存儲器內(nèi)時,該選取裝置用于選取一軟件模塊和一個或多個必要的軟件子模塊。
6.權(quán)利要求1的計算機化樂器,其特征在于,加載器包括按照連續(xù)性標準選取軟件模塊而操作的選取裝置,僅當所說的另一軟件模塊存儲在第二存儲器內(nèi)時,才選擇相對另一個軟件模塊而言位于數(shù)據(jù)處理流的上游的軟件模塊。
7.權(quán)利要求1的計算機化樂器,其特征在于,加載器包括依照兼容性標準選取軟件模塊而操作的選取裝置,僅當軟件模塊和從第二存儲器中選出其它軟件模塊兼容時才選出該模塊軟件。
8.包括軟件模塊去產(chǎn)生音樂聲音的計算機化樂器,包括用一組軟件模塊加載的初級存儲器,該組軟件模塊被選出執(zhí)行產(chǎn)生音樂聲音;獨立于初級存儲器配置的第二存儲器,用于臨時存儲被設(shè)計執(zhí)行各種任務(wù)的各種類型的軟件模塊。當產(chǎn)生音樂聲音被初始化時操作的加載器,用于通過檢索第二存儲器選出有效的和最佳的一組軟件模塊,和用于加載選出的軟件模塊到初級存儲器;和中央處理單元,用于存取初級存儲器以執(zhí)行其中存儲的軟件模塊以產(chǎn)生音樂聲音,使得中央處理單元通過交換信息而使軟件模塊相互通信以匯總這組軟件模塊在一塊。
全文摘要
計算機化樂器用包括軟件模塊的資源產(chǎn)生希望的音樂聲音。其中初級存儲器用選來執(zhí)行產(chǎn)生所希望音樂聲音的多種任何的一組軟件模塊加載。中心處理單元存取初級存儲器執(zhí)行存在其中的軟件模塊產(chǎn)生音樂聲音。第二存儲器臨時存儲設(shè)計執(zhí)行各種任務(wù)的大量軟件模塊。當產(chǎn)生音樂聲音的初始化時加載器操作根據(jù)預(yù)定標準檢索第二存儲器選出有效的最佳一組軟件模塊,加載選出的模塊到初級存儲器,以確保有效最佳地使用資源。
文檔編號G10H7/00GK1516111SQ03122330
公開日2004年7月28日 申請日期1996年3月1日 優(yōu)先權(quán)日1995年3月3日
發(fā)明者田邑元一 申請人:雅馬哈株式會社