專利名稱:具有軟件和硬件聲源的計算機(jī)化的音樂系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在采用(CPU)的計算機(jī)應(yīng)用系統(tǒng),例如電子游戲機(jī),卡拉OK裝置,個人計算機(jī)等中所使用的一種音樂聲發(fā)生器,更具體地講涉及能夠按照性能信息產(chǎn)生各種音樂聲的音樂聲發(fā)生器。
通常,在一種裝置例如個人計算機(jī)中,可以用一個專用硬件模塊例如聲源CSI和聲源卡,并通過驅(qū)動程序來控制所安裝的聲源器件,來再現(xiàn)音樂聲。最近在個人計算機(jī)中CPU的性能顯著地改進(jìn),從而通過CPU代替特定的硬件模塊能夠產(chǎn)生音樂聲。與通過特定硬件產(chǎn)生音樂聲的″硬件聲源″相對照此種音樂聲發(fā)生稱為″軟件聲源″。CPU按照特定程序計算音樂聲波形數(shù)據(jù)。通過軟件聲源產(chǎn)生的聲品質(zhì)依賴于執(zhí)行該程序的CPU性能。如果CPU的性能高,那么能夠在高速率下計算波形數(shù)據(jù),從而能夠提高波形數(shù)據(jù)的取樣頻率而實(shí)現(xiàn)高品質(zhì)的音樂聲發(fā)生。然而,如果CPU性能差,難于在高速率下計算數(shù)據(jù),結(jié)果必須降低取樣頻率。上述情況必然導(dǎo)致再現(xiàn)音樂聲品質(zhì)較差。
關(guān)于安裝可選組件,在應(yīng)用系統(tǒng)的結(jié)構(gòu)中例如個人計算機(jī)的不同系統(tǒng)之間存在很大的差別。一般從廣義上說,可選器件包括硬盤,視頻卡等。然而,在本發(fā)明中可選組件表示涉及音樂聲發(fā)生中能連接的器件。值得注意,在不同的系統(tǒng)配置中CPU的處理能力可能是不同的。再說,在產(chǎn)生聲音的應(yīng)用程序和執(zhí)行其它工作的其他應(yīng)用程序同時并行調(diào)用時,CPU的負(fù)載可以隨著程序運(yùn)行狀況和當(dāng)前系統(tǒng)中執(zhí)行任務(wù)的狀況而變化。在上述方式中,在相同的系統(tǒng)中CPU有效處理能力可以改變。因此,每當(dāng)系統(tǒng)環(huán)境改變時,用戶必須重新安排用于聲產(chǎn)生的基本設(shè)置,這是非常勞累的。在這樣的系統(tǒng)中用戶不能識別在現(xiàn)行結(jié)構(gòu)設(shè)置中聲是否正確地產(chǎn)生,直到在實(shí)際再現(xiàn)聲音時發(fā)生樂音任何丟失和跳越時才能識別。換句話說,就是直到聲音被實(shí)際再現(xiàn)出來,是無法評介系統(tǒng)設(shè)置是否合理的。此外不論CPU的性能多么高,在許多情況中按照用戶的希望能夠利用一種外部聲發(fā)生硬件,實(shí)際使用硬件資源。在這樣情況中,全部使用硬件聲源可能發(fā)生問題,也就是,不可能產(chǎn)生超過該聲產(chǎn)生硬件設(shè)備的限制的聲音。許多樂音不能再現(xiàn)。即使在CPU中有足夠的處理能力,也不能增加眾多音品種類。
本發(fā)明的目的是解決上述問題,并提供一種能產(chǎn)生具有優(yōu)良品質(zhì)的各種音樂聲的音樂聲發(fā)生器。
按照本發(fā)明,一種音樂聲產(chǎn)生裝置,按照性能信息產(chǎn)生波形以發(fā)生音樂聲。該裝置包括能用于產(chǎn)生一種波形的第1波形發(fā)生器裝置,能獨(dú)立于第1波形發(fā)生器裝置用于產(chǎn)生波形的第2波形發(fā)生器裝置,用于提供性能信息的輸入裝置用于在第1波形發(fā)生器裝置和第2波形發(fā)生器裝置中至少選定一個來響應(yīng)所提供的性能信息的選定裝置,用于選擇地操作在第1波形發(fā)生器裝置和第2波形發(fā)生器裝置中選定的一個,以根據(jù)所提供的性能信息產(chǎn)生波形的控制器裝置,以及用于基于產(chǎn)生的波形發(fā)生音樂聲的輸出裝置。
具體地講,輸入裝置包括用于提供性能信息的裝置;所說性能信息包含有效地選定音樂聲的音品的音品信息,并包含有效地選定音樂聲產(chǎn)生的定時的定時信息。此外,選定裝置包括用于在第1波形發(fā)生器裝置和第2波形發(fā)生器裝置之中選定一個來響應(yīng)音品信息,從而輸出裝置在選定的定時產(chǎn)生具有選定音品的音樂聲的裝置。
選定裝置可以包括如果希望的話用于一致地既選定第1波形發(fā)生器裝置又選定第2波形發(fā)生器裝置,從而控制器裝置既操作第1波形發(fā)生器裝置又操作第2波形發(fā)生發(fā)生器裝置,以并列方式同向產(chǎn)生波形的可操作裝置。
輸入裝置可以包括用于提供性能信息有效地命令同向產(chǎn)生許多音樂聲的裝置。此外選定裝置可以包括用于按照由性能信息選定的同向音樂聲的數(shù)目選定第1波形發(fā)生器裝置和第2波形發(fā)生器裝置中的一個,結(jié)果選定的一個具有足以產(chǎn)生相應(yīng)于音樂聲數(shù)目的許多波形容量的裝置。
選定裝置還可以包括操作裝置,當(dāng)同向音樂聲的數(shù)目超過第1波形發(fā)生器裝置和第2波形發(fā)生器裝置中的任一個容量時用于既選定第1波形發(fā)生器裝置又選定第2波形發(fā)生器裝置,以保證完全產(chǎn)生同向音樂聲。
第1波形發(fā)生器裝置包括可選擇地連接到控制器裝置的一個外部波形發(fā)生器,同時第2波形發(fā)生器裝置可以包括一個與控制器成一體的內(nèi)部波形發(fā)生器,結(jié)果當(dāng)外部波形發(fā)生器沒連接到控制器裝置時,既使外部波形發(fā)生器應(yīng)該主要相應(yīng)于提供的性能信息,該選定裝置還是選定內(nèi)部波形發(fā)生器代替外部波形發(fā)生器。
第2波形發(fā)生器裝置、輸入裝置、 選定裝置和控制器裝置可以互相成為一體,以構(gòu)成組成計算機(jī)的主要部件,同時第1波形發(fā)生器裝置單獨(dú)構(gòu)成一個與主要部分分離的輔助部分、其可選擇地安裝到計算機(jī)上。
第1波形發(fā)生器裝置可以由控制器裝置驅(qū)動的硬件組件組成,同時第2波形發(fā)生器裝置可以由安裝在控制器裝置中的軟件組件構(gòu)成。
第2波形發(fā)生器裝置包括許多數(shù)字波形發(fā)生器,其基于不同算法運(yùn)算產(chǎn)生具有不同品質(zhì)的數(shù)字波形。再說,操制器裝置可以包括裝置用于按照提供的性能信息,選擇地操作最佳的一個數(shù)字波形發(fā)生器。
第2波形發(fā)生器裝置可以包括波形存儲型式的數(shù)字波形發(fā)生器,其能基于相對簡單的算法產(chǎn)生具有相對低品質(zhì)的數(shù)字波形,而另一個數(shù)字波形發(fā)生器能基于相對復(fù)雜的算法產(chǎn)生具有相對高品質(zhì)的另一個數(shù)字波形。
第2波形發(fā)生器裝置可以包括一個計算機(jī)化的波形發(fā)生器,其能夠按照給定算法在可變操作速率下通過連續(xù)計算數(shù)字波形樣值,產(chǎn)生一個數(shù)字波形。進(jìn)一步, 控制裝置可以包括用于予先操作計算機(jī)化的波形發(fā)生器,以在測量在進(jìn)行測試產(chǎn)生時的操作速率的同時,進(jìn)行測試產(chǎn)生模型數(shù)字波形裝置,用于最佳測定一個可與測量操作速率比較的取樣頻率的測定裝置,以及用于實(shí)際上操作計算機(jī)化的波形發(fā)生器,能夠同樣地按照所提供的性能信息在測定的取樣頻率下,連續(xù)地計算一個實(shí)際數(shù)字波形的樣值的裝置。
測定裝置可以包括用于將取樣頻率固定到一個步進(jìn)預(yù)定水平的裝置,所說預(yù)定速率低于和最接近測量的操作速率。
控制裝置還可以包括變換裝置,當(dāng)測定取樣頻率下落低于所限定的保證數(shù)字波形最低品質(zhì)的一個臨界水平時,操作變換裝置用于改變算法以提高計算機(jī)化波形發(fā)生器的操作速率,從而能再測定取樣頻率以超過該臨界水平。
變換裝置可以包括用于將復(fù)雜的算法改變成簡單的算法,從而計算機(jī)化的波形發(fā)生器基于簡單的算法操作以連續(xù)地讀出予儲存的一個樣值以再現(xiàn)產(chǎn)生數(shù)字波形的裝置。
按照本發(fā)明的另一方面,一個聲產(chǎn)生裝置,按照性能信息產(chǎn)生一個數(shù)字波形以發(fā)生一個音樂聲,該裝置包括用于提供性能信息的輸入裝置,計算機(jī)化的波形發(fā)生器裝置能基于給定算法,通過連續(xù)計算數(shù)字波形樣值,在變化操作速率下產(chǎn)生一個數(shù)字波形,測試裝置用于予先操作計算機(jī)化的波形發(fā)生器,對模型數(shù)字波形的產(chǎn)生進(jìn)行測試,同時測量進(jìn)行測試產(chǎn)生時的操作速率,測定裝置用于最佳測定一個與測量操作速率可比較的取樣頻率,控制器裝置用于實(shí)際操作計算機(jī)化的波形發(fā)生器,在測定的取樣頻率下能夠同樣連續(xù)地計算實(shí)際數(shù)字波形樣值,以及輸出裝置用于按照所提供的性能信息基于實(shí)際數(shù)字波形以發(fā)生音樂聲。
在本發(fā)明裝置中,輸入裝置提供性能信息,選定裝置選定哪一個波形產(chǎn)生器應(yīng)該產(chǎn)生相關(guān)于性能信息的音樂聲波形。由選定裝置選定的波形發(fā)生器裝置控制產(chǎn)生相關(guān)性能信息的音樂聲波形。因此,性能信息本身能選定第1和第2波形發(fā)生器裝置的哪一個應(yīng)該產(chǎn)生具有性能信息的音樂聲波形。第1和第2波形發(fā)生裝置在結(jié)構(gòu)上彼此不同,結(jié)果在第1和第2波形發(fā)生器裝置之間,它們處理的負(fù)載和產(chǎn)生的聲可以使得在波形產(chǎn)生方面不同。所以,通過選擇第1波形發(fā)生器裝置用于產(chǎn)生相關(guān)于性能信息的一個確定事件的音樂聲波形,而通過選擇第2波形發(fā)生器裝置用于產(chǎn)生相關(guān)于性能信息的另一個確定事件的音樂聲波形,有可能產(chǎn)生各種音樂聲。再說,通過控制波形發(fā)生器裝置分配到的性能信息,有可能調(diào)節(jié)處理負(fù)載。
最好確定哪一個波形發(fā)生器裝置、按照產(chǎn)生音樂聲的音品產(chǎn)生音樂聲波形,因?yàn)橐欢ㄐ褪降牟ㄐ伟l(fā)生器裝置應(yīng)得到一個最佳確定的音品。按照本發(fā)明中性能信息選定的音品確定最佳波形發(fā)生器裝置以產(chǎn)生相關(guān)于性能信息的音樂聲波形。在本發(fā)明中,音品信息可以包括在性能信息中。如上所述,既使提供相同性能信息,由于第1和第2波形發(fā)生器裝置之間的差別,音樂聲的特征還是可以不同。換句話說,能夠再現(xiàn)音樂聲各種波形。按照相同性能信息通過第1和第2波形發(fā)生器裝置與產(chǎn)生音樂聲波形的同時,對于共同音品通過使用不同波形發(fā)生器裝置能夠?qū)崿F(xiàn)音樂聲的變化。
由于音樂聲音產(chǎn)生條件的原因,即使按照性能信息主要波形發(fā)生器裝置應(yīng)該產(chǎn)生波形,還有可能應(yīng)該通過替代的波形發(fā)生器產(chǎn)生音樂聲波形。例如,上述替代可能發(fā)生在主要波形發(fā)生器裝置的聲發(fā)生容量幾乎達(dá)到其能力的最大值的時候。在本發(fā)明中附加了性能信息,考慮了音樂聲波形產(chǎn)生的數(shù)目用于測定哪一個波形發(fā)生器裝置應(yīng)該產(chǎn)生音樂聲,以便防止波形計算溢出。
順便說,第1和第2波形發(fā)生器裝置在波形產(chǎn)生功能上是相同的,因此用戶可以不用兩個都使用,而只用一個。例如,第1波形發(fā)生器是可拆卸的,而第2個波形發(fā)生器是永久安裝的。在本發(fā)明中,如果裝有第1波形發(fā)生器裝置,那么通過第1波形發(fā)生器裝置應(yīng)該產(chǎn)生相關(guān)于性能信息的音樂聲波形,因而選定第1波形發(fā)生器裝置產(chǎn)生相關(guān)于性能信息的音樂聲波形。否則,如果第1波形發(fā)生器裝置突然由裝置上卸去的話,那么第2波形發(fā)生器裝置可以選定為產(chǎn)生相關(guān)于性能信息的音樂聲波形。起始由第1波形發(fā)生器裝置產(chǎn)生的音樂聲波形可以改換由第2個波形發(fā)生器裝置產(chǎn)生。因此,既使第1波形發(fā)生器裝置不存在,還是安全地產(chǎn)生音樂聲波形。
在本發(fā)明中,第1和第2波形發(fā)生器裝置能分別計算音樂聲波形的樣值。測試裝置測量第2波形發(fā)生器裝置產(chǎn)生音樂聲波形所需的時間。按照測試裝置測量的時間,測定了取樣頻率。因此,對于該系統(tǒng)結(jié)構(gòu)在最佳取樣頻率下能產(chǎn)生音樂聲。一般來說,如果取樣頻率連續(xù)變化,那么處理頻率測定的安排變得復(fù)雜。然而,在本發(fā)明一種特定形式中,由預(yù)定步進(jìn)水平中選擇由測定裝置測定的取樣頻率。
如果由測定裝置測定的取樣頻率低于臨界水平的話,那么改變波形的計算處理,因?yàn)樵跍y定的取樣頻率下,通過起始波形產(chǎn)生不能保持產(chǎn)生聲的品質(zhì)。在此種情況中,最好改變計算處理,例如簡單讀出音樂聲波形的樣值以便提高取樣頻率。
圖1表示本發(fā)明音樂聲發(fā)生器第1個實(shí)施例的方塊略圖。
圖2表示圖1所示實(shí)施例一種改型的方塊略圖。
圖3表示圖1所示實(shí)施例另一種改型的方塊略圖。
圖4A表示聲源設(shè)備及其外部設(shè)備相互成一體安裝的方塊略圖。
圖4B表示DSP及其外部設(shè)備相互成一體安裝的方塊略圖。
圖5表示按照本發(fā)明在第1個實(shí)施例中的操作方式。
圖6是在第1個實(shí)施例中所提供的隨機(jī)存取存儲器(RAM)的存儲器映象。
圖7表示在第1個實(shí)施例中所執(zhí)行的全部程序流程圖。
圖8表示在第1個實(shí)施例中所執(zhí)行的波形合成程序的流程圖。
圖9表示在第1個實(shí)施例中所執(zhí)行的波形合成程序的流程圖。
圖10表示在第1個實(shí)施例中所執(zhí)行的波形合成程序的流程圖。
圖11表示在第1個實(shí)施例中所執(zhí)行的波形合成程序的流程圖。
圖12表示在波形合成程序中所執(zhí)行的波形樣值加載處理的流程圖。
圖13表示在波形合成程序中所執(zhí)行的波形樣值計算處理的流程圖。
圖14表示在波形合成程序中由CPU所執(zhí)行的波形樣值計算的流程圖。
圖15表示在波形合成程序中由所選擇的硬件進(jìn)行合成處理的流程圖。
圖16表示在波形合成程序中由所選擇的硬件進(jìn)行合成處理的流程圖。
圖17表示在波形合成程序中定時器處理的流程圖。
圖18表示在第2個實(shí)施例中由所選擇的硬件進(jìn)行合成處理的流程圖。
圖19表示在第3個實(shí)施例中由所選擇的硬件進(jìn)行合成處理的流程圖。
圖20表示在第4個實(shí)施例中由選擇的硬件進(jìn)行合成處理的流程圖。
圖21表示采用了本發(fā)明的一種改型的方塊略圖。
圖22表示采用了本發(fā)明的另一種改型的方塊略圖。
圖23表示本采用了發(fā)明的進(jìn)一步改型的方塊略圖。
圖24表示采用了本發(fā)明更進(jìn)一步改型的方塊略圖。
圖25表示本發(fā)明音樂聲音發(fā)生裝置另一個實(shí)施例的方塊略圖。
以下參照附圖將詳細(xì)描述本發(fā)明的實(shí)施例。圖1表示按照本發(fā)明一種音樂聲發(fā)生器的第1個實(shí)施例的方塊略圖。在圖1中標(biāo)號10表示一個CPU,其按照儲存在只讀存儲器(ROM)11的基本程序經(jīng)由數(shù)據(jù)總線12來控制構(gòu)成計算機(jī)系統(tǒng)的各個單元。標(biāo)號13表示暫時存儲各種寄存器、標(biāo)記和數(shù)據(jù)的RAM。標(biāo)號14表示接收和傳送MIDI信息,在鍵盤上鍵操作所提供的信息以及經(jīng)由各個接口I/F(未示出)的其它各種信息多種型式的輸入/輸出(I/O)端口。該多種型式I/O端口14接收以MIDI信息或鍵信息KBD形式的性能信息。在本實(shí)施例中,通過自動性能程序可以產(chǎn)生性能信息。在上述情況中,該自動性能程序意味著通過一定自動順序程序以時間次序產(chǎn)生性能信息。所以,圖1所示的設(shè)置不僅作為音樂聲發(fā)生器工作,而且也作為一個定序器工作。該型式的I/F接口可以是串聯(lián)或并聯(lián)端口,RS-232C,RS-422等等。尤其是在RS-232C的情況中,計算機(jī)系統(tǒng)通過用調(diào)制解調(diào)器的公共電話網(wǎng)絡(luò)與主鍵連通。因此,性能信息的輸入源,在提供鍵盤操作信息的情況中可以是鍵盤,或者在提供MIDI信息的情況中,可以是通過I/F連接的外部設(shè)備,或者在提供自動性能信息的情況中可以是由CPU所執(zhí)行的序列程序。標(biāo)號15表示包括FD(軟盤)或HD(硬盤)的儲存單元。儲存單元15還儲存應(yīng)用程序和數(shù)據(jù)。標(biāo)號16表示由CRT或LCD(液晶顯示)組成的顯示器。顯示器16在CPU10控制下顯示各種數(shù)據(jù)。標(biāo)號17表示代替CPU10執(zhí)行浮點(diǎn)計算的一個選定共處理器。由CPU10進(jìn)行剩余部分?jǐn)?shù)據(jù)處理。標(biāo)號18表示在以后描述的定時器處理中計算時間的一個定時器。標(biāo)號19表示不受CPU控制而直接傳送數(shù)據(jù)到和來自RAM20的一個DMAC(直接存儲器存取控制器)。盡管在本實(shí)施例中這些是分立器件,可是現(xiàn)在共處理器17、定時器18和DMAC19可與CPU10一起容納在一塊芯片內(nèi)。標(biāo)號20表示一個RAM,其具有類似于前述RAM的硬件結(jié)構(gòu)。然而,RAM13用作由CPU執(zhí)行程序的工作區(qū),而RAM20是一個波形存儲器,其暫時存儲由波形數(shù)據(jù)所表示的波形。標(biāo)號21表示用于音樂聲合成所需要的數(shù)字信號處理的一個DSP(數(shù)字信號處理器)。標(biāo)號22表示一個選定的聲源其構(gòu)成一塊LSI的第1波形產(chǎn)生器用于產(chǎn)生按照性能信息的音樂聲音波形。標(biāo)號23表示一個D/A轉(zhuǎn)換器,當(dāng)標(biāo)記DACENBL置于″1″時其啟動。在D/A轉(zhuǎn)換器23之前,通常提供一個FIFD數(shù)據(jù)緩沖器(未示出)。在取樣頻率fs下讀出儲存在FIFO的波形數(shù)據(jù)。在D/A轉(zhuǎn)換器23之后,通常提供一個LPF(低通濾波器)(未示出)。將一個LDF的截止頻率設(shè)置成取樣頻率fs的一半左右。該LDF是音樂聲音發(fā)生器的輸出器件。通過放大器和播音器再現(xiàn)了音樂聲音。標(biāo)號24表示一個RAM,其結(jié)構(gòu)類似于RAM13或20的硬件結(jié)構(gòu)。將RAM24用作DSP21的運(yùn)算操作工作存儲器。標(biāo)號25表示波形存儲器,在按照波形存儲器讀出方法聲源22發(fā)生一個音樂聲音的情況中,該存儲器存儲基本或典型音品的波形數(shù)據(jù)。波形存儲器25和RAM20的作用稍微有點(diǎn)不同,波形存儲器25主要是聲源22使用且以ROM或子插件形式提供,而RAM20由CPU10使用作為波形存儲器。
一般來說在以上的安排中,經(jīng)常按照用戶的選擇,選定安裝一些組件例如共處理器17、聲源22、RAM24和波形存儲器25。如果不安裝RAM24,那么將RAM13的一定區(qū)分配給DSP21。如果聲源22是一種調(diào)頻(FM)合成信件其由純計算波形數(shù)據(jù)產(chǎn)生一種音樂聲音的話,那么波形存儲器25可以不安裝。CPU10識別這些選定組件是否安裝。在本實(shí)施例中,CPU10按照下列方法之一識別選定組件。
(1)將端口地址保留用于相應(yīng)組件連接。在電源接通或系統(tǒng)復(fù)位之后,CPU10立即存取端口地址。如果CPU10探測一個來自端口地址的預(yù)定符號,那么它識別相應(yīng)組件的存在。
(2)提供一個跳動開關(guān)用于表明組件安裝。用戶接通開關(guān)當(dāng)時安裝相應(yīng)組件。
(3)如果以專用計算機(jī)實(shí)現(xiàn)該系統(tǒng)的話,那么將選定組件用相應(yīng)組件驅(qū)動器記錄在配置文件中,或批處理文件中。該系統(tǒng)軟件通過這些文件識別該組件。
在本實(shí)施例中,將所有這些選定的組件完全安裝并連接到數(shù)據(jù)總線12上。然而,連接端口不限于數(shù)據(jù)總線12。可以將選定組件經(jīng)由串聯(lián)/并聯(lián)接口連接,通過接口每一個組件實(shí)現(xiàn)了數(shù)據(jù)與CPU10相互傳送。換句話說,有可能將任何種類的接口提供給選定組件,而通過接口該組件能與CPU連接。例如,如圖2所示,實(shí)際上可以提供聲源22作為一個聲源卡41或一個處置卡。在上述情況中,把聲卡41插入主板或母板上的一個槽中。聲卡41通過總線12、I/F控制器26以及外置接口27與CPU10連通。在上述設(shè)置中,通過聲卡41上的插座,可以安裝波形存儲器25。此外,外置接口27可以提供另一個D/A轉(zhuǎn)換器28。另外,聲源22可以以分立LSI芯片的形式提供,或安裝在子板上。在上述設(shè)置中通過在主板上或擴(kuò)展槽上的插座,安裝該芯片或子插件。同樣地,可以以DSP插件42的形式提供DSP21。在上述情況中,該DSP21經(jīng)由擴(kuò)展接口27與CPU10連通。另外,DSP21可以以分立LSI塊類似于聲源22的形式提供。在圖1中輸入數(shù)據(jù)通過總線12傳送到D/A轉(zhuǎn)換器23上。然而,如果通過插座或擴(kuò)展接口安裝DSP21或聲源22的話,那么可以直接或通過擴(kuò)展接口分配數(shù)據(jù)。
如圖3所示,可以將由聲源22或DSP21組成的第1波形發(fā)生器或聲源系統(tǒng),連接到一個局部總線33上,通過該局部總線33將數(shù)據(jù)傳送到CPU系統(tǒng)30和從CPU系統(tǒng)30中傳出,而不使用數(shù)據(jù)總線12。由標(biāo)準(zhǔn)配置組成的CPU系統(tǒng)30包括CPU10,ROM11,和RAM13,同時外部設(shè)備31包括多種型式I/O端口14,存儲單元15以及其它接口和操作器。在本實(shí)施例中,聲源系統(tǒng)32專門由分立聲源22或DSP21組成。然而,一般來說,任何音樂聲音發(fā)生功能元件包括在聲源系統(tǒng)32中。聲源系統(tǒng)32可以與CPU系統(tǒng)30成一體或者分離。進(jìn)一步,要么在CPU這邊、要么在聲源器件那邊可以提供連接接口。也就是,按照本發(fā)明建立的系統(tǒng),可以使用任何連接接口。附加到局部總線上,可以使用任意種類的接口/協(xié)議聯(lián)合例如MIDI,RS-232C/422,IEEEP-1394,或SCSI。同時,通信網(wǎng)絡(luò)如公共電話網(wǎng)可用作數(shù)據(jù)通信媒體。
在圖4A所示的設(shè)置中,聲源器件22可以與波形存儲器和D/A變換器23一起整體地構(gòu)成在單一芯片中或印刷電路扳組件中。同樣,如圖4B所示,DSP21,RAM24和D/A變換器23可以整體地、一起構(gòu)成在單一半導(dǎo)體集成電路塊中。
圖1至3所示的設(shè)置僅僅是作為一個實(shí)例。而組件連接的形式取決于單個系統(tǒng)的建立。進(jìn)一步,圖1所示兩個或更多功能元件可以整體地構(gòu)成在單一芯片中。
按照本發(fā)明,上述構(gòu)造的音樂聲發(fā)生裝置,給出了一種按照性能信息發(fā)生音樂聲的波形。第1波形發(fā)生器例如聲源22或DSP21能操作產(chǎn)生一種波形。由CPU10組成的第2波形發(fā)生器,能獨(dú)立于第1波形發(fā)生器操作產(chǎn)生一種波形。I/O14提供性能信息。相應(yīng)于所提供的性能信息選定第1波形發(fā)生器和第2波形發(fā)生器中的一個。該裝置選擇地操作第1波形發(fā)生器和第2波形發(fā)生器中選定的一個,按照所提供性能的信息產(chǎn)生波形?;诋a(chǎn)生的波形,DAC23發(fā)生音樂聲音。第1波形發(fā)生器包括選定能連接到該裝置上的外部波形發(fā)生器,同時,第2波形發(fā)生器包括與CPU10一體的內(nèi)部波形發(fā)生器。有時,在外部波形發(fā)生器設(shè)有連接到該裝置時,即使外部波形發(fā)生器應(yīng)該主要地相應(yīng)于所提供的性能信息,還是指定內(nèi)部波形發(fā)生器代替外部波形發(fā)生器。與CPU10成一體的第2波形發(fā)生器構(gòu)成計算機(jī)組成的主要部分,而第1波形發(fā)生器單獨(dú)地構(gòu)成與主部分分離的輔助部件,并且其可選擇安裝在計算機(jī)上。第1波形發(fā)生器是由通過CPU10驅(qū)動的硬件組件組成,而第2波形發(fā)生器是由能安裝在計算機(jī)上的軟件組件組成。
以下將描述在本實(shí)施例中各種操作方式。如圖5所示,本發(fā)明音樂聲發(fā)生器操作方式可分類成兩個主組,其一涉及稱為合成方法,而另一個涉及將音品分配到不同波形發(fā)生器。將兩個主組分成更為具體的方式。首先,以下將說明稱為合成方法的方式。
在本實(shí)施例中,通過按照性能信息合成音樂聲音的波形或波形數(shù)據(jù),來實(shí)現(xiàn)發(fā)生聲音,并且將它轉(zhuǎn)換成模擬信號。能夠用各種方法產(chǎn)生波形數(shù)據(jù)。按照選定的合成方法操作方式,確定了所用的方法。在本實(shí)施例中,通過選擇采取由第2波形發(fā)生器的CPU合成方式和由第1波形發(fā)生器的聲源合成方式。
在CPU合成方式中,僅僅通過CPU10,或通過CPU10和共處理器17的聯(lián)合來合成音樂聲音。進(jìn)一步,能夠?qū)PU合成方式粗略地分成以下四個子方式。為了再現(xiàn)聲音通過D/A轉(zhuǎn)換器23將產(chǎn)生的波形轉(zhuǎn)換成模似信號。
調(diào)頻方式為了合成聲音,上述調(diào)頻方式使用一種調(diào)頻聲源的一個軟件模塊。通過使用CPU10在主正弦波上實(shí)時調(diào)頻調(diào)制,來產(chǎn)生波形數(shù)據(jù)。
諧波合成方式諧波合成方式是將基波及其諧波合成在一起。用CPU10實(shí)時操作,計算基波及其諧波來合成波形。
波形存儲讀出方式在此種方式中,通過在存儲器中存取波形來合成聲音。在進(jìn)行合成之前,CPU10將許多基本波形裝入RAM20。當(dāng)合成命令進(jìn)入時,CPU通過讀出波形產(chǎn)生一個指定音調(diào)和音量的選定音品的波形數(shù)據(jù)。在波形存儲讀出方式中,既使用一個低性能的CPU也能合成聲音,因?yàn)橥ㄟ^存取RAM或ROM來讀出波形數(shù)據(jù)從而實(shí)現(xiàn)合成聲音。所以,在此種方式中,CPU的工作負(fù)載小于FM方式和諧波合成方式中的工作負(fù)載。然而,應(yīng)該分配RAM波形數(shù)據(jù)區(qū),結(jié)果有時會引起RAM13或20的自由壓短缺。因此,在某些情況下,取決于全部RAM的容量和CPU地址卷,最好不使用波形存儲讀出方式。
物理模型合成方式在物理模型合成方式中,為了合成聲音通過電子模型模擬一個實(shí)際樂器聲音發(fā)生機(jī)制,例如在管樂器中空氣的流動。以包括CPU10的器件的實(shí)時操作計算了波形數(shù)據(jù)。在JP-A-63-40199中公開了物理模型合成的算法實(shí)例。
如上所述,借助軟件聲源或第2波形發(fā)生器的CPU包括許多能基于不同算法操作的數(shù)字波形發(fā)生器,經(jīng)運(yùn)算產(chǎn)生有不同品質(zhì)的數(shù)字波形。本發(fā)明裝置按照所提供的性能信息,選擇操作一種最佳的數(shù)字波形發(fā)生器。具體地講,第2波形發(fā)生器包括一種能基于相對簡單算法操作的波形存儲讀出型式的數(shù)字波形發(fā)生器,產(chǎn)生一種相對低品質(zhì)的數(shù)字波形,和另一種能基于相對復(fù)雜算法操作的數(shù)字波形發(fā)生器,產(chǎn)生另一種相對高品質(zhì)的數(shù)字波形。
另一方面,在硬件聲源合成方式中,使用一種具體的硬件如LSI聲源22合成音樂聲音。當(dāng)然,在此種方式中,硬件組件如LSI聲源22必須安裝在該系統(tǒng)中。用調(diào)頻方式或波形存儲讀出方式(類似于軟件聲源),LSI聲源22合成該波形數(shù)據(jù)。通過硬件本身確定合成方法。CPU10不控制聲源22本身合成處理。
在本實(shí)施例中,提供了多聲道。要么在CPU合成方式中,要么在聲源合成方式中,一個聲道分配給一種樂音。在多聲道中產(chǎn)生了多種音樂聲音從而實(shí)現(xiàn)多種聲音的同時發(fā)生聲音。由于在本實(shí)施例中通過CPU10和聲源器件22都能合成波形數(shù)據(jù),所以所利用的波形發(fā)生器的選擇是一個重要的問題。在本實(shí)施例中,當(dāng)接受一個音符-命令時,按照聲音分配,選定一種最佳的波形發(fā)生器。以下列出聲音分配方式CPU選擇方式在CPU選擇方式中,最優(yōu)先考慮是通過CPU合成方式完成波形合成。然而,如果包括CPU10在內(nèi)的計算器件的計算能力不夠的話,那么限制了能用于合成的聲道的數(shù)目。在這樣情況中,通過硬件聲源完成了超過包括CPU10在內(nèi)的計算器件能力的波形合成工作的部分。
聲源選擇方式在聲源選擇方式中,最優(yōu)先考慮的是通過硬件聲源完成波形合成。然而,如果硬件聲源器件22的能力不夠的話,那么限制了能用于合成聲道的數(shù)目。在這樣情況中,通過CPU軟件聲源完成了超過聲源器件22能力的波形合成工作的部分。
手動方式在手動方式中,用戶手動指定要么軟件,要么硬件聲源。進(jìn)一步,如果選定借助軟件聲源的CPU,那么就要選定一種具體的合成方式。
強(qiáng)迫方式在強(qiáng)迫方式中,按照除了無關(guān)于用戶意圖的聲音產(chǎn)生程序之外的應(yīng)用程序的運(yùn)行狀態(tài),強(qiáng)制確定所用的聲源。
以下將描述RAM13或20的存儲器映象。本發(fā)明音樂聲音發(fā)生器的安排是那么不同于一般個人計算機(jī)。進(jìn)一步,能用作音樂聲發(fā)生器的一般個人計算機(jī),提供執(zhí)行涉及波形合成的操作。因此,RAM13或20的內(nèi)容是那么不同于個人計算機(jī)。如圖6所示,將RAM13或20的存儲器空間分成許多區(qū)。在圖6中,一個OS區(qū),像一般個人計算機(jī)一樣由操作系統(tǒng)占據(jù)。應(yīng)用程序區(qū)(1)到(n)適應(yīng)除了波形合成程序以外的各種應(yīng)用程序。將這些區(qū)一個一個地分配給調(diào)用的應(yīng)用程序。把聲音數(shù)據(jù)和其它各種數(shù)據(jù)儲存在數(shù)據(jù)區(qū)中,而在通過波形存儲讀出方法實(shí)現(xiàn)了合成時,該波形數(shù)據(jù)裝入波形數(shù)據(jù)區(qū)″波形″中。最后,將選定的一種波形合成程序儲存在波形合成程序區(qū)。
以下將描述按照本發(fā)明音樂聲音發(fā)生器的操作。通過執(zhí)行個人計算機(jī)一個具體的應(yīng)用程序、即波形合成程序,產(chǎn)生音樂聲音。換句話說,以在引導(dǎo)系統(tǒng)的當(dāng)時,自動安裝過渡程序的形式作為OS的一種設(shè)備,可以實(shí)現(xiàn)波形合成程序。盡管存儲器地址和執(zhí)行波形合成許可程序,取決于OS環(huán)境的配置、用戶操作、應(yīng)用程序數(shù)目、工作條件等等,可是作為應(yīng)用程序(1)到(n)中的一個,執(zhí)行了波形合成程序。如圖7所示,在起始步驟S1中,當(dāng)電源接通或音樂聲音發(fā)生器復(fù)位時,各種寄存器和標(biāo)記設(shè)置/復(fù)位,在步驟S2中,執(zhí)行OS的系統(tǒng)管理處理。在步驟S3到S5中分別執(zhí)行了應(yīng)用程序(1)、波形合成程序,以及應(yīng)用程序(n)。在程序啟用的一個循環(huán)中,執(zhí)行波形合成程序產(chǎn)生一個波形數(shù)據(jù)的樣值。而應(yīng)用程序(1)到(n)不包括波形合成程序。這些應(yīng)用程序可涉及音樂性能,或涉及完全不同的事務(wù)。在步驟5以后,不返回到步驟2。
如果應(yīng)用程序的執(zhí)行狀況設(shè)有改變的話,那么由S2到S5的循環(huán)反復(fù)執(zhí)行。換句話說,如果應(yīng)用程序執(zhí)行狀況有改變,而在步驟2中系統(tǒng)管理處理時,探測到這樣的改變。如果狀況的改變是程序的終端,那么跳越相應(yīng)執(zhí)行應(yīng)用程序的步驟。如果狀況的改變是在程序啟用時,那么把執(zhí)行一個新的應(yīng)用程序的步驟加在循環(huán)中,并反復(fù)地執(zhí)行整個循環(huán)。因此,執(zhí)行循環(huán)的周期依賴于應(yīng)用程序的運(yùn)行狀況和系統(tǒng)負(fù)載變化。然而,無關(guān)于應(yīng)用程序的運(yùn)行狀況,每一個循環(huán)永遠(yuǎn)產(chǎn)生音樂聲音的一個樣值波形數(shù)據(jù)。通過重復(fù)循環(huán)連續(xù)地產(chǎn)生一系列樣值,以產(chǎn)生一個所希望的波形。因此,如果將產(chǎn)生的波形數(shù)據(jù)簡單地轉(zhuǎn)換成模擬信號的話,那么取樣周期發(fā)生變化,結(jié)果在再現(xiàn)音樂聲音時可以發(fā)生跳動。為了暫時存儲產(chǎn)生的聲音波形,在D/A轉(zhuǎn)換器23之前,裝有數(shù)據(jù)緩沖器。在固定的取樣頻率fs,該數(shù)據(jù)緩沖器存取讀出的波形數(shù)據(jù)。如果在該系統(tǒng)不是個人計算機(jī)而是單獨(dú)電子樂器、聲源組件、或任何其它具有產(chǎn)生聲音設(shè)備的系統(tǒng)的情況中、音樂聲音產(chǎn)生是通過固定程序進(jìn)行的話,那么能夠固定循環(huán)處理的執(zhí)行周期。換句話說,在一個固定間隔執(zhí)行該循環(huán)程序。在此種情況中,使循環(huán)間隔和取樣頻率fs的倒數(shù)相符是非常實(shí)用的,從而能夠消除數(shù)據(jù)緩沖器。
參照圖8到11,以下描述在步驟S4中所執(zhí)行的波形合成程序。按照預(yù)定操作,由存儲單元15進(jìn)行裝載之后,執(zhí)行該程序。在步驟Sa1中,檢驗(yàn)了合成模式和硬件建立。在硬件建立的檢驗(yàn)中,通過以下描述的檢驗(yàn)方法,識別選定器件。至于操作方式,合成方式和聲音分配方式也都檢驗(yàn)了。關(guān)于操作方式的建立,如果在調(diào)用波形合成程序之前,執(zhí)行其它應(yīng)用程序,聲音分配方式可以轉(zhuǎn)向強(qiáng)迫方式。換句話說,按照用戶選擇經(jīng)由顯示菜單輸入所希望的設(shè)置,可以建立合成方式和聲音分配方式。進(jìn)一步,如果在硬件檢驗(yàn)中識別了各種聲源器件,那么就有可能設(shè)置要么CPU選擇方式,要么聲源選擇方式。因此,在步驟Sa1中,在執(zhí)行波形合成程序之前,建立并識別操作方式。
在步驟Sa2中,執(zhí)行了波形裝入處理。在波形裝入處理中,在用于波形存儲讀出方式中的基本波形的情況中,將典型或基本波形裝入分配在RAM13或20中的波形區(qū)。在步驟Sa3中,檢驗(yàn)標(biāo)記SETFLG是否是″1″。該標(biāo)記SETFLG初始設(shè)置成″0″,但是如果在步驟Sa21中,建立取樣頻率fs的話,或者如果選定波形存儲讀出方式為后備波形計算方式的話,那么可以轉(zhuǎn)到"1"。如果標(biāo)記SETFLG是″1″的話,該過程進(jìn)到步驟Sa4。換句話說,如果標(biāo)記SETFLG是″0″,該過程跳到步驟Sa5。首先在圖7所示環(huán)路中。執(zhí)行波形合成程序的情況中,該標(biāo)記SETFLG是″0″,而過程無條件進(jìn)入到步驟Sa5。然而,為了描述方便起見,在此也描述步驟Sa4的程序。在步驟Sa4中,檢驗(yàn)是否完全通過CPU合成方式實(shí)現(xiàn)聲音合成。有可能使用在步驟Sa1中硬件檢驗(yàn)的結(jié)果,以檢測是否識別了任何外部聲源。如果對于波形合成,除了CPU之外使用任何聲源有可能性,那么Sa4步驟分支到″不″方向。在步驟Sa5中,檢驗(yàn)標(biāo)記ENBLFLG是否是″1″,以便檢測非操作狀態(tài)。非操狀態(tài)意味著取樣頻率fs既不建立在波形產(chǎn)生過程,也不能是后備波形計算方式。所以,在非操作狀態(tài)中,CPU合成方式還沒有準(zhǔn)備好。
首先在圖7所示的主循環(huán)中,在執(zhí)行波形合成程序時,標(biāo)記ENBLFLG是″0″,結(jié)果過程進(jìn)到步驟Sa11。然而,恰恰為了描述方便起見,在標(biāo)記ENBLFLG是″1″的情況中,在可操作狀況下在此描述了該程序。可操作狀態(tài)意味著對于CPU合成已經(jīng)完成所有的準(zhǔn)備。在此種狀況中,過程進(jìn)入步驟Sa6,在此進(jìn)行性能信息處理。在步驟Sa7中,檢驗(yàn)有否CPU波形產(chǎn)生命令。響應(yīng)包含在鍵盤信息KBD,MIDI信息或在CPU合成方式下由I/F所給出的性能信息的接通,產(chǎn)生CPU波形產(chǎn)生命令。在步驟Sa7中,如果檢測到CPU波形產(chǎn)生命令,那么在步驟Sa8中,執(zhí)行響應(yīng)命令的過程。在步驟Sa8的過程中,通過可用的CPU合成方式中選出的一個具體的合成方式,產(chǎn)生波形數(shù)據(jù)。然后,經(jīng)由總線12,將波形數(shù)據(jù)分給D/A轉(zhuǎn)換器23。因此,按照合成波數(shù)據(jù)或波形,實(shí)現(xiàn)聲音產(chǎn)生。
在更寬的限定中,CPU波形產(chǎn)生命令可以包括斷開命令音符休止,盡管在此省略了相應(yīng)于斷開過程的解釋。這些音符休止過程是非常簡單的處理,例如波形產(chǎn)生斷開和波形產(chǎn)生終止。在步驟Sa7中,如果沒有檢測到CPU波形產(chǎn)生命令的話,那么跳越了步驟8中波形合成計算,因?yàn)闆]有工作要執(zhí)行。在步驟Sa9中,檢查用戶是否要終止波形合成程序。如果沒有指明終止該程序,那么過程立即轉(zhuǎn)到準(zhǔn)備下一個CPU波形產(chǎn)生命令。另一方面,在輸入終止命令的情況中,在步驟Sa10中,通過設(shè)置標(biāo)記SETFLG到″0″終止波形合成程序。
如果首先在圖7主循環(huán)中,執(zhí)行了波形合成程序,那么標(biāo)記ENBLFLG是″0″。然后,在步驟Sa11中,檢查是否分配方式是CPU選擇方式和聲源選擇方式兩者之一。如果分配方式是手動方式或強(qiáng)迫方式,那么探測結(jié)果是″不″從而程序進(jìn)到步驟Sa12,在此標(biāo)記ENBLFLG,DACENBL和SETFLG全置于″1″。然后,該程序返回。標(biāo)記DACENBL置于″1″,啟動D/A轉(zhuǎn)換器23。因此,如果下一次執(zhí)行了波形合成程序并且使用了外部聲源,檢查步驟Sa3結(jié)果是″是″,檢查步驟Sa4結(jié)果是″不″,從而執(zhí)行表示在圖11的程序。換句話說,如果波形合成只由CPU完成的話,那么執(zhí)行步驟Sa6到Sa10。
另一方面,在步驟Sa11中,在檢查分配方式要么是CPU要么是聲源選擇方式時,該程序進(jìn)入步驟Sa13。如果首先調(diào)用了波形產(chǎn)生程序,即么可以進(jìn)行圖9和10所示步驟Sa13到Sa27中的程序。在上述程序中,對于只通過CPU合成確定了取樣頻率fs。在步驟Sa13中,標(biāo)記ENBLFLG開關(guān)到″0″,標(biāo)記BUSY置于″1″,以及標(biāo)記DACENBL置于″0″。標(biāo)記BUSY置于1,在以后所述定時器處理中,啟動計數(shù)。設(shè)置標(biāo)記DACENBL到″0″,以便禁止D/A轉(zhuǎn)換器23的輸出工作,在以后所述測試波形計算期間阻止聲音產(chǎn)生。在步驟Sa13之后,將寄存器SCOUNT和TCOUNT置于″0″。寄存器SCOUNT的存數(shù)表明跟隨測試波形計算的回路循環(huán)數(shù)。寄存器TCOUNT增加計數(shù),而標(biāo)記開關(guān)到″1″。因此,上述寄存器表明通過m次合成計算循環(huán)產(chǎn)生一個波形所需經(jīng)過的時間。在步驟Sa15中,通過執(zhí)行予定波形數(shù)據(jù)產(chǎn)生算法,對于一個取樣周期產(chǎn)生一個樣值。以下將描述在步驟15中詳細(xì)的過程。在步驟Sa16中,執(zhí)行樣值計算一次時,寄存器增加″1″。在步驟Sa17中,檢查是否寄存器SCO UNT達(dá)到循環(huán)″m″次,如果探測到不,那么過程返回到步驟Sa15。換句話說,檢查結(jié)果是是,過程進(jìn)到圖10中的步驟Sa18。因此,反復(fù)步驟Sa15和Sa16直到樣值計算環(huán)路循環(huán)達(dá)到″m″次。
在圖10的Sa18步驟中,標(biāo)記BUSY開關(guān)到″0″禁止定時器計數(shù)。然后、在步驟Sa19中,由下列公式(1)計算了頻率FS。
FS=(m·容限)/(TCOUNT·Tt)…(1)
在上述公式中,″容限″是設(shè)置小于值1的常數(shù),提供給包括具有一些容限的CPU在內(nèi)的計算器,作為該計算器的處理能力。如前所述,TCOUNT表明當(dāng)執(zhí)行樣值計算″m″次循環(huán)所需周期時定時啟用時間,而Tt表示定時器的間隔。因此,TCOUNT和Tt的乘積相應(yīng)于完成樣值計算處理產(chǎn)生一個波形所需的周期。
因此,由公式(1)計算的頻率FS是波形取樣的頻率,而常數(shù)″容限″表示硬件的處理能力。
在步驟Sa20中檢測計算的頻率FS是否大于32千赫。使用此臨界頻率″34千赫″是考慮到發(fā)生音樂聲的最低品質(zhì)。如果此檢測結(jié)果是肯定的,其意味著CPU處理能力對于保持聲音的最低品質(zhì)是足夠的,過程進(jìn)到步驟Sa21。在步驟Sa21中,選出小于和接近計算頻率FS的足夠的取樣頻率fs,32千赫,44.1千赫,48千赫和50千赫。如果計算頻率FS是47千赫的話,那么取樣頻率fs是置于44.1千赫,其是接近并小于47千赫,選擇小于計算頻率FS的值是因?yàn)槿绻O(shè)置取樣頻率超過CPU處理能力的話、那么常數(shù)容限就沒有意義。在步驟Sa21之后,在步驟Sa22中標(biāo)記DACENBL,ENBLFLG和SETFLAG全都置于″1″,而程序返回。上述標(biāo)記操作啟動D/A轉(zhuǎn)換器23從而輸出音樂聲音。進(jìn)一步,上述標(biāo)記操作表明建立了取樣頻率fs。因此,非工作狀況改變到可工作狀況。
在可工作狀況下,當(dāng)下一個執(zhí)行波形合成程序時,檢查步驟Sa4結(jié)果″不″從而通過表示在圖11的程序進(jìn)行合成,應(yīng)該通過外部聲源器件實(shí)現(xiàn)波形合成。換句話說,如果僅僅CPU用于波形合成的話,檢查步驟Sa4結(jié)果處在″是″而檢查步驟Sa5結(jié)果處在″不″,從而通過步驟Sa6到Sa8實(shí)現(xiàn)合成。
另一方面,在圖10中如果在步驟Sa20中檢驗(yàn)關(guān)于計算頻率FS的結(jié)果是″不″,其意味著不能保持聲音的最低品質(zhì),該過程進(jìn)到步驟Sa23。在步驟Sa23中,警告用戶不能達(dá)到聲音最低品質(zhì),而調(diào)用后備波形計算方式。后備波形計算方式是波形存儲讀出方式,當(dāng)聲音最低品質(zhì)用所選出的可用CPU合成方式的第1合成方式不能得到時,作在第2選擇,選擇了波形存儲讀出方式。在步驟Sa24中,檢驗(yàn)是否選定后備波形計算方式。如果是,該程序進(jìn)到步驟Sa25,在此通過第1計算方式產(chǎn)生了初始波形,進(jìn)而存儲在RAM13或20中。在取樣頻率32千赫,其自動確定的讀出儲存的波形時,實(shí)際上再現(xiàn)了聲音。因此,事實(shí)上用波形存儲讀出方式完成了波形合成,結(jié)果即使在系統(tǒng)中裝備低性能的CPU,可是還能得到最低品質(zhì)的再現(xiàn)聲音。此后,在步驟Sa22中執(zhí)行程序?qū)⒎枪ぷ鳡顟B(tài)開關(guān)到工作狀態(tài),該程序返回。另一方面,如果在步驟24中設(shè)有指定后備波形計算方式,那么程序進(jìn)到步驟Sa26,其中檢測到聲音合成程序的終止命令。如果命令聲音合成程序終止,操作完成,在步驟Sa27中清除標(biāo)記SETFLG到″0″。在計算頻率FS小于32千赫情況中,并且后備波形計算方式既設(shè)指定又設(shè)有命令程序終止,警告警報連續(xù)不斷。因此,用計算器如CPU10進(jìn)行波形合成。相對于CPU性能將取樣頻率最佳化。進(jìn)一步,如果CPU的性能是低下的,通過開關(guān)到波形存儲讀出方式執(zhí)行合成,其能減小CPU的負(fù)載。
小結(jié),借助第2波形發(fā)生器的CPU包括一個計算機(jī)化的波形發(fā)生器,其能按照給定的算法在可變工作速率下通過連續(xù)計算數(shù)字波形樣值,產(chǎn)生數(shù)字波形。規(guī)則地操作計算機(jī)化的波形發(fā)生器,實(shí)現(xiàn)了試用的模型數(shù)字波形并且測量了操作速率。在比較測量的操作速率中,最佳地確定了取樣頻率。實(shí)際上操作計算機(jī)化的波形發(fā)生器,允許按照所提供性能信息,在確定的取樣頻率下,同樣連續(xù)計算一個實(shí)際數(shù)字波形的樣值。將取樣頻率固定到一個步進(jìn)的予定水平,其低于和最接近測量的操作速率。當(dāng)確定取樣頻率下落低于一個臨界水平時,限定該臨界水平保證數(shù)字波形的最低品質(zhì),改變初始算法提高計算機(jī)化的波形發(fā)生器的操作速率,從而能夠重新確定取樣頻率超過該臨界水平。將算法由復(fù)雜的改變成簡單的,從而基于簡單的算法計算機(jī)化的波形發(fā)生器工作連續(xù)地讀出予先儲存的樣值以再現(xiàn)數(shù)字波形。通過復(fù)雜的算法可以初始計算樣值。然后,將樣值儲存在波形存儲器中以便在波形存儲讀出方式的簡單算法下實(shí)際使用。因此,本發(fā)明聲音發(fā)生裝置,按照性能信息給出數(shù)字波形以產(chǎn)生音樂聲音,其包括輸入裝置用于提供性能信息,計算機(jī)化的波形發(fā)生器裝置能基于給定的算法在可變操作速率下、通過連續(xù)計算數(shù)字波形樣值,產(chǎn)生數(shù)字波形,測試裝置用于規(guī)則地操作計算機(jī)化的波形發(fā)生器實(shí)現(xiàn)試用的模型數(shù)字波形,同時測量在此進(jìn)行試用模型的操作速率,測定裝置用于最佳地測定與測量操作速率可比較的取樣頻率,控制器裝置用于實(shí)際上操作計算機(jī)化的波形發(fā)生器,在測定取樣頻率下能夠同樣連續(xù)計算一個實(shí)際數(shù)字波形的樣值,以及輸出裝置用于產(chǎn)生音樂聲音,其是按照提供的性能信息基于實(shí)際的數(shù)字波形而產(chǎn)生音樂聲音的。
順便說,如果在圖8中在步驟Sa4,對于波形合成檢測到有可能使用硬件聲源的話,那么該過程分支到圖11中步驟Sa28。在步驟Sa28中,將標(biāo)記DACENBL開關(guān)到″1″啟動D/A轉(zhuǎn)換器23輸出聲音。在步驟29中,檢測到對于聲音合成程序的任何終止命令。如果命令了聲音合成程序終止的話,經(jīng)過步驟30在步驟31中,將標(biāo)記SETFLG清除到″0″、合成程序完成。另一方面,如果沒有命令終止聲音合成程序,在步驟Sa29檢測結(jié)果是否定的,那么在步驟32中檢查操作模型是否聲源合成模型。在步驟32中檢測到聲源合成模型時,在步驟33中檢測到對于指定方式所需的硬件,在步驟Sa1中用硬件檢查識別時選定上述方式。如果有相應(yīng)硬件、在步驟34中通過相應(yīng)硬件執(zhí)行合成過程。換句話說,在步驟Sa35中表示缺少相應(yīng)硬件,且如果相應(yīng)硬件不存在、那么使用當(dāng)前建立的硬件,繼續(xù)合成處理。在步驟Sa34和Sa35之后,過程返回。以后將描述,用選擇的硬件進(jìn)行合成處理。
參照圖12以下將描述在步驟Sa2(圖8)中所執(zhí)行的波形裝入程序。在波形裝入過程中,在步驟Sb1中,檢測通過多個I/O端口14是否接收到MIDI樣值轉(zhuǎn)儲命令。該MIDI樣值轉(zhuǎn)儲包含按照MIDI標(biāo)準(zhǔn)的波形數(shù)據(jù)、且用于波形存儲讀出方式。如果接收了MIDI樣值轉(zhuǎn)儲,處理了樣值接收過程,結(jié)果將接收的數(shù)據(jù)在步驟Sb2中傳送到RAM13或20的波形區(qū)。重復(fù)步驟Sb2樣值轉(zhuǎn)儲接收直到完成了所有的數(shù)據(jù)接收為止。在步驟Sb3中檢測到該完成。如果完成所有數(shù)據(jù)接收,那么在步驟Sb3中檢測結(jié)果″是″,且該過程返回。另一方面,如果步驟Sb1,檢查結(jié)果″不″、那么在步驟Sb4中檢查是否經(jīng)由接口I/F傳送波形數(shù)據(jù)。如果接收了波形數(shù)據(jù),那么像MIDI樣值轉(zhuǎn)儲情況中一樣,在步驟Sb2和Sb3中將接收的數(shù)據(jù)傳送到RAM13或20中的波形區(qū)。如果在步驟Sb1和Sb4中結(jié)果都是″不″,那么在步驟Sb5中檢測對于存儲單元15進(jìn)行存取讀出,即請求由存儲單元15中讀出某些數(shù)據(jù)。如果請求設(shè)有結(jié)果、那么波形裝入立即終止且過程返回,因?yàn)闆]有更多的工作要作。另一方面,當(dāng)存取發(fā)生,在步驟Sb6中檢查由存儲單元15中讀出數(shù)據(jù)。進(jìn)一步,在步驟Sb7中、檢驗(yàn)是否讀出數(shù)據(jù)是波形數(shù)據(jù)。如果讀出數(shù)據(jù)不是波形數(shù)據(jù)的話,波形裝入立即終止,且過程返回,因?yàn)闆]有更多的工作要作。換句話說,如果讀出波形數(shù)據(jù),那么將波形數(shù)據(jù)傳送到RAM13或20中的波形區(qū)。在步驟Sb8中,重復(fù)數(shù)據(jù)傳送直到在步驟Sb9中檢測到數(shù)據(jù)傳送結(jié)束。當(dāng)完成數(shù)據(jù)傳送時,步驟Sb9檢查結(jié)果″是"且過程返回。因此,在波形裝入中,在波形存儲讀出方式中接收和讀出所用的波形數(shù)據(jù)。然后,將波形數(shù)據(jù)傳送到RAM13或20中的波形區(qū)。為了合成實(shí)際波形按照簡單算法用波形存儲讀出方式,計算器如CPU10處理該波形數(shù)據(jù)。為了再現(xiàn)用聲源22裝入RAM13或20的波形數(shù)據(jù),所裝入的基波數(shù)據(jù)又可以傳送到裝在聲源22中的波形存儲器25中。在有具體硬件聲源常規(guī)音樂聲音發(fā)生器中,該硬件聲源必須具有暫時波形存儲器以接收裝入的波形數(shù)據(jù)。CPU必須執(zhí)行將波形數(shù)據(jù)由RAM傳送到波形存儲器。然而,在本實(shí)施例中,在CPU10的控制下,將基波數(shù)據(jù)裝入RAM13或20。所以在硬件中不需要提供暫時存儲器以保存波形數(shù)據(jù)。進(jìn)一步,不需要執(zhí)行重裝入程序,其中已裝入的波形數(shù)據(jù)進(jìn)一步傳送到外部硬件器件中。能夠減少系統(tǒng)硬件或軟件的費(fèi)用和縮短由波形數(shù)據(jù)裝入結(jié)束到聲音復(fù)制的時間。
參照圖13以下將解釋在步驟15中(圖9)所執(zhí)行的樣值計算操作。在圖13的步驟Sc1中,檢驗(yàn)了是否有共處理器17。在本實(shí)施例中,安裝了共處理器17。然而,在某些硬件建立時,此器件是選定的且可能缺少。如果CPU10適應(yīng)一個運(yùn)算操作單元相當(dāng)于共處理器17的話,那么檢測共-處理器是不須要的。關(guān)于該系統(tǒng)有可能恰像已安裝了共處理器一樣。如果檢測了共處理器17,在步驟Sc2中,用CPU10以及共-處理器17進(jìn)行樣值的計算。換句話說,在步驟Sc3中,僅用CPU10進(jìn)行了樣值計算,如果沒有共-處理器17的話。在步驟Sc2或Sc3之后,該過程返回。除了用或不用共-處理器17之外,在步驟Sc2和Sc3中樣值計算是相同的。因此,關(guān)于步驟Sc3將解釋詳細(xì)的樣值計算。
在圖14的步驟Sd1中,檢驗(yàn)在各種CPU合成方式中是否現(xiàn)行操作方式置于調(diào)頻方式。如果置于調(diào)頻(FM)方式,那么在步驟Sd2中,按照FM合成方法在一個取樣點(diǎn)計算了相應(yīng)于許多道的一組樣值。例如,如果選擇了多聲合成,那么計算了用于合成一個所希望的聲數(shù)所需要的一組多樣值。在此種情況中,CPU10的負(fù)載是高的,因?yàn)榛蛟S同向產(chǎn)生具有不同音調(diào)的不同聲音。既使失敗,其它處理如圖象處理可以同時去作。如果在步驟Sd1中,設(shè)有探測到FM方式,那么在步驟Sd3中,檢測是否現(xiàn)行操作方式是置于CPU合成方式之中的波形存儲讀出方式。如果在這里檢測到波形存儲讀出方式的話,那么從波形存儲器中讀出對于一個取樣點(diǎn)所需的一組樣值。在多聲合成中,讀出了用了合成所希望的聲數(shù)所須要的多個樣值。沒有用CPU10,而是用DMAC19進(jìn)行上述數(shù)據(jù)讀出和數(shù)據(jù)傳送。將該波形數(shù)據(jù)裝入RAM13或20中的波形區(qū),或者規(guī)則地儲存在ROM11中。如果在步驟Sd3中沒有檢測到波形存儲讀出方式,那么在步驟Sd5中,在各種CPU合成方式中檢測是否現(xiàn)行操作方式置于諧波合成方式。如檢測到諧波合成方式的話,那么在步驟Sd6中按照諧波合成方法用CPU10計算了用于一個取樣處理所需的一組樣值。在多聲方式中,用諧波合成方法計算了用于合成希望聲數(shù)所須許多樣值。在上述情況中,CPU10的負(fù)載是高的,因?yàn)榭梢酝虍a(chǎn)生具有各種音調(diào)的各種聲音。既使失敗,可以同時進(jìn)行其它處理,類似于FM方式的狀況。如果在步驟Sd5中沒有檢測到諧波合成方法,即么在步驟Sd7中、在許多CPU合成方式中,檢驗(yàn)是否現(xiàn)行操作方式置于物理模型合成方式上。如果探測到物理模型合成方式,那么在步驟Sd8中按照物理模型合成方法,通過CPU10計算了用于一個取樣點(diǎn)所須的樣值。在多聲方式中,用物理模型合成方法計算了用于合成希望聲數(shù)所須的許多樣值。如果在步驟Sd7中沒有檢測到物理模型合成方式,那么現(xiàn)行操作模型處于本實(shí)施例之外,從而在步驟Sd9中,執(zhí)行對錯誤設(shè)置方式警報以及其它處理。在步驟Sd2、Sd4、Sd6、Sd8或Sd9之后,程序返回,然后,執(zhí)行隨后的步驟Sa16(圖9)。
至于在步驟Sc2中所執(zhí)行的用CPU10和共-處理器17計算的波形樣值,在用CPU10和共-處理器17合作執(zhí)行了圖14中所示的程序從而使計算操作能更快的進(jìn)行。在此省略了關(guān)于操作的詳細(xì)解釋,因?yàn)樵撨^程基本上和只用CPU計算相同。
因此,在步驟Sa15中波形樣值計算時,通過CPU合成方式之一完成了合成聲品質(zhì)上最有影響的處理。在FM,諧波合成,或物理模型合成方式中,波形數(shù)據(jù)計算所須的時間,準(zhǔn)備同時復(fù)制的聲數(shù)是聲音合成的關(guān)鍵。為了審查處理能力實(shí)際上計算了每一個取樣點(diǎn)波形數(shù)據(jù)。在步驟Sa15到Sa17中重復(fù)進(jìn)行計算m次循環(huán),而在步驟Sa21中通過定時器工作設(shè)置適于CPu處理能力的取樣頻率fs,測量了m個樣值計算所須時間。類似地在波形存儲讀出方式中,波形數(shù)據(jù)讀出操作是聲音合成的關(guān)鍵,從而讀出每一樣點(diǎn)的波形數(shù)據(jù)以考查存取速率。在步驟Sa15到Sa17中,對m個樣值作了讀出處理,而在步驟Sa21中、通過定時器操作設(shè)置適合于CPU處理能力的取樣頻率fs、測量了m次樣值計算所須時間。
以下說明在上述Sa34(圖11)中所執(zhí)行的選擇硬件合成。上述合成過程是通過CPU單獨(dú)合成方式來合成所有聲道。按照分配方式,控制用于合成波形的聲源器件來執(zhí)行上述處理。在上述過程中首先在圖15步驟Se1中進(jìn)行事件檢測。該事件包括響應(yīng)鍵盤信息KBD或MIDI信息所發(fā)出的接通事件,而且包括其它事件,不僅CPU合成方式伴隨的而且聲源器件方式也伴隨的事件。在檢測接通事件時,該裝置開始合成程序。在步驟Sa2中檢驗(yàn)是否現(xiàn)行操作方式選定聲源合成方式。如果檢測結(jié)果是″不″,該過程分支到步驟Se11。否則,如果檢測結(jié)果是″是″,該程序向前進(jìn)入步驟Se30在步驟Se3中,檢驗(yàn)是否聲源器件現(xiàn)行合成操作狀況和相應(yīng)于該事件的性能信息遵守用聲源器件合成波形的″條件″。在本實(shí)施例中,一個條件是現(xiàn)行合成聲數(shù)(音品)是否在最大聲數(shù)范圍內(nèi),其通過在聲源合成方式中選定的硬件能夠同時合成。更具體地講,在步驟Se3中,現(xiàn)在處在有效狀況下并且分配用于聲源器件的聲道數(shù)目是小于或等于通過該器件能用于同時合成聲音的聲道總數(shù)。該″條件″可以包括以下列出的其它因素(1)由檢測事件選定的″音調(diào)″或″音質(zhì)″是否高于予定值。(2)由檢測事件選定的相當(dāng)于″音品″的值是否高于(或低于)一個予定值。(3)由檢測事件選定的相當(dāng)于性能信息中許多″要素″的值,是否高于(或低于)一個予定值。(4)相當(dāng)于檢測事件的一個檢測到的MIDI-CH值(聲道數(shù))是否高于(或低于)一個預(yù)定值。如上所示,對于″條件″的判定可以一般化為由性能信息選定的某一值是否高于(或低于)一個予定值。如果在FM方式或諧波合成方式中使用聲源器件合成選定的某些唯一的音品的話,有可能執(zhí)行一個特殊″條件″給出一個否定的結(jié)果。上述情況的實(shí)現(xiàn)以后將描述在另外的實(shí)施例中。如果滿足該″條件″,在步驟Se4中進(jìn)行道賦值處理,結(jié)果對于接通事件將合成一個聲音的聲道分配給聲源器件中,至今沒有用于合成聲音的空道。在步驟Se5中,使用選定的聲源硬件執(zhí)行聲音產(chǎn)生,其中對于給出的事件在分配的聲道中進(jìn)行了波形的實(shí)際合成。
如果在步驟Se3中該″條件″沒有滿足、那么在步驟Se6中檢驗(yàn)標(biāo)記ENBLFLG是否是″1″。在上述階段中,標(biāo)記ENBLFLG的值″1″表明已經(jīng)執(zhí)行了步驟Sa13到Sa25,并表明對于CPU合成方式已經(jīng)建立了取樣頻率fs。因此,CPU合成方式是可用的。所以,如果步驟Se6檢驗(yàn)結(jié)果是″是″,因?yàn)闃?biāo)記ENBLFLG值是″1″,在步驟Se7中執(zhí)行了CPU合成方式的聲音分配過程,結(jié)果通過CPU合成方式實(shí)現(xiàn)了相當(dāng)于由聲源器件不遵守合成條件的事件的波形合成。具體地講,發(fā)出了分配命令來計算相當(dāng)于在上述CPU合成分配過程中事件的波形樣值。該命令包括指定由CPU10所執(zhí)行的計算方式(CPU合成方式中任何方式),和指定音品,音調(diào)、音質(zhì)、音量和聲道賦值。進(jìn)一步,該命令包括音符命令如接通或斷開。當(dāng)分配命令有效時,在步驟Se10中,包括CPU10的計算器執(zhí)行波形合成計算處理,以便產(chǎn)生相當(dāng)于該事件的樣值。如果用中斷處理產(chǎn)生波形,該分配命令也包括關(guān)于中斷起始和終止的信息。另一方面,如果在步驟Se6中檢測到標(biāo)記ENBLGLG的″0″值,那么該CPU合成方式是不可用的。在上述情況中,在步驟Se8中進(jìn)行截斷處理切斷最早的聲道聲音再現(xiàn)操作,強(qiáng)迫構(gòu)成一個空道。上述截斷處理可以包括在步驟Se4中所執(zhí)行的分配處理。在步驟Se4中,將相關(guān)事件分配到通過強(qiáng)迫音符-斷開形成的空道中,且通過在步驟Se4中分配的聲道實(shí)現(xiàn)了相關(guān)事件的波形合成。如果將多聲源器件安裝到系統(tǒng)上,那么不同聲源器件的聲道可以分配來合成單個音品。
順便說,如果在步驟Se2中沒有檢測到聲源器件選擇方式或進(jìn)行方式,那么可能是CPU選擇進(jìn)行方式或手動方式、其中CPU合成方式與聲源合成方式一起設(shè)置。因此,該過程分支到圖16中的步驟Se11。在上述步驟Se11中,檢驗(yàn)CPU合成方式現(xiàn)形狀況和相關(guān)發(fā)出事件性能信息,是否遵守通過包括CPU的器件進(jìn)行合成的″條件″。各種因素可以設(shè)想為用CPU合成的″條件″,像用聲源器件(步驟Se3)合成的″條件″情況一樣。在上述實(shí)施例中,該條件是現(xiàn)行合成的許多聲音是否在能用CPU合成方式同時合成的最大數(shù)目的聲音范圍之內(nèi)。更具體地說,在步驟Se11中,檢驗(yàn)現(xiàn)行保持在音符接通狀況中和分配給包括CPU的計算器件的道數(shù)(CH)是否小于或等于用CPU合成方式同時合成波形所能使用的道數(shù)。如果滿足″條件″,那么在步驟Se12中檢驗(yàn)標(biāo)記ENBLFLG是否是″1″。如上所述,標(biāo)記ENBLFLG的值″1″在此表明用CPU合成方式波形合成準(zhǔn)備開始。所以,在步驟Se13中,通過包括CPU10器件為了波形合成執(zhí)行該分配過程,且該過程進(jìn)入步驟Se9。在步驟13中詳細(xì)的分配過程在此又沒說明,由于該過程實(shí)際上和在步驟Se7中相同。另一方面,如果在步驟Se11中不遵守用CPU合成波形的″條件″,或者在步驟12中包括CPU1O在內(nèi)的器件沒有準(zhǔn)備好,那么在步驟Se14中和在步驟Se4中一樣執(zhí)行分配過程,從而通過外部聲源器件做相關(guān)事件處理。在步驟Se15和在步驟Se5中一樣使用選定的硬件進(jìn)行合成。在執(zhí)行步驟Se13,步驟Se9和步驟Se10之后。在步驟Se9中檢測分配命令是否有,通過CPU來產(chǎn)生波形數(shù)據(jù)。如果沒有檢測到該命令,該程序立即返回。否則,在步驟Se10中,按照分配命令,通過CPU計算波形以產(chǎn)生聲音。
因此,在外部聲源選擇進(jìn)行方式中,在步驟Se5中通過聲源執(zhí)行遵守由硬件合成″條件″的合成處理,而在步驟Se10中,通過CPU執(zhí)行不遵守″條件″的合成處理。另一方面,如果選定的方式不是聲源進(jìn)行選擇方式,那么在步驟Se10中,通過軟件組件執(zhí)行遵守由CPU10合成″條件″的程序,而在步驟Se15中通過硬件聲源器件執(zhí)行不遵守由CPU10合成″條件″的合成程序。因此,在使用選擇硬件合成中,如果合成程序超過在聲源合成方式中選定的硬件處理本領(lǐng)的話,那么通過CPU合成方式執(zhí)行超過部分的程序,從而有可能合成許多聲音多于在硬件中能同時再現(xiàn)全部聲音數(shù)目,而設(shè)有增加硬件的設(shè)置。一般來說,當(dāng)輸入器件如I/O14提供有效的信息,命令同向產(chǎn)生許多音樂聲音,本發(fā)明裝置按照由性能信息選定的許多同向音樂聲音,選定第一波形發(fā)生器和第2波形發(fā)生器中的一個,結(jié)果所選定的一個具有容量足以產(chǎn)生相應(yīng)于音樂聲音數(shù)目的許多波形。當(dāng)同向音樂聲音的數(shù)目超過第1波形發(fā)生器和第2波形發(fā)生器中的任一個的容量時,把第1波形發(fā)生器和第2波形發(fā)生器兩個都選定,以保證完全產(chǎn)生同向音樂聲。
以下將描述定時器程序。定時器程序是當(dāng)以前所述測試波形合成程序期間、在一個預(yù)定間隔Tt所執(zhí)行的中斷處理。圖17是表示詳細(xì)的定時程序的流程圖。在步驟Sf1中,檢驗(yàn)如果標(biāo)記BUSY是″1″,其意味著啟始定時器計數(shù)。如果上述檢測結(jié)果是否定的,該過程跳到Sf3。否則,例行程序進(jìn)到步驟Sf2,如果檢測結(jié)果是肯定的,此處寄存器TCOUNT增加″1″。在步驟Sf3中執(zhí)行其它各種定時器處理、完成定時器例行程序。因此,如果標(biāo)記BUSY是″1″,那么定時期處理增加該寄存器TCOUNT″1″。只在步驟Sa9到Sa11的環(huán)路中,標(biāo)記BUSY開關(guān)到″1″,從而寄存器TCOUNT的內(nèi)容表明在計算或讀出一個波形所須時間內(nèi)啟用定時器處理循環(huán)。通過將TCOUNT乘以Tt得到經(jīng)過時間。
在圖1所示的配置中,將所有選定的組件如共處理器17,DSP21和外部聲源22全部安裝。因此,在上述配置中,關(guān)于合成方式和分配方式能指定所有的操作方式。首先優(yōu)先將操作方式置于聲源選擇方式,超過外部聲源處理能力的一部分處理分配給CPU,且CPU控制處理結(jié)果超過外部聲源器件的限制能夠產(chǎn)生音樂聲,并能產(chǎn)生各種音品。再說,在最優(yōu)先給定的CPU選擇方式中,也能產(chǎn)生各種音品。由于在步驟Sa21中將取樣頻率fs永遠(yuǎn)置于最佳值上,所以產(chǎn)生聲可以保持在高品質(zhì)。
在上述實(shí)施例中,如圖1所示將選定組件全部安裝。然而,個人計算機(jī)硬件的設(shè)置或電子樂器,隨著選定安裝的組件改變。音樂聲合成程序的可用操作方式隨著硬件設(shè)置而不同。以下將說明不同于圖1的在其它硬件配置中音樂聲合成程序的操作。
在圖21中所示硬件設(shè)置缺少包括共處理器17、DSP21和CSI聲源22在內(nèi)的所有選定組件。當(dāng)然,在上述配置中,聲源合成方式不可用,因?yàn)樵诓襟ESa4(圖8)中,檢測成為″是″,只有CPU合成方式能用。然而,如果CPU10的處理能力不是足夠高,那么實(shí)時波形數(shù)據(jù)計算是不可能,因?yàn)楣蔡幚砥?7和DSP21兩個都沒安裝。所以,可能有波形存儲讀出方式只能在CPU合成方式中得到的情況。
在圖22所示硬件設(shè)置只有共-處理器17作為選定組件。在上述配置中,沒有給出硬件聲源合成方式,因?yàn)樵诓襟ESa4中(圖8)檢測成為″是″。只可用CPU合成方式。然而,所有CPU合成方式是可能的,因?yàn)橛霉?處理器17,高速實(shí)時運(yùn)算操作是可能的。在上述設(shè)置中,通過CPU10和共-處理器17執(zhí)行實(shí)際波形計算(步驟Sa9),以及試用波形計算(步驟Sa15),因?yàn)楣?處理器17是可用的。
在圖23所示的硬件設(shè)置中包括共-處理器17和DSP21作為選定器件。設(shè)置DSP21的目的是保證波形的高速率計算。如果DSP21作為外部聲源對侍,在第2次啟用合成程序或此后用DSP,該聲源合成方式是可用的,因?yàn)樵诓襟ESa4中(圖8),檢測成為″不″。設(shè)置DSP21的目的是簡化數(shù)據(jù)計算,從而通過波形存儲讀出方法不產(chǎn)生波形數(shù)據(jù),但是通過各種純運(yùn)算方式如FM方式,諧波合成方式以及物理模型方式產(chǎn)生波形數(shù)據(jù)。再說,CPU合成方式是可用的,這取決于分配方式。波形數(shù)據(jù)計算是可能的,但是波形存儲讀出方式是不可用的,因?yàn)闄z測到DMAC19和RAM20。有可能只利用FM方式,諧波合成方式,以及物理換型合成方式,執(zhí)行實(shí)時高速波數(shù)據(jù)計算。在上述設(shè)置中,通過CPU10和共處理器17執(zhí)行實(shí)際波形計算(步驟Sa8),以及試用波形計算(步驟Sa15)。
在圖24所示硬件設(shè)置中,只包括LSI聲源22作為選定組件。在上述設(shè)置中,在第2次啟用合成程序或此后時,聲源合成方式是可用的,因?yàn)樵诓襟ESa4中(圖8)檢測成為″不″。再說,CPU合成方式是可用的,這決定于分配方式。然而,可能有不能利用波形存儲讀出方式的情況,因?yàn)槿鄙貲MAC19和RAM20。進(jìn)一步,如果CPU10的處理能力不夠高,實(shí)時波數(shù)據(jù)計算是不可能的,因?yàn)槿鄙俟?處理器17。所以,可能有所有CPU合成方式都不可用的情況。
以下將說明第2個實(shí)施例。一般來說,按照FM方式或諧波合成方法通過波數(shù)據(jù)計算,再現(xiàn)敲擊樂音如節(jié)奏或鼓樂的實(shí)際聲音是很困難的。因此,如果安裝了LSI聲源22并且通過除了波形存儲讀出方式外的純計算方法如FM方式,用此聲源22計算了音樂聲波數(shù)據(jù),那么通過LSI聲源22再現(xiàn)音樂聲是不夠的。再說,如果安裝了上述種類的LSI聲源22的話,不需要通過除了用CPU10的波形存儲讀出方式以外的運(yùn)算計算方式來計算波數(shù)據(jù)。進(jìn)一步,CPU10應(yīng)該執(zhí)行除了波形合成以外的工作,結(jié)果應(yīng)該盡可能多地減少執(zhí)行波形合成程序所須的系統(tǒng)負(fù)載,尤其是在CPU10的處理能力不高的情況中,更應(yīng)如此。因此,在上述情況中,CPU10用波形存儲讀出方式產(chǎn)生適合于LSI聲源22的敲擊波數(shù)據(jù)是方便的同時,LSI聲源22產(chǎn)生其它音品的波數(shù)據(jù)。因此,對于CPU10,能減少計算負(fù)載,而LSI聲源22不具有合成任何波數(shù)據(jù)的能力,對此,聲源22能力很差。再現(xiàn)聲的品質(zhì)能保持盡可能的高。第2實(shí)施例的目的正是針對此點(diǎn)。第2個實(shí)施例假定如圖1或24中所示安裝了聲源22。關(guān)于波形合成程序,用表示在圖18中的處理代替使用選擇硬件(圖15和16)進(jìn)行合成處理。更具體地講,用在圖18所示的處理代替了在步驟Sa34中(圖11)用選擇的硬件進(jìn)行合成處理。以下將說明代替的處理,同時為了避免繁雜的描述,省略了其它處理的解釋。
在第2個實(shí)施例中,在進(jìn)到步驟Sa34時,該程序進(jìn)行到執(zhí)行合成處理,使用如圖18所示的選定硬件。在步驟Sg1中,像在步驟Se1一樣,進(jìn)行事件檢測。在步驟Sg2中,執(zhí)行對于聲音分配的系統(tǒng)檢查。更具體地講,對于CPU和LSI聲源的每個聲音(音品)確定操縱合成的器件。以下將描述對于上述分配的判定。一般來說,聲源具有唯一配置的可用音品,從而通過唯一的音品編碼能夠選定一個單個音品。因此,有可能予先實(shí)現(xiàn)一個包含敲擊樂音的音品編碼目錄表,以便在表中發(fā)現(xiàn)對于相關(guān)事件檢測到的音品編碼的情況中,由CPU10處理的樂音,和由LSI聲源22處理的其它樂音之間進(jìn)行識別。然而,在本實(shí)施例中,分配判定不限于音品編碼。有可能設(shè)置手動方式下的音品處理裝置,某些音品由CPU處理,而另外的音品由聲源處理。也能分配每一個樂音,這依賴于能用于同時合成的道數(shù)。再說,在強(qiáng)迫方式下,通過具它運(yùn)行程序可強(qiáng)迫分配每一個樂音。
對于LSI聲源分配的樂音,在步驟Sg3中像在步驟Se4中(圖15)一樣,通過聲音分配處理產(chǎn)生空聲道。在步驟Sg4中,通過空聲道合成了相關(guān)于接通事件的波形。對于上述操作,進(jìn)行合成的方法不限于FM方式,諧波合成方式,或物理模型方式,但是有可能使用,例如,PCM方式由波形存儲器25中讀出波數(shù)據(jù),這取決于所安裝的聲源22的特征。另一方面,在步驟Sg5中像在步驟Se7中一樣(圖15),對于分配到CPU的音品,為了產(chǎn)生一個分配命令,完成了CPU合成分配過程以產(chǎn)生相關(guān)于檢測事件的波數(shù)據(jù)。如果分配命令可用,在步驟S6中檢測結(jié)果″是″,而在步驟7中執(zhí)行合成計算產(chǎn)生一個相關(guān)于分配命令的波形。如前所述,為了減少CPU的負(fù)載、通過波形存儲讀出方式完成波形合成。另一方面,當(dāng)分配命令不可用時,在步驟S6中檢測結(jié)果″不″,該過程返回。
在上述第2實(shí)施例中,音樂聲按照它們的音品能夠有選擇地分配到CPU和聲源,從而,對于CPU和聲源處理負(fù)載的最佳分布有可能得到,并能夠產(chǎn)生各種音品同時保持復(fù)制聲的品質(zhì)。概括地說,輸入器件提供性能信息,其包括音品信息有效地選定音樂聲的音品,和定時信息有效地選定產(chǎn)生音樂聲的定時。相應(yīng)音品信息選定第1波形發(fā)生器和第2波形發(fā)生器中的一個結(jié)果輸出器件在選定定時產(chǎn)生具有選定音品的音樂聲。
在第1和第2實(shí)施例中,在CPU提供的聲道中或在聲源提供的另一個聲道中,對一個樂音執(zhí)行了合成處理。然而,通過CPU和聲源,對一個樂音能執(zhí)行合成處理。在上述安排中,在CPU中有可能使用諧波合成方式,而在聲源中有可能使用除了諧波合成之外的一種方式,例如,F(xiàn)M方式,從而能夠產(chǎn)生變化的樂音,因?yàn)橥ㄟ^不同計算方式合成同一個樂音。第3個實(shí)施例的目的瞄準(zhǔn)的正是此點(diǎn)。在第3個實(shí)施例中,如圖1和24所示在系統(tǒng)中安裝了LSI聲源。關(guān)于波形合成程序,用圖19中所示的處理代替使用選定硬件的合成處理(圖15和16)。更具體地講,用表示在圖19中的處理代替在步驟Sa34中使用選定的硬件的合成處理。以下將說明代替的處理,而省略其它處理的解釋以便避免繁雜的描述。
在上述實(shí)施例中,進(jìn)到步驟Sa34時,該合成程序進(jìn)行到,如圖19所示使用選定硬件執(zhí)行合成處理。在步驟Sh1中,像在步驟Se1和Sg1中一樣進(jìn)行事件檢測。在步驟Sh2中,對于聲音分配執(zhí)行系統(tǒng)檢測。更具體地講,對于CPU和LSI聲源之外的每一個聲音(樂音)確定處理合成器件。像在第2個實(shí)施例中一樣,對于上述分配的判定可以是音品編碼,對于同時進(jìn)行合成可用聲道的數(shù)目,或者用手動或強(qiáng)迫方式結(jié)構(gòu)的設(shè)置。在步驟Sh3像在步驟Se4中一樣(圖15),對于分配到LSI聲源的樂音,通過聲音分配處理產(chǎn)生了空聲道。在步驟Sh4中,通過空聲道合成了相關(guān)于音符接通事件的波形。對于上述操作的合成方法不限于FM方式或諧波合成方法,但是有可能使用,例如,物理模型方式和PCM方式,從波形存儲器25中讀出波數(shù)據(jù),這取決于所安裝的聲源22的特征。另一方面,對于分配到CPU的樂音,在步驟5中像在步驟Se7中一樣(圖15),為了產(chǎn)生相關(guān)于檢測音符-接通事件的一個分配命令,進(jìn)行了CPU合成分配過程。在分配命令中包括關(guān)于計算方法的信息。在步驟Sh3和步驟Sh4中,通過LSI聲源處理了分配到CPU和聲源的聲音,同時在步驟Sh5中通過CPU處理了同樣聲音。這些處理同時執(zhí)行。如果分配命令是可用的,在步驟Sh6中檢測結(jié)果″是″,并且執(zhí)行在步驟Sh7中的合成計算以產(chǎn)生相關(guān)于分配命令的波形。和第2個實(shí)施例不同,通過各種方式包括FM、諧波合成,物理模型等等進(jìn)行了合成計算。另一方面,如果分配命令不可用,在步驟Sh6中檢測結(jié)果″不″,該過程返回。
在第3個實(shí)施例中,將一個聲音(樂音)分配到CPU和LSI聲源,從而對于實(shí)際上相同的樂音能夠復(fù)制不同波數(shù)據(jù)。由于上述特征,第3個實(shí)施例也能使系統(tǒng)的樂音變化。概括地說,將第1波形發(fā)生器和第2波形發(fā)生器都選定,結(jié)果控制器既操作第1波形發(fā)生器又操作第2波形發(fā)生器,對于單個音品以并行方式同向產(chǎn)生波形。
以下將說明第4實(shí)施例。盡管聲音分配方式引入上述實(shí)施例中,然而更簡單的實(shí)現(xiàn)是可能的。能分配到某個聲源器件的事件,在安裝在系統(tǒng)中的器件提供的事件檢測時,簡單地分配到相關(guān)器件上。在上述第4個實(shí)施例中,提供了非常好的實(shí)現(xiàn)。第4個實(shí)施例表明如圖1或24所示安裝聲源22,像在第2和第3個實(shí)施例中一樣。關(guān)于波形合成程序,用表示在圖20中的處理代替使用選定硬件的合成處理。更具體地講,用表示在圖20中的處理代替在步驟Sa34中(圖11)使用選定硬件的合成處理。以下將說明代替處理,同時省略了其它處理的解釋,以避免的描述。
在上述實(shí)施例中,進(jìn)行到步驟Sa34時,如圖20所示,該合成程序進(jìn)行到使用選定硬件,執(zhí)行合成處理。首先,通過沒有圖示的處理,進(jìn)行事件的檢測。在步驟Si1中,執(zhí)行聲音分配在LSI聲源中產(chǎn)生一個空聲道。在步驟Si2中,使用空聲道實(shí)際上合成了相關(guān)于檢測事件的波形。對于上述操作的合成方法不限于FM方式或諧波合成方式,而且有可能使用,例如,物理模型方式和PCM方式,由波形存儲器25中讀出波數(shù)據(jù),這取決于安裝聲源22的特征。在合成之后,過程返回。所以,在第4個實(shí)施例中,能分配到某個聲源器件的事件,在將上述器件安裝在系統(tǒng)中所提供的事件檢測時,簡單地分配到上述器件中。
圖25表示本發(fā)明音樂聲發(fā)生裝置的另一個實(shí)施例。此實(shí)施例基本具有和表示在圖1中的第1實(shí)施例相同的結(jié)構(gòu)。與第1實(shí)施例相同的器件用同樣的標(biāo)號表示,以使本實(shí)施例容易明白。儲存單元15能夠儲存包括波形數(shù)據(jù)的各種數(shù)據(jù),和包括系統(tǒng)控制程序或基本程序,波形合成程序和其它應(yīng)用程序的各種程序。通常,ROM11予先儲存這些程序。然而,如果沒有儲存,那么在儲存單元15中,可以將任何程序裝入硬盤或其它處。將裝入的程序傳送到RAM13、啟動CPU10來操作本發(fā)明音樂聲發(fā)生裝置系統(tǒng)。照此方式,新的或改型程序能夠很容易地裝在系統(tǒng)中。為此目的,一種可讀介質(zhì)機(jī)器例如CD-ROM(小型盤只讀存儲器)51用于安裝程序。將CD-ROM51并入CD-ROM驅(qū)動器52來讀出和通過總線12將來自CD-ROM51的程序向下裝入儲存單元15中。機(jī)器可讀媒體除了CD-ROM51之外,可以由磁盤或光盤組成。
將通信接口53通過通信網(wǎng)絡(luò)55例如LAN(地方區(qū)域網(wǎng)),公共電話網(wǎng)和INTERNET,連接到外部服務(wù)員計算機(jī)54。如果儲存單元15不保留須要的數(shù)據(jù)或程序,那么通信接口53啟動以接收來自服務(wù)員計算機(jī)54的數(shù)據(jù)或程序。CPU10通過接口53和網(wǎng)絡(luò)55將一個請求傳送到服務(wù)員計算機(jī)54上。響應(yīng)該請求服務(wù)員計算機(jī)54將請求的數(shù)據(jù)或程序傳送到該裝置上。將傳送的數(shù)據(jù)或程序儲存在該儲存單元15的硬盤中,由此完成向下裝入。
通過裝有需要的數(shù)據(jù)和程序的個人計算機(jī),能夠?qū)崿F(xiàn)本發(fā)明音樂聲發(fā)生裝置。在此種情況中,用機(jī)器可讀媒體例如CD-ROM51或軟盤將數(shù)據(jù)和程序提供給用戶。該機(jī)器可讀媒體包含指令用于使個人計算機(jī)執(zhí)行結(jié)合以前實(shí)施例所描述的本發(fā)明音樂聲發(fā)生方法。換句話說,個人計算機(jī),通過通信網(wǎng)絡(luò)55可以接收數(shù)據(jù)和程序。
在上述實(shí)施例中,作為實(shí)例選定器件包括共處理器17,DSP21、聲源22,然而選定器件不限于這些器件。能夠?qū)⒈景l(fā)明用于應(yīng)用系統(tǒng),例如,個人計算機(jī)、電子樂器、游戲機(jī)等等其中產(chǎn)生音樂聲。
如前所述,按照本發(fā)明能得到各種有益的效果。有可能產(chǎn)生各種音樂聲并減少產(chǎn)生音樂聲所須的處理負(fù)載。對于該裝置的結(jié)構(gòu)、在最佳取樣頻率下能產(chǎn)生音樂聲。能夠顯著減化用于產(chǎn)生音樂聲波數(shù)據(jù)的結(jié)構(gòu)。即使在低性能硬件中,也能夠保持產(chǎn)生音樂聲的品質(zhì)。即使性能信息卷變得很大,按照性能信息也能產(chǎn)生音樂聲。
權(quán)利要求
1.一種具有根據(jù)演奏信息產(chǎn)生樂音的中央處理器的樂器,其特征在于,它包括一個演奏信息接收裝置;一個波形發(fā)生器,由一個軟件程序構(gòu)成,所述軟件程序可由所述中央處理器根據(jù)自身的計算能力以可變的操作方式執(zhí)行,從而產(chǎn)生數(shù)字波形;一個操作方式改變裝置,供根據(jù)現(xiàn)有控制波形發(fā)生器工作過程的計算能力改變波形發(fā)生器的可變的操作方式;中央處理器按變化的可變操作方式控制波形發(fā)生器的工作過程,從而根據(jù)所收到的演奏信息產(chǎn)生數(shù)字波形;和一個樂音發(fā)生裝置,供根據(jù)產(chǎn)生的數(shù)字波形產(chǎn)生樂音。
2.如權(quán)利要求1所述的樂器,其特征在于,波形發(fā)生器通過依次計算數(shù)字波形的抽樣值可以在操作速度可變以產(chǎn)生數(shù)字波形的可變操作方式下工作,且臨時操縱得使其試產(chǎn)生典型數(shù)字波形同時測定中央處理器在進(jìn)行所述試產(chǎn)生時的操作速度方面的計算能力,其中所述改變裝置有一個可變操作方式確定裝置,供確定在與所測定的操作速度相當(dāng)?shù)某闃宇l率方面的可變操作方式,且其中中央處理器實(shí)際控制波形發(fā)生器的操作過程,使其可依計算數(shù)字波形在特定抽樣頻率下的抽樣值。
3.如權(quán)利要求1所述的樂器,其特征在于,它還具有一個計算能力檢測裝置,供通過檢測另一處理器是否可協(xié)助中央處理器執(zhí)行軟件程序來檢測現(xiàn)行控制波形發(fā)生器工作過程的計算能力。
4.如權(quán)利要求3所述的樂器,其特征在于,所述另一處理器由中央處理器的協(xié)處理器組成。
5.如權(quán)利要求1所述的樂器,其特征在于,它還具有一個計算能力檢測裝置,供通過在處理器執(zhí)行軟件程序使波形發(fā)生器工作之前,臨時測定中央處理器的計算能力來檢測控制波形發(fā)生器工作過程的計算能力。
6.如權(quán)利要求1所述的樂器,其特征在于,所述改變裝置有一個改變可變操作方式的裝置,從而使確定產(chǎn)生數(shù)字波形方法的算法在中央處理器的計算能力下降時變?yōu)楸鹊谝凰惴ǜ唵蔚牡诙惴ā?br>
7.如權(quán)利要求1所述的樂器,其特征在于,所述改變裝置有一個根據(jù)中央處理器在可變抽樣頻率方面的計算能力改變可變操作方式的裝置,波形發(fā)生器即用所述可變抽樣頻率變化地產(chǎn)生數(shù)字波形樣本的。
8.如權(quán)利要求1所述的樂器,其特征在于,所述改變裝置有一個改變可變操作方式的裝置,從而根據(jù)中央處理器的計算能力改變中央處理器產(chǎn)生數(shù)字波形所進(jìn)行的一套計算步驟。
9.一種根據(jù)演奏信息由中央處理器產(chǎn)生樂音的方法,其特征在于,它包括下列步驟接收演奏信息;配備一種由一軟件程序組成的波形發(fā)生器,所述軟件程序可由中央處理器根據(jù)其計算能力在可變操作方式下執(zhí)行,以產(chǎn)生數(shù)字波形;根據(jù)控制波形發(fā)生器操作過程的計算能力改變波形發(fā)生器的可變操作方式;在改變后的可變操作方式下控制波形發(fā)生器的操作過程以根據(jù)所收到的演奏信息產(chǎn)生數(shù)字波形;和根據(jù)產(chǎn)生的數(shù)字波形產(chǎn)生樂音。
10.樂器中使用的一種機(jī)器可讀的媒體,所述樂器有一個中央處理器,供概括演奏信息產(chǎn)生樂音,所述媒體含有中央處理器可執(zhí)行的用以促使樂器執(zhí)行一種包括下列步驟的方法的一些指令;接收演奏信息;配備一種由一軟件程序組成的波形發(fā)生器,所述軟件程序可由中央處理器根據(jù)其計算能力在可變操作方式下執(zhí)行,以產(chǎn)生數(shù)字波形;根據(jù)控制波形發(fā)生器操作過程的計算能力改變波形發(fā)生器的可變操作方式;按改變后的可變操作方式控制波形發(fā)生器的操作的過程以根據(jù)所收到的演奏信息產(chǎn)生數(shù)字波形;和根據(jù)產(chǎn)生的數(shù)字波形產(chǎn)生樂音。
全文摘要
一種音樂聲發(fā)生裝置,按照性能信息產(chǎn)生一個波形以發(fā)生音樂聲。在該裝置中,第1波形發(fā)生器能操作產(chǎn)生一個波形。第2波形發(fā)生器能獨(dú)立于第1波形發(fā)生并操作產(chǎn)生一個波形,一個輸入器件提供性能信息。一個選定組件,選定第1波形發(fā)生器和第2波形發(fā)生器中的至少一個響應(yīng)所提供的性能信息。一個控制器按照所提供的性能信息選擇地操作,第1波形發(fā)生器和第2波形發(fā)生器中所選定的一個。一個輸出器件,基于產(chǎn)生的波形發(fā)生音樂聲。
文檔編號G10H7/00GK1241767SQ99108968
公開日2000年1月19日 申請日期1999年6月30日 優(yōu)先權(quán)日1995年6月6日
發(fā)明者山田秀夫, 平野正志, 和智正忠 申請人:雅馬哈株式會社