專利名稱:用于在完美重奏中再現(xiàn)音樂(lè)的多個(gè)部分的音頻系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種音頻系統(tǒng),本發(fā)明尤其涉及一種用于重奏的音頻記錄/重放系統(tǒng)。
背景技術(shù):
激光唱片對(duì)于音樂(lè)愛(ài)好者來(lái)說(shuō)已經(jīng)普及了。樂(lè)曲記錄在激光唱片中,通過(guò)激光唱片播放器再現(xiàn)。音樂(lè)家演奏樂(lè)曲時(shí),把音調(diào)轉(zhuǎn)換為模擬音頻信號(hào),從模擬音頻信號(hào)采樣不連續(xù)的值。把不連續(xù)的值轉(zhuǎn)換為二進(jìn)制值,二進(jìn)制的值以數(shù)碼的形式與控制數(shù)據(jù)碼一起存儲(chǔ)在激光唱片中,控制數(shù)據(jù)碼表示從開(kāi)始演奏起經(jīng)歷的時(shí)間。在下文的描述中,把表示不連續(xù)值的數(shù)碼和表示經(jīng)歷時(shí)間的控制數(shù)據(jù)碼分別稱為“音頻數(shù)據(jù)碼”和“時(shí)間數(shù)據(jù)碼”,術(shù)語(yǔ)“音頻音樂(lè)數(shù)據(jù)碼”代表音頻數(shù)據(jù)碼和時(shí)間數(shù)據(jù)碼。把多組音頻數(shù)據(jù)碼存儲(chǔ)在其它種類的信息存儲(chǔ)媒體中,諸如光盤和磁盤中。
對(duì)音樂(lè)愛(ài)好者普及的另一種數(shù)字?jǐn)?shù)據(jù)碼是MIDI(樂(lè)器數(shù)字接口)音樂(lè)數(shù)據(jù)碼?;贛IDI標(biāo)準(zhǔn)把MIDI音樂(lè)數(shù)據(jù)碼格式化,事件碼和持續(xù)時(shí)間碼是MIDI音樂(lè)數(shù)據(jù)碼的典型實(shí)例。事件碼主要表示音符事件,即,音符開(kāi)事件和音符關(guān)事件。在音符開(kāi)事件中產(chǎn)生音調(diào),在音符關(guān)事件中衰減音調(diào)。其它事件碼表示其它種類的事件,諸如結(jié)束要給予音調(diào)的性能和效果。持續(xù)時(shí)間數(shù)據(jù)碼代表音符事件之間的時(shí)間間隔。這樣,根據(jù)與時(shí)間數(shù)據(jù)碼不同的定義產(chǎn)生持續(xù)時(shí)間數(shù)據(jù)碼。一組MIDI音樂(lè)數(shù)據(jù)碼表示一首樂(lè)曲,通過(guò)MIDI樂(lè)器再現(xiàn)一首樂(lè)曲。
激光唱片播放器是在市場(chǎng)上銷售的,從存儲(chǔ)在激光唱片中的音頻音樂(lè)數(shù)據(jù)碼再現(xiàn)多首樂(lè)曲。類似地,在市場(chǎng)上銷售多種樂(lè)器,通過(guò)這些樂(lè)器從存儲(chǔ)在軟盤中的MIDI音樂(lè)數(shù)據(jù)碼再現(xiàn)多首樂(lè)曲。然而,激光唱片播放器不能再現(xiàn)MIDI音樂(lè)數(shù)據(jù)碼表示的多首樂(lè)曲,用戶不能在重放多首樂(lè)曲時(shí)使用存儲(chǔ)有MIDI音樂(lè)數(shù)據(jù)碼的軟盤。這種情況下,即使一首樂(lè)曲的一部分以音頻音樂(lè)數(shù)據(jù)碼的形式存儲(chǔ)在激光唱片中,該樂(lè)曲的另一部分以MIDI音樂(lè)數(shù)據(jù)碼的形式記錄在軟盤中,也難以通過(guò)激光唱片播放器和MIDI樂(lè)器在重奏中再現(xiàn)該樂(lè)曲的多個(gè)部分。
一個(gè)問(wèn)題就是如何同時(shí)處理激光唱片數(shù)據(jù)碼和MIDI音樂(lè)數(shù)據(jù)碼。如上所述,時(shí)間數(shù)據(jù)碼表示從演奏開(kāi)始起經(jīng)歷的時(shí)間。另一方面,每個(gè)持續(xù)時(shí)間數(shù)據(jù)碼表示音符事件之間的時(shí)間間隔。在樂(lè)曲的一部分和另一部分之間不同地控制產(chǎn)生音調(diào)的時(shí)間。如果用戶希望在重奏中再現(xiàn)該樂(lè)曲,就把時(shí)間數(shù)據(jù)碼或持續(xù)時(shí)間數(shù)據(jù)碼轉(zhuǎn)換為持續(xù)時(shí)間數(shù)據(jù)碼或時(shí)間數(shù)據(jù)碼。然而,目前市場(chǎng)上銷售的激光唱片播放器既沒(méi)有任何把時(shí)間數(shù)據(jù)碼輸出到外部的信號(hào)輸出端口,也沒(méi)有用于接收持續(xù)時(shí)間數(shù)據(jù)碼的信號(hào)輸入端口。此外,激光唱片播放器和MIDI樂(lè)器沒(méi)有任何軟件用來(lái)控制基于其它種類時(shí)間數(shù)據(jù)的記錄和重放。
這些情況下,不可能在重奏中通過(guò)MDIDI樂(lè)器再現(xiàn)一首樂(lè)曲的一部分而通過(guò)激光唱片播放器再現(xiàn)該樂(lè)曲的另一部分。當(dāng)用戶希望把他在MIDI樂(lè)器上的演奏與通過(guò)激光唱片播放器來(lái)再現(xiàn)的這首樂(lè)曲的重奏記錄下來(lái)時(shí),獨(dú)立于時(shí)間數(shù)據(jù)碼產(chǎn)生持續(xù)時(shí)間數(shù)據(jù)碼,MIDI樂(lè)器的記錄器不使持續(xù)時(shí)間數(shù)據(jù)碼與時(shí)間數(shù)據(jù)碼相關(guān)。
用于重奏的現(xiàn)有技術(shù)的音頻重放系統(tǒng)遇到一個(gè)問(wèn)題,即,激光唱片播放器和MIDI樂(lè)器組合的問(wèn)題在于即使用戶同時(shí)起動(dòng)激光唱片播放器和MIDI樂(lè)器,通過(guò)激光唱片播放器再現(xiàn)的音調(diào)與通過(guò)MIDI樂(lè)器再現(xiàn)的音調(diào)之間的時(shí)間延遲也逐漸增大。
發(fā)明內(nèi)容
因而,本發(fā)明的重要目的是提供一種音頻系統(tǒng),通過(guò)該系統(tǒng)在完美的重奏中再現(xiàn)樂(lè)曲。
按照本發(fā)明的一個(gè)方面,提供了一種音頻系統(tǒng),用于再現(xiàn)與另一首樂(lè)曲重奏的一首樂(lè)曲,所述系統(tǒng)包括第一數(shù)據(jù)源,有用于存儲(chǔ)一組第一音樂(lè)數(shù)據(jù)碼的第一存儲(chǔ)空間,一組第一音樂(lè)數(shù)據(jù)碼表示該首樂(lè)曲,第一數(shù)據(jù)源響應(yīng)表示數(shù)據(jù)傳輸率的控制信號(hào)從第一存儲(chǔ)空間傳送第一音樂(lè)數(shù)據(jù)碼;第二數(shù)據(jù)源,有用于存儲(chǔ)一組第二音樂(lè)數(shù)據(jù)碼的第二存儲(chǔ)空間,格式與該組第一音樂(lè)數(shù)據(jù)碼不同,一組第二音樂(lè)數(shù)據(jù)碼表示輔助的另一首樂(lè)曲,第二數(shù)據(jù)源響應(yīng)控制信號(hào)從第二存儲(chǔ)空間傳送第二音樂(lè)數(shù)據(jù)碼;數(shù)據(jù)-聲音轉(zhuǎn)換器,用于根據(jù)第一音樂(lè)數(shù)據(jù)碼和第二音樂(lè)數(shù)據(jù)碼分別產(chǎn)生第一類聲音和第二類聲音;和重奏控制器,連接到第一數(shù)據(jù)源、第二數(shù)據(jù)源和數(shù)據(jù)-聲音轉(zhuǎn)換器,有數(shù)據(jù)處理能力并通過(guò)數(shù)據(jù)處理將控制信號(hào)提供給第一數(shù)據(jù)源和第二數(shù)據(jù)源,所述數(shù)據(jù)處理以用于這組第二音樂(lè)數(shù)據(jù)碼的第二數(shù)據(jù)傳輸率均衡用于這組第一音樂(lè)數(shù)據(jù)碼的第一數(shù)據(jù)傳輸率。
結(jié)合附圖,從下文的描述會(huì)更清楚地理解該音頻系統(tǒng)的特點(diǎn)和優(yōu)點(diǎn),其中圖1是顯示根據(jù)本發(fā)明的音頻系統(tǒng)的系統(tǒng)構(gòu)成的框圖,圖2是顯示音頻文件的結(jié)構(gòu)的圖,圖3是顯示從模擬音頻信號(hào)到音頻數(shù)據(jù)碼的數(shù)據(jù)轉(zhuǎn)換的圖,圖4A是顯示MIDI文件結(jié)構(gòu)的圖,圖4B是顯示一組MIDI音樂(lè)數(shù)據(jù)碼的一部分的數(shù)據(jù)排列的圖,圖5是顯示用于建立MIDI文件的方法的流程圖,和圖6是顯示同步重放的方法的流程圖。
具體實(shí)施例方式
系統(tǒng)構(gòu)成參考附圖的圖1,應(yīng)用本發(fā)明的音頻系統(tǒng)主要包括音頻播放器和樂(lè)器的合成設(shè)備100、重奏控制器110和多個(gè)數(shù)據(jù)源120/130/140。重奏控制器110與多個(gè)數(shù)據(jù)源120/130/140和合成設(shè)備100連接。重奏控制器140從多個(gè)數(shù)據(jù)源120/130/140選擇數(shù)據(jù)源,把數(shù)據(jù)傳輸率通知給所選的數(shù)據(jù)源120/130/140。所選的數(shù)據(jù)源以該數(shù)據(jù)傳輸率向重奏控制器110提供多條音樂(lè)數(shù)據(jù),重奏控制器110把多條音樂(lè)數(shù)據(jù)傳送到合成設(shè)備100。假設(shè)多條音樂(lè)數(shù)據(jù)表示一首音樂(lè)的多個(gè)部分。這樣,就從所選的數(shù)據(jù)源經(jīng)重奏控制器110向合成設(shè)備100同步傳送多條音樂(lè)數(shù)據(jù),合成設(shè)備100在完美的重奏中再現(xiàn)多個(gè)部分。
數(shù)據(jù)源120中存儲(chǔ)的多條音樂(lè)數(shù)據(jù)與存儲(chǔ)其它數(shù)據(jù)源130中的多條音樂(lè)數(shù)據(jù)格式不同。這種情況下,按照“Red Book”把存儲(chǔ)在數(shù)據(jù)源120中的多條音樂(lè)數(shù)據(jù)格式化,按照MIDI標(biāo)準(zhǔn)把存儲(chǔ)在其它數(shù)據(jù)源130中的多條音樂(lè)數(shù)據(jù)格式化。換句話說(shuō),從數(shù)據(jù)源120輸出多條音樂(lè)數(shù)據(jù)作為音頻音樂(lè)數(shù)據(jù)碼,從其它數(shù)據(jù)源130輸出另外的多條音樂(lè)數(shù)據(jù)作為MIDI音樂(lè)數(shù)據(jù)碼。
以給定的數(shù)據(jù)傳輸率從數(shù)據(jù)源120連續(xù)輸出音頻數(shù)據(jù)碼,把音頻數(shù)據(jù)碼表示的不連續(xù)值恢復(fù)為音頻信號(hào)。另一方面,以不規(guī)則的時(shí)間間隔從數(shù)據(jù)源130輸出表示音調(diào)的事件碼,由持續(xù)時(shí)間數(shù)據(jù)碼定義不規(guī)則的時(shí)間間隔。時(shí)鐘信號(hào)脈沖數(shù)代表每個(gè)時(shí)間間隔。這種情況下,數(shù)據(jù)源130把時(shí)鐘信號(hào)變?yōu)橄鄳?yīng)于數(shù)據(jù)傳輸率的確定頻率。因此,數(shù)據(jù)源130與音頻數(shù)據(jù)碼的數(shù)據(jù)傳輸同步輸出事件碼。
如果數(shù)據(jù)源120可以改變數(shù)據(jù)傳輸率,就與發(fā)送事件碼同步地向重奏控制器110提供音頻數(shù)據(jù)碼。另一方面,如果數(shù)據(jù)源120只以預(yù)定的數(shù)據(jù)傳輸率輸出音頻數(shù)據(jù)碼,用戶就可能不會(huì)實(shí)現(xiàn)同步數(shù)據(jù)傳輸。這種情況下,把音頻音樂(lè)數(shù)據(jù)碼從數(shù)據(jù)源120傳送到諸如數(shù)據(jù)源140的數(shù)據(jù)存儲(chǔ)器,以相應(yīng)于給定數(shù)據(jù)傳輸率的讀取速度從數(shù)據(jù)存儲(chǔ)器讀取音頻數(shù)據(jù)碼。這造成了數(shù)據(jù)源130和140之間的同步數(shù)據(jù)傳輸。
在重放和記錄中使用音頻播放器和樂(lè)器的合成設(shè)備100。在重放時(shí),合成設(shè)備100處理多條音樂(lè)數(shù)據(jù)碼,在重奏中再現(xiàn)多個(gè)部分。另一方面,當(dāng)以記錄模式建立音頻系統(tǒng)時(shí),合成設(shè)備100也起另一數(shù)據(jù)源的作用。從多條音樂(lè)數(shù)據(jù)再現(xiàn)一首樂(lè)曲的一部分時(shí),用戶在重奏中在合成設(shè)備100上播放另一部分,多條音樂(lè)數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)源120/130/140的一個(gè)數(shù)據(jù)源中。如果重奏控制器110已知用于多條音樂(lè)數(shù)據(jù)的數(shù)據(jù)傳輸率,就建議把表示數(shù)據(jù)傳輸率的一條控制數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)源120/130/140中,這是因?yàn)椴挥糜脩糁噶罹蛷乃x數(shù)據(jù)源120/130/140輸出多條音樂(lè)數(shù)據(jù)。
在希望音頻系統(tǒng)記錄同該部分的音調(diào)重奏的演奏的情況下,可以用諸如MIDI樂(lè)器或個(gè)人計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)發(fā)生器來(lái)代替合成設(shè)備。另一方面,在音頻系統(tǒng)只用于重放的情況下,可以用音頻重放單元來(lái)代替合成設(shè)備。在下文中更詳細(xì)地描述數(shù)據(jù)源120/130/140、合成設(shè)備100和重奏控制器110。
數(shù)據(jù)源140用硬盤驅(qū)動(dòng)來(lái)實(shí)現(xiàn)數(shù)據(jù)源140。硬盤驅(qū)動(dòng)器140與重奏控制器110連接。重奏控制器110向硬盤驅(qū)動(dòng)器140提供時(shí)鐘信號(hào)CL1,給予硬盤驅(qū)動(dòng)器140指令碼。在重奏控制器110的控制下從向硬盤驅(qū)動(dòng)器140寫(xiě)入音樂(lè)數(shù)據(jù)或從硬盤驅(qū)動(dòng)器140讀取音樂(lè)數(shù)據(jù)。這樣,在重奏控制器110和硬盤驅(qū)動(dòng)器140之間傳送音樂(lè)數(shù)據(jù)。
硬盤驅(qū)動(dòng)器140包含磁盤和磁頭。磁盤和磁頭之間的相對(duì)速度可隨時(shí)鐘信號(hào)CL1的頻率而變化。在磁盤中建立多種數(shù)據(jù)文件。要在磁盤中建立音頻文件af和MIDI文件mf。把音頻文件af分別分配到表示多首樂(lè)曲的多組音頻音樂(lè)數(shù)據(jù)碼。每個(gè)音頻文件af有兩個(gè)數(shù)據(jù)字段ai和ad(見(jiàn)圖2),把兩個(gè)數(shù)據(jù)字段ai/ad分別分配給音頻標(biāo)識(shí)碼AID和一組音頻音樂(lè)數(shù)據(jù)碼。
音頻標(biāo)識(shí)碼AID分別識(shí)別各個(gè)音頻文件af,使得用戶可以用音頻標(biāo)識(shí)碼AID指定每首樂(lè)曲。盤標(biāo)識(shí)碼還可以存儲(chǔ)在數(shù)據(jù)字段ai中。盤標(biāo)識(shí)碼表示激光唱片,從該激光唱片把一組音頻音樂(lè)數(shù)據(jù)碼復(fù)制為音頻文件af。位置數(shù)據(jù)碼還可存儲(chǔ)在數(shù)據(jù)字段ai中。位置數(shù)據(jù)碼表示這首樂(lè)曲或這組音頻音樂(lè)數(shù)據(jù)碼存儲(chǔ)在激光唱片中的什么地方。
這組音頻音樂(lè)數(shù)據(jù)碼分為音頻數(shù)據(jù)碼和時(shí)間碼,音頻數(shù)據(jù)碼表示模擬音頻信號(hào)的瞬時(shí)不連續(xù)值,時(shí)間碼表示從開(kāi)始重放起經(jīng)歷的時(shí)間。例如以44.1kHz取樣模擬音頻信號(hào),把瞬時(shí)不連續(xù)值轉(zhuǎn)換為音頻數(shù)據(jù)碼。圖3說(shuō)明了從模擬音頻信號(hào)到音頻數(shù)據(jù)碼的數(shù)據(jù)轉(zhuǎn)換。模擬音頻信號(hào)波動(dòng),使得幅度隨點(diǎn)AL1所示而變化。在t1,t2,...,和tn取樣模擬音頻信號(hào),在t1,t2,...,和tn的幅度轉(zhuǎn)換為箭頭AR1所示的二進(jìn)制數(shù)字。在t1,t2,...,和tn的幅度以代表瞬時(shí)不連續(xù)值的音頻數(shù)據(jù)碼存儲(chǔ)。
MIDI文件mf也分別分配到多組表示多首樂(lè)曲的MIDI音樂(lè)數(shù)據(jù)碼。每個(gè)MIDI文件mf有兩個(gè)數(shù)據(jù)字段mc和md(見(jiàn)圖4A),兩個(gè)數(shù)據(jù)字段mc/md分別分配給控制數(shù)據(jù)和一組MIDI音樂(lè)數(shù)據(jù)碼。這種情況下,MIDI標(biāo)識(shí)碼MID、音頻標(biāo)識(shí)碼AID和傳輸率碼TRD存儲(chǔ)在數(shù)據(jù)字段mc中。
MIDI標(biāo)識(shí)碼MID表示MIDI文件mf以及相應(yīng)的存儲(chǔ)在相關(guān)數(shù)據(jù)字段md中的樂(lè)曲。音頻標(biāo)識(shí)碼AID表示音頻文件,在音頻文件中存儲(chǔ)一組音頻音樂(lè)數(shù)據(jù)碼用于重奏。傳輸率碼TRD表示等于數(shù)據(jù)傳輸率的時(shí)鐘信號(hào)CL1的頻率。一組MIDI音樂(lè)數(shù)據(jù)碼包含表示事件的事件碼EC1和持續(xù)時(shí)間數(shù)據(jù)碼,每個(gè)持續(xù)時(shí)間數(shù)據(jù)碼表示圖4B所示事件之間的時(shí)間間隔Δt。時(shí)間間隔由時(shí)鐘信號(hào)CL1中的脈沖數(shù)來(lái)表示,使得與發(fā)送音頻音樂(lè)數(shù)據(jù)碼同步地把事件碼傳送到重奏控制器110。
假設(shè)用音頻標(biāo)識(shí)碼AID指定一個(gè)音頻數(shù)據(jù)文件af。硬盤驅(qū)動(dòng)器140用磁場(chǎng)對(duì)準(zhǔn)數(shù)據(jù)字段ad,以等于時(shí)鐘信號(hào)CL1的頻率的數(shù)據(jù)讀取速度從數(shù)據(jù)字段ad順序地讀取音頻數(shù)據(jù)碼和時(shí)間數(shù)據(jù)碼。硬盤驅(qū)動(dòng)器140也以等于時(shí)鐘信號(hào)CL1的頻率的數(shù)據(jù)傳輸率向重奏控制器110提供音頻數(shù)據(jù)碼和時(shí)間數(shù)據(jù)碼。如果時(shí)鐘信號(hào)CL1變?yōu)榱硪活l率,就以等于時(shí)鐘信號(hào)CL1的新頻率的另一數(shù)據(jù)傳輸率向重奏控制器110發(fā)送音頻音樂(lè)數(shù)據(jù)碼。
數(shù)據(jù)源120數(shù)據(jù)源120由光盤驅(qū)動(dòng)器120a和激光唱片120b來(lái)實(shí)現(xiàn)。光盤驅(qū)動(dòng)器120a與重奏控制器110連接。重奏控制器110給予光盤驅(qū)動(dòng)器120a指令代碼,從光盤驅(qū)動(dòng)器120a向重奏控制器110提供音樂(lè)數(shù)據(jù)。光盤驅(qū)動(dòng)器120a是具有用于照射激光束的光頭的標(biāo)準(zhǔn)類型,數(shù)據(jù)讀取速度恒定。光盤驅(qū)動(dòng)器120a設(shè)計(jì)成讀取表示以44.1kHz取樣的模擬音頻信號(hào)的多條數(shù)據(jù),使得數(shù)據(jù)讀取速度不可改變。
激光唱片120b是以凹點(diǎn)形式存儲(chǔ)音樂(lè)數(shù)據(jù)的類型。在每個(gè)激光唱片120b中存儲(chǔ)多組音頻音樂(lè)數(shù)據(jù)碼或多組MIDI音樂(lè)數(shù)據(jù)碼。
當(dāng)用戶指定一組音頻音樂(lè)數(shù)據(jù)碼時(shí),光盤驅(qū)動(dòng)器120a把光頭移動(dòng)至這組音頻音樂(lè)數(shù)據(jù)碼。光盤驅(qū)動(dòng)器120a驅(qū)動(dòng)激光唱片120b用于數(shù)據(jù)讀取時(shí),從光頭向激光唱片120b的記錄表面上照射激光束,把反射轉(zhuǎn)換為位串。把位串恢復(fù)成音頻音樂(lè)數(shù)據(jù)碼。光盤驅(qū)動(dòng)器120a以等于恒定數(shù)據(jù)讀取速度的數(shù)據(jù)傳輸率把音頻音樂(lè)數(shù)據(jù)碼傳送到重奏控制器110。
數(shù)據(jù)源130數(shù)據(jù)源130包含磁盤控制器/驅(qū)動(dòng)器130a和諸如軟盤的磁盤130b。磁盤控制器/驅(qū)動(dòng)器130a與重奏控制器110連接。重奏控制器110向磁盤控制器/驅(qū)動(dòng)器130a提供時(shí)鐘信號(hào)CL1、指令代碼和事件碼,磁盤控制器/驅(qū)動(dòng)器130a確定事件碼和先前事件碼之間的時(shí)間間隔,用于把表示時(shí)間間隔的持續(xù)時(shí)間數(shù)據(jù)碼與一個(gè)或多個(gè)事件碼一起存儲(chǔ)在磁盤130b中。磁盤控制器/驅(qū)動(dòng)器130a間斷性地從磁盤130b讀取一個(gè)或多個(gè)事件碼以及相關(guān)的持續(xù)時(shí)間數(shù)據(jù)碼,在持續(xù)時(shí)間數(shù)據(jù)碼所示的時(shí)間間隔耗盡時(shí)把一個(gè)或多個(gè)事件碼提供給重奏控制器110。這樣,磁盤控制器/驅(qū)動(dòng)器130a以一組MIDI音樂(lè)數(shù)據(jù)碼的形式把合成設(shè)備100上的演奏記錄在磁盤130b中,根據(jù)這組MIDI音樂(lè)數(shù)據(jù)碼再現(xiàn)演奏。
磁盤控制器/驅(qū)動(dòng)器130a包含微處理器、程序存儲(chǔ)器、工作存儲(chǔ)器、磁頭和驅(qū)動(dòng)器電路。把主例行程序和子例行程序存儲(chǔ)在程序存儲(chǔ)器中,微處理器順序地從程序存儲(chǔ)器取出這些計(jì)算機(jī)程序的指令代碼,用于實(shí)現(xiàn)給定的任務(wù)。微處理器在工作存儲(chǔ)器中臨時(shí)存儲(chǔ)事件碼和數(shù)據(jù)碼,在工作存儲(chǔ)器中為持續(xù)時(shí)間數(shù)據(jù)碼建立計(jì)數(shù)器。
當(dāng)音頻系統(tǒng)打開(kāi)時(shí),微處理器開(kāi)始執(zhí)行主例行程序,并周期性地檢查重奏控制器110和磁盤控制器/驅(qū)動(dòng)器130a之間的接口,看重奏控制器110是否向磁盤控制器/驅(qū)動(dòng)器130a新分派了任務(wù)。如果重奏控制器110請(qǐng)求磁盤控制器/驅(qū)動(dòng)器130a記錄合成設(shè)備100上的演奏,同時(shí)同步重放一首樂(lè)曲,主例行程序就轉(zhuǎn)移到子例行程序用于記錄,用于記錄的子例行程序轉(zhuǎn)移到每個(gè)定時(shí)中斷的子例行程序,所述的這首樂(lè)曲由一組音頻音樂(lè)數(shù)據(jù)碼表示。重奏控制器110向微處理器提供MIDI標(biāo)識(shí)碼MID、音頻標(biāo)識(shí)碼AID和傳輸率碼TRD以及表示請(qǐng)求同步記錄的指令代碼。另一方面,如果重奏控制器110請(qǐng)求磁盤控制器/驅(qū)動(dòng)器130a向重奏控制器110傳送事件碼,用于與重放該首樂(lè)曲同步地進(jìn)行重放,主例行程序就轉(zhuǎn)移到另一子例行程序用于重放,用于重放的子例行程序也轉(zhuǎn)移到每個(gè)定時(shí)中斷的子例行程序。
假設(shè)重奏控制器110a請(qǐng)求磁盤控制器/驅(qū)動(dòng)器130a記錄一首樂(lè)曲的一部分,同時(shí)同步重放音頻數(shù)據(jù)碼所表示的另一部分。重奏控制器110a就向微處理器提供控制數(shù)據(jù),即,MIDI標(biāo)識(shí)碼MID、音頻標(biāo)識(shí)碼AID和傳輸率碼TRD。當(dāng)微處理器確認(rèn)該指令時(shí),主例行程序就轉(zhuǎn)移到子例行程序用于記錄,微處理器在磁盤130b中建立MIDI文件mf。微處理器把MIDI標(biāo)識(shí)碼MID、音頻標(biāo)識(shí)碼AID和傳輸率碼TRD寫(xiě)入數(shù)據(jù)字段mc,并等候事件碼。
微處理器周期性地檢查重奏控制器110和磁盤控制器/驅(qū)動(dòng)器130a之間的接口,看是否有事件碼到達(dá)。第一事件碼表示開(kāi)始演奏。當(dāng)?shù)谝皇录a到達(dá)接口時(shí),微處理器指示驅(qū)動(dòng)器電路用磁頭在數(shù)據(jù)字段md中寫(xiě)入第一事件碼,起動(dòng)定時(shí)中斷的軟件定時(shí)器。這種情況下,以等于時(shí)鐘信號(hào)CL1的脈沖周期的時(shí)間間隔發(fā)生定時(shí)中斷。一進(jìn)入每個(gè)定時(shí)中斷的子例行程序,微處理器就把計(jì)數(shù)器加上1。這樣,微處理器用時(shí)鐘信號(hào)CL1的脈沖周期作為單位確定時(shí)間周期。
當(dāng)下面的一個(gè)或多個(gè)事件碼到達(dá)接口時(shí),微處理器讀取存儲(chǔ)在計(jì)數(shù)器中的脈沖數(shù),并把計(jì)數(shù)器重置為0。微處理器把脈沖數(shù)表示的時(shí)間周期存儲(chǔ)在持續(xù)時(shí)間數(shù)據(jù)碼中,指示驅(qū)動(dòng)器電路用磁頭把一個(gè)或多個(gè)事件碼與持續(xù)時(shí)間數(shù)據(jù)碼一起寫(xiě)入數(shù)據(jù)字段md。
微處理器重復(fù)上述工作直到重奏控制器110通知微處理器演奏完成。然后,微處理器指示驅(qū)動(dòng)器電路用磁頭把表示演奏結(jié)束的事件碼寫(xiě)入數(shù)據(jù)字段md。
假設(shè)重奏控制器110請(qǐng)求磁盤控制器/驅(qū)動(dòng)器130a向重奏控制器110傳送MIDI音樂(lè)數(shù)據(jù)碼用于同步重放。當(dāng)微處理器確認(rèn)該指令時(shí),主例行程序轉(zhuǎn)移到子例行程序用于重放,用于重放的子例行程序轉(zhuǎn)移到每個(gè)定時(shí)中斷的子例行程序。當(dāng)從磁盤130b讀取表示一個(gè)或多個(gè)音符事件的一個(gè)或多個(gè)事件碼和持續(xù)時(shí)間數(shù)據(jù)碼時(shí),微處理器把持續(xù)時(shí)間數(shù)據(jù)碼所示的脈沖數(shù)存儲(chǔ)在計(jì)數(shù)器中。在每個(gè)定時(shí)中斷把計(jì)數(shù)器存儲(chǔ)的數(shù)字減小1。當(dāng)計(jì)數(shù)器中的數(shù)字到達(dá)0時(shí),微處理器把事件碼傳送到重奏控制器110,讀取下面的一個(gè)或多個(gè)事件碼和持續(xù)時(shí)間數(shù)據(jù)碼。持續(xù)時(shí)間數(shù)據(jù)碼所示的脈沖數(shù)也存儲(chǔ)在計(jì)數(shù)器中,在每個(gè)定時(shí)中斷減小1。這樣,微處理器用時(shí)鐘信號(hào)CL1的脈沖確定讀取事件碼和發(fā)送事件碼之間的時(shí)間周期耗盡。
合成設(shè)備合成設(shè)備100主要包括重放系統(tǒng)100a、聲音系統(tǒng)100b、非電聲鋼琴174和傳感器陣列176。非電聲鋼琴174是標(biāo)準(zhǔn)大鋼琴。然而,立式鋼琴可以起非電聲鋼琴的作用。重放系統(tǒng)100a與重奏控制器110連接,從重奏控制器110提供多個(gè)事件碼,重放系統(tǒng)100a分析這些事件碼,使非電聲鋼琴174和聲音系統(tǒng)100b選擇性地產(chǎn)生非電聲鋼琴音調(diào)和電子音調(diào)。重奏控制器110還與聲音系統(tǒng)100b連接,直接向聲音系統(tǒng)100b提供模擬音頻信號(hào)用于產(chǎn)生電音調(diào)。
非電聲鋼琴174包含鍵盤174a、動(dòng)作單元174b、音錘174c、弦174d和踏板174e。鍵盤174a暴露于演奏人員,使得演奏人員可以在鍵盤174a上演奏樂(lè)曲。動(dòng)作單元174b與鍵盤174a的黑/白鍵鏈接,通過(guò)按下黑/白鍵選擇性地接通動(dòng)作單元174b。動(dòng)作單元174b驅(qū)動(dòng)相關(guān)音錘174c脫出旋轉(zhuǎn),音錘174c在旋轉(zhuǎn)結(jié)束處敲擊弦174d。然后,弦振動(dòng),使得從振動(dòng)的弦174d發(fā)出非電聲鋼琴音調(diào)。踏板174e用于對(duì)非電聲鋼琴音調(diào)給予效果。當(dāng)按下阻尼踏板174e時(shí),延長(zhǎng)非電聲鋼琴音調(diào)。減音踏板174e使非電聲鋼琴音調(diào)的響度比平常小,延音踏板174e使單個(gè)聲調(diào)得到延長(zhǎng)。這樣,部分174a到174e與標(biāo)準(zhǔn)大鋼琴的行為類似。
重放系統(tǒng)100a包含用于重奏的音調(diào)發(fā)生器160、重放控制器170、電磁控制的傳動(dòng)器(actuator)172和用于鋼琴音調(diào)的音調(diào)發(fā)生器。用于重奏的音調(diào)發(fā)生器160和重放控制器170并聯(lián)到重奏控制器110上,從重奏控制器110選擇性地向用于重奏的音調(diào)發(fā)生器160和重放控制器170提供事件碼。向重放控制器170提供表示鋼琴音調(diào)的事件碼,向用于重奏的音調(diào)發(fā)生器160提供表示其它種類音調(diào)的事件碼。用于重奏的音調(diào)發(fā)生器160根據(jù)事件碼產(chǎn)生數(shù)字音頻信號(hào)。把數(shù)字音頻信號(hào)轉(zhuǎn)換為模擬音頻信號(hào),把模擬音頻信號(hào)提供給聲音系統(tǒng)100b。
另一方面,重放控制器170向用于鋼琴音調(diào)的音調(diào)發(fā)生器178提供事件碼,或選擇性地向電磁控制的傳動(dòng)器172提供驅(qū)動(dòng)信號(hào)。用戶通過(guò)重奏控制器110指示作為目的地的重放控制器170。
如果用戶指示重奏控制器110向用于鋼琴音調(diào)的音調(diào)發(fā)生器178傳送事件碼,用于鋼琴音調(diào)的音調(diào)發(fā)生器178接收表示非電聲鋼琴音調(diào)的事件碼,根據(jù)事件碼產(chǎn)生數(shù)字音頻信號(hào)。把數(shù)字音頻信號(hào)轉(zhuǎn)換為模擬音頻信號(hào),從用于鋼琴音調(diào)的音調(diào)發(fā)生器178向聲音系統(tǒng)100b提供模擬音頻信號(hào)。
另一方面,如果用戶指示重奏控制器110向電磁控制的傳動(dòng)器172提供驅(qū)動(dòng)信號(hào),重放控制器170就分析事件碼,確定要移動(dòng)的黑/白鍵和每個(gè)非電聲鋼琴音調(diào)的響度。如果事件碼表示要給予非電聲鋼琴音調(diào)的效果,重放控制器170就確定將按下的踏板174e以及按下踏板174e的深度。重放控制器170把驅(qū)動(dòng)信號(hào)調(diào)節(jié)到等于響度或深度的確定負(fù)荷比,將驅(qū)動(dòng)信號(hào)提供給與黑/白鍵或踏板相關(guān)的電磁控制的傳動(dòng)器172。
電磁控制的傳動(dòng)器172設(shè)在黑/白鍵下面和踏板174e上面。當(dāng)驅(qū)動(dòng)信號(hào)流過(guò)電磁控制的傳動(dòng)器172的線圈時(shí),鐵心從線軸突出,按下相關(guān)的黑/白鍵/踏板。這樣,電磁控制的傳動(dòng)器172就選擇性地移動(dòng)相關(guān)的黑/白鍵/踏板174e而不需演奏人員彈奏/腳踏。這導(dǎo)致產(chǎn)生非電聲鋼琴音調(diào)和給予非電聲鋼琴音調(diào)的效果。
聲音系統(tǒng)100b包含混音器180、放大器190和揚(yáng)聲器192。從重奏控制器110、用于重奏的音調(diào)發(fā)生器160和用于鋼琴音調(diào)的音調(diào)發(fā)生器178向混音器180提供模擬信號(hào),并將模擬信號(hào)混合成單音頻信號(hào)。均衡音頻信號(hào)的頻率分量,通過(guò)放大器190放大均衡后的音頻信號(hào)。從放大器180向揚(yáng)聲器192提供模擬信號(hào),把模擬信號(hào)轉(zhuǎn)換為電/電子音調(diào)。
傳感器陣列176包含鍵傳感器和踏板傳感器。鍵傳感器分別監(jiān)控黑/白鍵,踏板傳感器分別監(jiān)控踏板174e。鍵/踏板傳感器176產(chǎn)生表示當(dāng)前鍵/當(dāng)前踏板位置的模擬鍵/踏板位置信號(hào),把模擬鍵位置信號(hào)和模擬踏板位置信號(hào)轉(zhuǎn)換為也表示當(dāng)前鍵/當(dāng)前踏板位置的數(shù)字鍵位置信號(hào)和數(shù)字踏板位置信號(hào)。周期性地從傳感器陣列176向重奏控制器110提供數(shù)字鍵位置信號(hào)和數(shù)字踏板位置信號(hào)。重奏控制器110分析數(shù)字鍵位置信號(hào)和數(shù)字踏板位置信號(hào)用于產(chǎn)生事件碼。首先,重奏控制器110指定按下的黑/白鍵174a和/或按下的踏板174e,計(jì)算每個(gè)按下的鍵的速度和/或每個(gè)按下的踏板174e的深度。分配給每個(gè)按下的黑/白鍵的音符數(shù)和速度存儲(chǔ)在事件碼中,按下的踏板和深度也存儲(chǔ)在事件碼中。這樣,傳感器陣列176通知重奏控制器110表示演奏的多條音樂(lè)數(shù)據(jù)。
重奏控制器重奏控制器110a包含控制器110a、操縱面板115和數(shù)字信號(hào)處理器150??刂破?10a與光盤驅(qū)動(dòng)器120a、磁盤控制器/驅(qū)動(dòng)器130a、硬盤驅(qū)動(dòng)器140、傳感器陣列176、操縱器115和數(shù)字信號(hào)處理器150連接。操縱面板115有諸如開(kāi)關(guān)、鍵和控制桿的多個(gè)操縱器,也在操縱面板115上設(shè)有幾個(gè)指示器和顯示窗口。用戶選擇性地操縱開(kāi)關(guān)和控制桿,通過(guò)操縱面板115向控制器110a給出指令。用戶通過(guò)操縱電源開(kāi)關(guān)打開(kāi)音頻系統(tǒng),通過(guò)其它開(kāi)關(guān)改變操作模式。用戶還通過(guò)操縱另外的開(kāi)關(guān)從合成設(shè)備100選擇聲源174或178。用戶操縱控制桿來(lái)改變節(jié)奏。用戶通過(guò)鍵把要演奏或要再現(xiàn)的樂(lè)器題目輸入到重奏控制器110中。
數(shù)字信號(hào)處理器150在圖1中縮寫(xiě)為“DSP”。數(shù)字信號(hào)處理器150完成兩個(gè)主要任務(wù)。一個(gè)主要任務(wù)是從音頻數(shù)據(jù)碼產(chǎn)生模擬音頻信號(hào)。光盤驅(qū)動(dòng)器120a或硬盤驅(qū)動(dòng)器140從激光唱片120b或磁盤讀取音頻音樂(lè)數(shù)據(jù)碼,音頻音樂(lè)數(shù)據(jù)碼,即音頻數(shù)據(jù)碼和時(shí)間數(shù)據(jù)碼連續(xù)到達(dá)控制器110a??刂破?10a把音頻數(shù)據(jù)碼傳送到數(shù)字信號(hào)處理器150同時(shí)不改變數(shù)據(jù)傳輸率。數(shù)字信號(hào)處理器150把音頻數(shù)據(jù)碼恢復(fù)為模擬音頻信號(hào),把模擬音頻信號(hào)提供給混音器180。當(dāng)數(shù)字信號(hào)處理器150把每個(gè)音頻數(shù)據(jù)碼轉(zhuǎn)換為模擬音頻信號(hào)的一部分時(shí),數(shù)字信號(hào)處理器150在時(shí)鐘信號(hào)CL1定義的時(shí)間鎖存音頻數(shù)據(jù)碼,以便把這些音頻數(shù)據(jù)碼的系列恢復(fù)為具有等于原始模擬音頻信號(hào)波形的模擬音頻信號(hào)。
另一主要任務(wù)是把事件碼分發(fā)到用于重奏的音調(diào)發(fā)生器160和重放控制器170。如上所述,磁盤控制器/驅(qū)動(dòng)器130a間斷性地向控制器110a傳送事件碼。控制器110a向數(shù)字信號(hào)處理器150提供事件碼。如果事件碼表示鋼琴音調(diào),數(shù)字信號(hào)處理器150就把事件碼提供給重放控制器170。另一方面,如果事件碼表示其它種類的音調(diào),數(shù)字信號(hào)處理器150就把事件碼提供給用于重奏的音調(diào)發(fā)生器160。這樣,數(shù)字信號(hào)處理器150按照要再現(xiàn)的音調(diào)的音色選擇性地把事件碼分發(fā)到重放控制器170和用于重奏的音調(diào)發(fā)生器160。在數(shù)據(jù)發(fā)送中,數(shù)字信號(hào)處理器150保持等于時(shí)鐘信號(hào)CL1的數(shù)據(jù)傳輸率。
控制器110a響應(yīng)用戶通過(guò)操縱面板115給出的指令,以便記錄非電聲鋼琴174上一首樂(lè)曲的一部分演奏,同時(shí)同步重放存儲(chǔ)在音頻文件af中的其它部分,以及與另一部分的重放同步地再現(xiàn)演奏。雖然音頻系統(tǒng)響應(yīng)其它用戶的請(qǐng)求,諸如簡(jiǎn)單地重放存儲(chǔ)在音頻文件af中的一首樂(lè)曲、簡(jiǎn)單地重放存儲(chǔ)在MIDI文件mf中的一首樂(lè)曲以及簡(jiǎn)單地記錄非電聲鋼琴174上的用戶演奏,但是,為了簡(jiǎn)便,不再贅述。描述主要注重同步記錄和同步重放。
在記錄模式下,控制器110a與光盤驅(qū)動(dòng)器/硬盤驅(qū)動(dòng)120a/140、數(shù)字信號(hào)處理器150、聲音系統(tǒng)100b、傳感器陣列176和磁盤控制器/驅(qū)動(dòng)器130a協(xié)作??刂破?10a請(qǐng)求光盤驅(qū)動(dòng)器/硬盤驅(qū)動(dòng)120a/140查找存儲(chǔ)有一首樂(lè)曲的那組音頻音樂(lè)數(shù)據(jù)碼。當(dāng)發(fā)現(xiàn)這組音頻音樂(lè)數(shù)據(jù)碼時(shí),光盤驅(qū)動(dòng)器120a把這組音頻音樂(lè)數(shù)據(jù)碼傳送到控制器110a,控制器110a再把這組音頻音樂(lè)數(shù)據(jù)碼傳送到硬盤驅(qū)動(dòng)器140。硬盤驅(qū)動(dòng)器140建立音頻文件af,把這組音頻音樂(lè)數(shù)據(jù)碼存儲(chǔ)在數(shù)據(jù)字段ad中。
接下來(lái),控制器110a指示磁盤控制器/驅(qū)動(dòng)器130a在磁盤130b中建立MIDI文件mf,并把MIDI標(biāo)識(shí)碼MID、音頻標(biāo)識(shí)碼AID和傳輸率碼TRD提供給磁盤控制器/驅(qū)動(dòng)器130a。用戶通過(guò)操縱面板115給出要演奏的樂(lè)曲的題目,控制器110a把該標(biāo)題存儲(chǔ)在MIDI標(biāo)識(shí)碼MID中。已經(jīng)從激光唱片120b讀取了音頻標(biāo)識(shí)碼AID??刂破?10a把Red Book定義的數(shù)據(jù)傳輸率或數(shù)據(jù)讀取速度存儲(chǔ)在內(nèi)部非易失性存儲(chǔ)器中作為缺省值??刂破?10a向磁盤控制器/驅(qū)動(dòng)器130a提供表示缺省值的傳輸率碼TRD直到用戶不通過(guò)操縱面板115給出數(shù)據(jù)傳輸率。磁盤控制器/驅(qū)動(dòng)器130a把這些數(shù)據(jù)碼MID、AID和TRD存儲(chǔ)在數(shù)據(jù)字段mc中。
接下來(lái),控制器110a把時(shí)鐘信號(hào)CL1調(diào)節(jié)為等于音頻音樂(lè)數(shù)據(jù)碼的數(shù)據(jù)傳輸率的頻率,開(kāi)始向磁盤控制器/驅(qū)動(dòng)器130a和硬盤驅(qū)動(dòng)器140提供時(shí)鐘信號(hào)CL1。
接下來(lái),控制器110a指示硬盤驅(qū)動(dòng)器140從音頻文件af的數(shù)據(jù)字段ad讀取并傳送音頻音樂(lè)數(shù)據(jù)碼。硬盤驅(qū)動(dòng)器140響應(yīng)時(shí)鐘信號(hào)CL1以便從磁盤讀取音頻音樂(lè)數(shù)據(jù)碼并傳送音頻音樂(lè)數(shù)據(jù)碼。音頻音樂(lè)數(shù)據(jù)碼到達(dá)控制器110a??刂破?10a把音頻數(shù)據(jù)碼傳送到數(shù)字信號(hào)處理器150同時(shí)不改變數(shù)據(jù)傳輸率??刂破?10a保持等于時(shí)鐘信號(hào)CL1的頻率的數(shù)據(jù)傳輸率。數(shù)字信號(hào)處理器150從音頻數(shù)據(jù)碼產(chǎn)生模擬音頻信號(hào),聲音系統(tǒng)100b產(chǎn)生電音調(diào)。
當(dāng)從揚(yáng)聲器192發(fā)出電音調(diào)時(shí),用戶開(kāi)始演奏這部分樂(lè)曲。用戶演奏這部分時(shí),傳感器陣列176向控制器110a提供數(shù)字鍵位置信號(hào)和數(shù)字踏板位置信號(hào)??刂破?10a分析數(shù)字鍵位置信號(hào)/數(shù)字踏板位置信號(hào)所表示的多條音樂(lè)數(shù)據(jù),根據(jù)音樂(lè)數(shù)據(jù)產(chǎn)生事件碼。控制器110a向磁盤控制器/驅(qū)動(dòng)器130a提供一個(gè)或多個(gè)事件碼。磁盤控制器/驅(qū)動(dòng)器130a產(chǎn)生持續(xù)時(shí)間數(shù)據(jù)碼,把一個(gè)或多個(gè)事件碼和相關(guān)持續(xù)時(shí)間數(shù)據(jù)碼寫(xiě)在數(shù)據(jù)字段md中??刂破?10a間斷地向磁盤控制器/驅(qū)動(dòng)器130a提供表示演奏的事件碼,磁盤控制器/驅(qū)動(dòng)器130a寫(xiě)入事件碼和相關(guān)持續(xù)時(shí)間數(shù)據(jù)碼直到用戶完成演奏。
假設(shè)用戶通過(guò)操縱面板指示控制器110a再現(xiàn)該樂(lè)曲這部分的演奏,同時(shí)同步重放其它部分。用戶通過(guò)操縱面板115指定樂(lè)曲。控制器用MIDI標(biāo)識(shí)碼MID識(shí)別這首樂(lè)曲,向磁盤控制器/驅(qū)動(dòng)器130a提供MIDI標(biāo)識(shí)碼MID。磁盤控制器/驅(qū)動(dòng)器130a從磁盤130b選擇MIDI文件mf,并把來(lái)自數(shù)據(jù)字段mc的音頻標(biāo)識(shí)碼AID和傳輸率碼TRD傳送到控制器110a。
控制器110a把音頻標(biāo)識(shí)碼AID傳送到光盤驅(qū)動(dòng)器120a,指示光盤驅(qū)動(dòng)器120a向其傳送由音頻標(biāo)識(shí)碼AID識(shí)別的這組音頻音樂(lè)數(shù)據(jù)碼。光盤驅(qū)動(dòng)器120a從激光唱片或另一激光唱片120b選擇這組音頻音樂(lè)數(shù)據(jù)碼,從激光唱片120b向控制器110a傳送這組音頻音樂(lè)數(shù)據(jù)碼??刂破?10a再把這組音頻音樂(lè)數(shù)據(jù)碼傳送到硬盤驅(qū)動(dòng)器140,這組音頻音樂(lè)數(shù)據(jù)碼存儲(chǔ)在硬盤驅(qū)動(dòng)器140的磁盤中所建立的音頻文件af中。
控制器110a檢查控制數(shù)據(jù),看時(shí)鐘信號(hào)CL1是否已經(jīng)調(diào)節(jié)為等于數(shù)據(jù)傳輸率的頻率。如果回答是否定的,控制器110a就把時(shí)鐘信號(hào)CL1調(diào)節(jié)為適當(dāng)?shù)念l率。
一旦完成準(zhǔn)備工作,控制器110a就指示磁盤控制器/驅(qū)動(dòng)器130a和硬盤驅(qū)動(dòng)器140起動(dòng)從MIDI文件mf和音頻文件af的數(shù)據(jù)讀取。如果用戶的選擇是用于鋼琴音調(diào)的音調(diào)發(fā)生器178,磁盤控制器/驅(qū)動(dòng)器130a和硬盤驅(qū)動(dòng)器140就同時(shí)起動(dòng)從磁盤控制器/驅(qū)動(dòng)器130a和內(nèi)部磁盤的數(shù)據(jù)讀取。另一方面,如果用戶的選擇是非電聲鋼琴174,控制器110a就在動(dòng)硬盤驅(qū)動(dòng)器140的數(shù)據(jù)讀取之前起動(dòng)從MIDI文件mf的數(shù)據(jù)讀取,這是因?yàn)殒I動(dòng)作不可避免地阻礙了非電聲鋼琴音調(diào)。數(shù)據(jù)讀取和非電聲鋼琴音調(diào)之間的時(shí)間延遲是恒定的。這樣,控制器110a用以下方式控制磁盤控制器/驅(qū)動(dòng)器130a和硬盤驅(qū)動(dòng)器140非電聲鋼琴174產(chǎn)生與聲音系統(tǒng)100b完美重奏的非電聲鋼琴音調(diào)。
硬盤驅(qū)動(dòng)器140響應(yīng)時(shí)鐘信號(hào)CL1以便從音頻文件af的數(shù)據(jù)字段ad向控制器110a傳送音頻音樂(lè)數(shù)據(jù)碼。另一方面,磁盤控制器/驅(qū)動(dòng)器130a間斷地從MIDI文件mf的數(shù)據(jù)字段md讀取事件碼和相關(guān)持續(xù)時(shí)間數(shù)據(jù)碼。磁盤控制器/驅(qū)動(dòng)器130a用時(shí)鐘信號(hào)CL1確定發(fā)送一個(gè)或多個(gè)事件碼同發(fā)送下一個(gè)或多個(gè)事件碼之間的時(shí)間間隔,并間斷地向控制器110a提供事件碼。
控制器110a從音頻音樂(lè)數(shù)據(jù)碼選擇音頻數(shù)據(jù)碼,并向數(shù)字信號(hào)處理器150提供音頻數(shù)據(jù)碼??刂破?10a保持等于時(shí)鐘信號(hào)CL1的頻率的數(shù)據(jù)傳輸率。數(shù)字信號(hào)處理器150產(chǎn)生模擬音頻信號(hào)到混音器180,從揚(yáng)聲器192發(fā)出電音調(diào)??刂破?10a還向數(shù)字信號(hào)處理器150提供事件碼,數(shù)字信號(hào)處理器150選擇性地向用于重奏的音調(diào)發(fā)生器160和重放控制器170提供事件碼同時(shí)不改變數(shù)據(jù)傳輸率。用于重奏的音調(diào)發(fā)生器160根據(jù)事件碼產(chǎn)生模擬音頻信號(hào),并向混音器180提供模擬音頻信號(hào)。另一方面,重放控制器170按照用戶的選擇向用于鋼琴音調(diào)的音調(diào)發(fā)生器178或電磁控制的傳動(dòng)器172提供事件碼。
當(dāng)用戶選擇用于鋼琴音調(diào)的音調(diào)發(fā)生器178時(shí),用于鋼琴音調(diào)的音調(diào)發(fā)生器178根據(jù)事件碼產(chǎn)生模擬音頻信號(hào),并向混音器180提供模擬音頻信號(hào),用于產(chǎn)生電子鋼琴音調(diào)。如果用戶選擇電磁控制的傳動(dòng)器172,重放控制器170就分析事件碼,并向電磁控制的傳動(dòng)器172提供驅(qū)動(dòng)信號(hào)。電磁控制的傳動(dòng)器172引起鍵動(dòng)作和踏板動(dòng)作,產(chǎn)生非電聲鋼琴音調(diào)。這樣,根據(jù)本發(fā)明的音頻系統(tǒng)用提供給磁盤控制器/驅(qū)動(dòng)器130a和硬盤驅(qū)動(dòng)器140的時(shí)鐘信號(hào)CL1,實(shí)現(xiàn)了電音調(diào)和鋼琴音調(diào)之間的完美重奏。
下面描述控制器110a的系統(tǒng)構(gòu)成??刂破?10a包含中央處理單元110a’、隨機(jī)存取存儲(chǔ)器110b、數(shù)-模轉(zhuǎn)換器110c、只讀存儲(chǔ)器110d、總線系統(tǒng)110e和時(shí)鐘發(fā)生器112。把諸如數(shù)據(jù)傳輸率的缺省值和計(jì)算機(jī)程序的控制數(shù)據(jù)存儲(chǔ)在只讀存儲(chǔ)器110d和隨機(jī)存取存儲(chǔ)器110b中,只讀存儲(chǔ)器110d簡(jiǎn)寫(xiě)為“ROM”,隨機(jī)存取存儲(chǔ)器110b簡(jiǎn)寫(xiě)為“RAM”,起工作存儲(chǔ)器的作用。中央處理單元110a’簡(jiǎn)寫(xiě)為“CPU”。中央處理單元110a’、隨機(jī)存取存儲(chǔ)器110b、數(shù)-模轉(zhuǎn)換器110c和只讀存儲(chǔ)器110d與總線系統(tǒng)110e連接。數(shù)-模轉(zhuǎn)換器110c在中央處理單元110a’的控制下產(chǎn)生控制電壓信號(hào),向時(shí)鐘發(fā)生器112提供控制電壓信號(hào)。這種情況下,時(shí)鐘發(fā)生器112由電壓控制的振蕩器來(lái)實(shí)現(xiàn)。電壓控制的振蕩器響應(yīng)控制電壓信號(hào)以便中央處理單元110a’可以改變時(shí)鐘信號(hào)CL1的頻率。從時(shí)鐘發(fā)生器112向磁盤控制器/驅(qū)動(dòng)器130a和硬盤驅(qū)動(dòng)器140提供時(shí)鐘信號(hào)CL1。
中央處理單元110a’順序取出計(jì)算機(jī)程序的指令代碼。當(dāng)用戶接通控制器110a時(shí),中央處理單元110a’開(kāi)始執(zhí)行主例行程序。在主例行程序中,中央處理單元110a’周期性地檢查操縱面板115,看用戶是否操縱了開(kāi)關(guān)、鍵和控制桿中的任意一個(gè)。假設(shè)用戶通過(guò)操縱面板115向音頻系統(tǒng)給出了指令?;卮鹗强隙ǖ模骼谐绦蚓桶凑战o定指令轉(zhuǎn)移到子例行程序。
如果用戶從合成設(shè)備選擇了用于鋼琴音調(diào)的音調(diào)發(fā)生器,中央處理單元110a’就把表示用戶的選擇的指令代碼提供給重放控制器170,使重放控制器170準(zhǔn)備向用于鋼琴音調(diào)的音調(diào)發(fā)生器178傳送事件碼。如果用戶在選擇操作模式之前輸入了要記錄的樂(lè)曲的題目和/或節(jié)奏,中央處理單元110a’就產(chǎn)生MIDI標(biāo)識(shí)碼和/或傳輸率碼,把它們臨時(shí)存儲(chǔ)在隨機(jī)存取存儲(chǔ)器110b中。
假設(shè)用戶指示音頻系統(tǒng)記錄一首樂(lè)曲的一部分,同時(shí)重放由一組音頻音樂(lè)數(shù)據(jù)碼表示的另一部分。用戶就通過(guò)操縱面板115輸入這首樂(lè)曲的題目。然而,用戶不給予重奏控制器110節(jié)奏。
中央處理單元110a’向光盤驅(qū)動(dòng)器120a提供表示這首樂(lè)曲的題目的數(shù)據(jù)碼,并請(qǐng)求光盤驅(qū)動(dòng)器120a檢查激光唱片120b,看是否已經(jīng)在激光唱片120b中記錄了這首樂(lè)曲。如果回答是否定的,光盤驅(qū)動(dòng)器120a向中央處理單元110a’報(bào)告沒(méi)記錄樂(lè)曲。然后,中央處理單元110a’請(qǐng)求操縱面板115在顯示窗口中產(chǎn)生消息,諸如“沒(méi)在盤中發(fā)現(xiàn)該題目”。如果把另一激光唱片插入光盤驅(qū)動(dòng)器120a中,光盤驅(qū)動(dòng)器就在激光唱片120b查找這首樂(lè)曲。這樣,中央處理單元110a’與光盤驅(qū)動(dòng)器120a和操縱面板115協(xié)作直到光盤驅(qū)動(dòng)器120a向控制器110a報(bào)告音頻標(biāo)識(shí)碼AID。
當(dāng)中央處理單元110a’確認(rèn)了音頻標(biāo)識(shí)碼AID,中央處理單元110a’就臨時(shí)把音頻標(biāo)識(shí)碼AID存儲(chǔ)在隨機(jī)存取存儲(chǔ)器110b中,指示硬盤驅(qū)動(dòng)器140為音頻標(biāo)識(shí)碼AID標(biāo)記的樂(lè)曲建立音頻文件af。中央處理單元110a’請(qǐng)求光盤驅(qū)動(dòng)器120a向硬盤驅(qū)動(dòng)器140傳送音頻音樂(lè)數(shù)據(jù)碼。光盤驅(qū)動(dòng)器120a從激光唱片120b讀取音頻音樂(lè)數(shù)據(jù)碼,把它們通過(guò)控制器110a傳送到硬盤驅(qū)動(dòng)器140。音頻音樂(lè)數(shù)據(jù)碼順序記錄在數(shù)據(jù)字段ad中。這樣,就在硬盤驅(qū)動(dòng)器140的磁盤中建立了音頻文件af。
中央處理單元110a’指示磁盤控制器/驅(qū)動(dòng)器130a檢查磁盤130b,看空閑存儲(chǔ)空間是否足以建立新的MIDI文件mf,同時(shí)對(duì)光盤驅(qū)動(dòng)器120a給出指令。如果空閑存儲(chǔ)空間短缺,磁盤控制器/驅(qū)動(dòng)器130a就向中央處理單元110a’報(bào)告短缺。然后中央處理單元110a’請(qǐng)求操縱面板115在顯示窗口上產(chǎn)生消息,諸如“改變盤”。這樣,中央處理單元110a’與磁盤控制器/驅(qū)動(dòng)器130a和操縱面板115協(xié)作直到磁盤控制器/驅(qū)動(dòng)器130a發(fā)現(xiàn)可用于記錄的空閑存儲(chǔ)空間。
當(dāng)光盤驅(qū)動(dòng)器120a和磁盤控制器/驅(qū)動(dòng)器130a準(zhǔn)備好時(shí),中央處理單元110a’向磁盤控制器/驅(qū)動(dòng)器130a提供表示缺省值的MIDI標(biāo)識(shí)碼、音頻標(biāo)識(shí)碼和傳輸率碼TRD,并指示磁盤控制器/驅(qū)動(dòng)器130a把MIDI標(biāo)識(shí)碼MID、音頻標(biāo)識(shí)碼AID和傳輸率碼TRD存儲(chǔ)在MIDI文件mf的數(shù)據(jù)字段mc中。
此外,中央處理單元110a’向數(shù)-模轉(zhuǎn)換器110c提供表示缺省值的控制數(shù)據(jù)碼。數(shù)-模轉(zhuǎn)換器110c把控制電壓信號(hào)變?yōu)檫m于等于缺省數(shù)據(jù)傳輸率的頻率的電勢(shì)電平??刂齐妷盒盘?hào)使時(shí)鐘發(fā)生器112以給定的頻率振蕩。時(shí)鐘發(fā)生器112以給定的頻率向硬盤驅(qū)動(dòng)器140和磁盤控制器/驅(qū)動(dòng)器130a提供時(shí)鐘信號(hào)CL1。
接下來(lái),中央處理單元110a’指示硬盤驅(qū)動(dòng)器140從音頻文件af讀取音頻音樂(lè)數(shù)據(jù)碼,對(duì)坐在鍵盤174a前面的演奏者給出記號(hào)。中央處理單元110a’通過(guò)第一事件碼通知磁盤控制器/驅(qū)動(dòng)器130a開(kāi)始同步記錄。磁盤控制器/驅(qū)動(dòng)器130a在MIDI文件mf的數(shù)據(jù)字段md中寫(xiě)入事件碼,開(kāi)始計(jì)數(shù)時(shí)鐘信號(hào)CL1的脈沖。
從硬盤驅(qū)動(dòng)器140經(jīng)控制器110a向數(shù)字信號(hào)處理器150傳送音頻音樂(lè)數(shù)據(jù)碼,數(shù)字信號(hào)處理器150向混音器180提供模擬音頻信號(hào),以便從揚(yáng)聲器192為給定的部分產(chǎn)生電音調(diào)。
另一方面,演奏者開(kāi)始以給定的記號(hào)在鍵盤174a上彈奏。演奏者在非電聲鋼琴174上演奏另一部分時(shí),傳感器陣列176向控制器110a的接口提供數(shù)字鍵位置信號(hào)和數(shù)字踏板位置信號(hào)。中央處理單元110a’把數(shù)字鍵位置信號(hào)/數(shù)字踏板位置信號(hào)所表示的多條位置數(shù)據(jù)傳送到隨機(jī)存取存儲(chǔ)器110b,在這里累積多條位置數(shù)據(jù)。中央處理單元110a’周期性地檢查累積的多條位置數(shù)據(jù),看演奏者是否移動(dòng)了哪個(gè)黑/白鍵174a和踏板174e。假設(shè)演奏者按下了一個(gè)黑/白鍵并釋放了另一個(gè)黑/白鍵?;卮鹗强隙ǖ?,中央處理單元110a’就用各個(gè)音符數(shù)識(shí)別按下的鍵和釋放的鍵。中央處理單元110a’根據(jù)累積的位置數(shù)據(jù)計(jì)算速度,并產(chǎn)生表示音符開(kāi)事件和音符關(guān)事件的事件碼。如果演奏者踏在一個(gè)踏板174e上,回答也是肯定的,中央處理單元110a’產(chǎn)生表示要給予音調(diào)的效果的事件碼。
中央處理單元110a’向磁盤控制器/驅(qū)動(dòng)器130a提供一個(gè)或多個(gè)事件碼。當(dāng)磁盤控制器/驅(qū)動(dòng)器130a接收一個(gè)或多個(gè)事件碼時(shí),磁盤控制器/驅(qū)動(dòng)器130a讀取目前存儲(chǔ)在計(jì)數(shù)器中的值,產(chǎn)生持續(xù)時(shí)間數(shù)據(jù)碼。磁盤控制器/驅(qū)動(dòng)器130a把計(jì)數(shù)器重置為0,重新開(kāi)始計(jì)數(shù)時(shí)鐘信號(hào)CL1的脈沖。磁盤控制器/驅(qū)動(dòng)器130a把一個(gè)/多個(gè)事件碼和持續(xù)時(shí)間數(shù)據(jù)碼寫(xiě)在MIDI文件mf的數(shù)據(jù)字段md中。
演奏者演奏一首樂(lè)曲的一部分時(shí),中央處理單元110a’間斷地向磁盤控制器/驅(qū)動(dòng)器130a提供事件碼,磁盤控制器/驅(qū)動(dòng)器130a把事件碼與持續(xù)時(shí)間數(shù)據(jù)碼一起存儲(chǔ)在MIDI文件mf的數(shù)據(jù)字段md中。這樣,中央處理單元110a’與傳感器陣列176和磁盤控制器/驅(qū)動(dòng)器130a協(xié)作,用于在MIDI文件mf中記錄演奏。
當(dāng)演奏者指示音頻系統(tǒng)再現(xiàn)演奏,同時(shí)通過(guò)聲音系統(tǒng)100b同步重放時(shí),中央處理單元110a’的行為如下。
首先,中央處理單元110a’請(qǐng)求磁盤控制器/驅(qū)動(dòng)器130a在磁盤130b檢查存儲(chǔ)有演奏的MIDI文件mf。如果磁盤130b沒(méi)有存儲(chǔ)MIDI文件mf,磁盤控制器/驅(qū)動(dòng)器130a就向中央處理單元110a’報(bào)告沒(méi)存儲(chǔ)MIDI文件mf。然后,中央處理單元110a’指示操縱面板115在顯示窗口中產(chǎn)生消息,諸如“改變磁盤”,以便提示用戶改變磁盤130b。
當(dāng)磁盤控制器/驅(qū)動(dòng)器130a發(fā)現(xiàn)MIDI文件mf時(shí),磁盤控制器/驅(qū)動(dòng)器130a讀取音頻標(biāo)識(shí)碼AID和傳輸率碼TRD,并將它們提供給中央處理單元110a’。
中央處理單元110a’把音頻標(biāo)識(shí)碼AID傳送到光盤驅(qū)動(dòng)器120a,并請(qǐng)求光盤驅(qū)動(dòng)器120a在激光唱片120b查找一組標(biāo)記為音頻標(biāo)識(shí)碼AID的音頻音樂(lè)數(shù)據(jù)碼。如果這組音頻音樂(lè)數(shù)據(jù)碼不存在,光盤驅(qū)動(dòng)器120a就報(bào)告中央處理單元110a’不存在這組音頻音樂(lè)數(shù)據(jù)碼,中央處理單元110a’使操縱面板115在顯示窗口中產(chǎn)生提示消息。
當(dāng)中央處理單元110a’確認(rèn)音頻音樂(lè)數(shù)據(jù)碼時(shí),中央處理單元110a’請(qǐng)求硬盤驅(qū)動(dòng)器140在磁盤中建立音頻文件af,要光盤驅(qū)動(dòng)器120a通過(guò)控制器110a向硬盤驅(qū)動(dòng)器140傳送這組音頻音樂(lè)數(shù)據(jù)碼。硬盤驅(qū)動(dòng)器140把這組音頻音樂(lè)數(shù)據(jù)碼存儲(chǔ)在數(shù)據(jù)字段ad中。這樣,這組音頻音樂(lè)數(shù)據(jù)碼復(fù)制到硬盤驅(qū)動(dòng)器140中。
當(dāng)傳輸率碼TRD到達(dá)中央處理單元110a’時(shí),中央處理單元110a’向數(shù)-模轉(zhuǎn)換器110c提供表示數(shù)據(jù)傳輸率的控制數(shù)據(jù)碼。數(shù)-模轉(zhuǎn)換器110c把控制電壓信號(hào)調(diào)節(jié)為相應(yīng)于數(shù)據(jù)傳輸率的電勢(shì)電平。把控制電壓信號(hào)提供給時(shí)鐘發(fā)生器112,時(shí)鐘發(fā)生器112以等于目標(biāo)數(shù)據(jù)傳輸率的給定頻率振蕩。把時(shí)鐘信號(hào)CL1提供給硬盤驅(qū)動(dòng)器140和磁盤控制器/驅(qū)動(dòng)器130a。
當(dāng)完成準(zhǔn)備工作時(shí),中央處理單元110a’按照非電聲鋼琴174和用于鋼琴音調(diào)的音調(diào)發(fā)生器178之間的用戶選擇,請(qǐng)求磁盤控制器/驅(qū)動(dòng)器130a在音頻音樂(lè)數(shù)據(jù)碼的數(shù)據(jù)讀取的同時(shí)或在此之前,從MIDI文件mf讀取MIDI音樂(lè)數(shù)據(jù)碼。
與時(shí)鐘信號(hào)CL1同步地從磁盤連續(xù)讀取音頻音樂(lè)數(shù)據(jù)碼,以目標(biāo)數(shù)據(jù)傳輸率,從硬盤驅(qū)動(dòng)器140經(jīng)控制器110a向數(shù)字信號(hào)處理器150傳送音頻音樂(lè)數(shù)據(jù)碼。數(shù)字信號(hào)處理器150從音頻數(shù)據(jù)碼產(chǎn)生模擬音頻信號(hào),并將其提供給混音器180。
另一方面,磁盤控制器/驅(qū)動(dòng)器130a間斷地向控制器110a提供事件碼,用時(shí)鐘信號(hào)CL1測(cè)量發(fā)送一個(gè)/多個(gè)事件碼和前一次發(fā)送一個(gè)/多個(gè)時(shí)間碼之間的時(shí)間周期。中央處理單元110a’向重放控制器170傳送一個(gè)/多個(gè)時(shí)間碼,重放控制器170按照用戶選擇向用于鋼琴音調(diào)的音調(diào)發(fā)生器178或電磁控制的傳動(dòng)器172提供一個(gè)/多個(gè)時(shí)間碼或驅(qū)動(dòng)信號(hào)。
如果向用于鋼琴音調(diào)的音調(diào)發(fā)生器178提供一個(gè)/多個(gè)事件碼,用于鋼琴音調(diào)的音調(diào)發(fā)生器178就根據(jù)事件碼產(chǎn)生模擬音頻信號(hào),并把模擬音頻信號(hào)提供給混音器180。聲音系統(tǒng)100b在重奏中再現(xiàn)電音調(diào)和電子音調(diào),與記錄模式下相同。
另一方面,如果向電磁控制的傳動(dòng)器172提供事件碼,電磁控制的傳動(dòng)器就引起鍵動(dòng)作和踏板動(dòng)作,從振動(dòng)弦174d產(chǎn)生聲調(diào)。雖然機(jī)械振動(dòng)中引入了時(shí)間延遲,但是,磁盤控制器/驅(qū)動(dòng)器130a比硬盤驅(qū)動(dòng)器140的數(shù)據(jù)讀取提前起動(dòng),提前了等于時(shí)間延遲的時(shí)間周期。這導(dǎo)致了非電聲鋼琴音調(diào)和電音調(diào)之間的完美重奏。
同步記錄/同步重放圖5和6說(shuō)明了用于同步記錄的控制序列和用于同步重放的控制序列。假設(shè)用戶指示音頻系統(tǒng)同步記錄。用戶就把激光唱片120b和磁盤130b插入光盤驅(qū)動(dòng)器120a和磁盤控制器/驅(qū)動(dòng)器130a。已經(jīng)把要再現(xiàn)的這首樂(lè)曲記錄在激光唱片120b中,磁盤130b有建立MIDI文件mf的未使用存儲(chǔ)空間。音頻系統(tǒng)在硬盤驅(qū)動(dòng)器140的磁盤中建立音頻文件af,把這組音頻音樂(lè)數(shù)據(jù)碼從激光唱片120b復(fù)制到音頻文件af的數(shù)據(jù)字段ad。
音頻系統(tǒng)起動(dòng)圖5所示的控制序列。首先,音頻系統(tǒng)檢查操縱面板,看用戶是否指示了同步記錄,如步驟Sa1。如果用戶還沒(méi)向音頻系統(tǒng)指示同步記錄,回答是“否”,音頻系統(tǒng)就重復(fù)步驟Sa1。向音頻系統(tǒng)提供音頻標(biāo)識(shí)碼AID和傳輸率碼TRD以及用于同步記錄的指令。
當(dāng)用戶指示音頻系統(tǒng)同步記錄時(shí),在步驟Sa1的回答變?yōu)榭隙ā笆恰保纛l系統(tǒng)在磁盤130b中建立MIDI文件mf。音頻標(biāo)識(shí)碼AID和傳輸率碼TRD寫(xiě)在MIDI文件中,如步驟Sa2。音頻標(biāo)識(shí)碼AID使MIDI文件mf相應(yīng)于音頻文件af。還沒(méi)在MIDI文件mf的數(shù)據(jù)文件md中寫(xiě)入MIDI音樂(lè)數(shù)據(jù)碼。
音頻系統(tǒng)與時(shí)鐘信號(hào)CL1同步地連續(xù)從音頻文件af讀取音頻音樂(lè)數(shù)據(jù)碼,再現(xiàn)電音調(diào),如步驟Sa3。用戶在重放的同時(shí)開(kāi)始在非電聲鋼琴174上演奏,音頻系統(tǒng)產(chǎn)生表示演奏的事件碼和持續(xù)時(shí)間碼。音頻系統(tǒng)用時(shí)鐘信號(hào)CL1確定事件之間的時(shí)間間隔。音頻系統(tǒng)把事件碼和相關(guān)持續(xù)時(shí)間碼存儲(chǔ)在MIDI文件mf的數(shù)據(jù)字段md中,如步驟Sa4。雖然步驟Sa3之后是步驟Sa4,但是,并行執(zhí)行重放和記錄。
音頻系統(tǒng)檢查操縱面板115,看用戶是否完成了演奏,如步驟Sa5。用戶繼續(xù)彈奏時(shí),步驟Sa5的回答是否定“否”,控制返回步驟Sa4。這樣,音頻系統(tǒng)重復(fù)步驟Sa4和Sa5的循環(huán)直到用戶完成演奏。
當(dāng)用戶完成演奏時(shí),他或她指示音頻系統(tǒng)終止記錄,步驟Sa5的回答變?yōu)榭隙ā笆恰薄H缓?,音頻系統(tǒng)退出控制序列。
如果用戶希望放慢或加快演奏,用戶就將他或她的節(jié)奏給予音頻系統(tǒng),音頻系統(tǒng)把時(shí)鐘信號(hào)CL1調(diào)節(jié)為相應(yīng)于新節(jié)奏的頻率。
從上文的描述可以知道,音頻系統(tǒng)以等于時(shí)鐘信號(hào)CL1的頻率的數(shù)據(jù)傳輸率傳送音頻數(shù)據(jù)碼,也用時(shí)鐘信號(hào)CL1對(duì)發(fā)送事件碼之間的間隔進(jìn)行計(jì)時(shí)。這樣,音頻系統(tǒng)用時(shí)鐘信號(hào)CL1控制重放和記錄。這導(dǎo)致了完美的重奏。
假設(shè)用戶向音頻系統(tǒng)指示同步重放。用戶已經(jīng)把激光唱片120b和磁盤130b插入光盤驅(qū)動(dòng)器120a和磁盤控制器/驅(qū)動(dòng)器130a,音頻系統(tǒng)已經(jīng)把這組音頻音樂(lè)數(shù)據(jù)碼復(fù)制到了在硬盤驅(qū)動(dòng)器140中建立的音頻文件af。從合成設(shè)備100選擇用于鋼琴音調(diào)的音調(diào)發(fā)生器178。
首先,音頻系統(tǒng)檢查操縱面板115,看用戶是否指示音頻系統(tǒng)同步重放,如步驟Sb1。步驟Sb1的回答是否定“否”時(shí),音頻系統(tǒng)等候用戶指令,重復(fù)步驟Sb1。
當(dāng)指令到達(dá)音頻系統(tǒng)時(shí),在步驟Sb1的回答變?yōu)榭隙ā笆恰?,音頻系統(tǒng)從磁盤130b中的MIDI文件mf讀取音頻標(biāo)識(shí)碼AID和傳輸率碼TRD,如步驟Sb2。音頻系統(tǒng)用音頻標(biāo)識(shí)碼AID識(shí)別要訪問(wèn)的音頻文件af,把時(shí)鐘信號(hào)CL1調(diào)節(jié)為適當(dāng)?shù)念l率。
音頻系統(tǒng)從音頻文件af和MIDI文件mf同步讀取音頻音樂(lè)數(shù)據(jù)碼和事件碼并把它們傳送到合成設(shè)備100,用于重奏,如步驟Sb3,直到音頻/MIDI文件af/mf結(jié)束。
修改例要知道,音頻系統(tǒng)用時(shí)鐘信號(hào)CL1控制數(shù)據(jù)讀取和數(shù)據(jù)發(fā)送,以便在良好的重奏中再現(xiàn)多個(gè)部分。
有可能在硬盤驅(qū)動(dòng)器140中布置多個(gè)要同步再現(xiàn)的音頻文件。該特征是用戶所希望的,這是因?yàn)樗蛩阉蛩难葑嘤涗浽谙鄳?yīng)MIDI文件中而不改變激光唱片120b。此外,硬盤驅(qū)動(dòng)器140的查找時(shí)間比光盤驅(qū)動(dòng)器120a短,所以用戶記錄他或她的演奏就不用等太長(zhǎng)時(shí)間。
雖然已經(jīng)顯示和描述了本發(fā)明的特殊實(shí)施例,對(duì)于本領(lǐng)域的技術(shù)人員很明顯,可以進(jìn)行改變和修改而不背離本發(fā)明的精神和范圍。
例如,數(shù)字信號(hào)處理器150可以倒計(jì)時(shí)鐘脈沖,以便間斷地向重放控制器170和用于重奏的音調(diào)發(fā)生器160提供事件碼。這種情況下,磁盤控制器/驅(qū)動(dòng)器130a連續(xù)向控制器110a提供事件碼和持續(xù)時(shí)間數(shù)據(jù)碼。
控制器110a可以在從激光唱片120b向硬盤驅(qū)動(dòng)器140發(fā)送音頻文件期間確定數(shù)據(jù)讀取速度。把音頻數(shù)據(jù)碼分組到一系列幀中,在每個(gè)幀的標(biāo)題部分存儲(chǔ)同步模式。向硬盤驅(qū)動(dòng)器140傳送幀時(shí),控制器110根據(jù)發(fā)送同步模式時(shí)消耗的時(shí)間周期來(lái)假設(shè)讀取速度和相應(yīng)的數(shù)據(jù)傳輸率。
在根據(jù)本發(fā)明的另一音頻系統(tǒng)中,可以在硬盤驅(qū)動(dòng)器140的磁盤中建立MIDI文件mf。
在根據(jù)本發(fā)明的又一音頻系統(tǒng)中,可以為一首樂(lè)曲的兩個(gè)以上的部分在硬盤驅(qū)動(dòng)器140中建立一個(gè)以上的MIDI文件和/或多個(gè)音頻文件。
在根據(jù)本發(fā)明的又一音頻系統(tǒng)中,光盤驅(qū)動(dòng)器120a和控制器110a之間連接緩沖存儲(chǔ)器。這種情況下,音頻音樂(lè)數(shù)據(jù)碼臨時(shí)存儲(chǔ)在緩沖存儲(chǔ)器中,而后,與時(shí)鐘信號(hào)CL1同步從緩沖存儲(chǔ)器傳送到控制器110a。數(shù)據(jù)源120包含激光唱片120b、光盤驅(qū)動(dòng)器120a和緩沖存儲(chǔ)器,可以從音頻系統(tǒng)去除硬盤驅(qū)動(dòng)器140。
如果光盤驅(qū)動(dòng)器直接響應(yīng)時(shí)鐘信號(hào)CL1,就把音頻音樂(lè)數(shù)據(jù)碼直接提供給控制器110a。
任何種類的數(shù)據(jù)源都可用于根據(jù)本發(fā)明的音頻系統(tǒng)。半導(dǎo)體存儲(chǔ)器和磁帶可以用作數(shù)據(jù)源,可以從供應(yīng)商經(jīng)公共或?qū)S猛ㄐ啪W(wǎng)絡(luò)傳送MIDI音樂(lè)數(shù)據(jù)碼和/或音頻音樂(lè)數(shù)據(jù)碼。磁盤130b可以是軟盤。
根據(jù)本發(fā)明的音頻系統(tǒng)可以在重奏中再現(xiàn)多首樂(lè)曲。多個(gè)部分可以相應(yīng)于多首樂(lè)曲。相反,多首樂(lè)曲中的一首和另一首樂(lè)曲可以是旋律和節(jié)拍。
有多種標(biāo)準(zhǔn)來(lái)定義音樂(lè)數(shù)據(jù)。Red Book的標(biāo)準(zhǔn)和MIDI標(biāo)準(zhǔn)只是標(biāo)準(zhǔn)的實(shí)例。因此,MIDI文件mf和音頻文件af不限制可用于根據(jù)本發(fā)明的音頻系統(tǒng)的數(shù)據(jù)格式。
可以用任何一種聲源來(lái)代替合成設(shè)備100,只要該聲源響應(yīng)多個(gè)音頻信號(hào)用來(lái)產(chǎn)生音調(diào)就行。這種聲源的實(shí)例是立體聲系統(tǒng),另一實(shí)例是個(gè)人計(jì)算機(jī)系統(tǒng)。另一種樂(lè)器,諸如電鍵盤、電弦樂(lè)器和電子管樂(lè)器可以形成合成設(shè)備的一部分。
在另一音頻系統(tǒng)中,時(shí)鐘發(fā)生器112可以包括在每個(gè)數(shù)據(jù)源130/140中。這種情況下,重奏控制器提供表示目標(biāo)頻率和定時(shí)的控制信號(hào),用于使時(shí)鐘信號(hào)相互同步。
在根據(jù)本發(fā)明的又一音頻系統(tǒng)中,可以用另一種傳動(dòng)器,諸如氣動(dòng)傳動(dòng)器、液壓傳動(dòng)器或壓電傳動(dòng)器來(lái)代替電磁控制的傳動(dòng)器。
權(quán)利要求和實(shí)施例之間的關(guān)系圖1所示的實(shí)施例中,硬盤驅(qū)動(dòng)器140和磁盤控制器/驅(qū)動(dòng)器130分別起第一數(shù)據(jù)源和第二數(shù)據(jù)源的作用,這組音頻音樂(lè)數(shù)據(jù)碼和這組MIDI音樂(lè)數(shù)據(jù)碼分別相應(yīng)于一組第一音樂(lè)數(shù)據(jù)碼和一組第二音樂(lè)數(shù)據(jù)碼。然而,硬盤驅(qū)動(dòng)器140、磁盤控制器/驅(qū)動(dòng)器130、這組音頻音樂(lè)數(shù)據(jù)碼和這組MIDI音樂(lè)數(shù)據(jù)碼不是要限制在下文中結(jié)合修改例描述的第一數(shù)據(jù)源、第二數(shù)據(jù)源、一組第一音樂(lè)數(shù)據(jù)碼和一組第二音樂(lè)數(shù)據(jù)碼。硬盤驅(qū)動(dòng)器140的磁盤和磁盤130b分別提供第一存儲(chǔ)空間和第二存儲(chǔ)空間。
合成設(shè)備起數(shù)據(jù)-聲音轉(zhuǎn)換器的作用,電音調(diào)和電子鋼琴音調(diào)/非電聲鋼琴音調(diào)分別相應(yīng)于第一類聲音和第二類聲音。從上文的描述很清楚,電音調(diào)和電子鋼琴音調(diào)/非電聲鋼琴音調(diào)不限制本發(fā)明的技術(shù)范圍。節(jié)拍和/或自然聲可以起第一類聲音和/或第二類聲音的作用。
時(shí)鐘信號(hào)CL1起控制信號(hào)的作用。萬(wàn)一數(shù)據(jù)源有各自的時(shí)鐘發(fā)生器,目標(biāo)頻率和同步定時(shí)就可用控制信號(hào)來(lái)指示。時(shí)鐘發(fā)生器112是一種可變頻率時(shí)鐘發(fā)生器。
音頻標(biāo)識(shí)碼AID和MIDI標(biāo)識(shí)碼MID分別起第一標(biāo)識(shí)碼和第二標(biāo)識(shí)碼的作用。術(shù)語(yǔ)“音頻”和“MIDI”只是使這些標(biāo)識(shí)碼相互區(qū)別。這些標(biāo)識(shí)碼可使用其它術(shù)語(yǔ)。傳輸率碼TRD相應(yīng)于控制數(shù)據(jù)碼。
鍵盤174a和踏板174e起操縱器的作用,傳感器陣列176相應(yīng)于音樂(lè)數(shù)據(jù)發(fā)生器。萬(wàn)一數(shù)據(jù)-聲音發(fā)生器由個(gè)人計(jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn),計(jì)算機(jī)鍵盤就起操縱器的作用。
權(quán)利要求
1.一種音頻系統(tǒng),用于再現(xiàn)與另一首樂(lè)曲重奏的一首樂(lè)曲,所述系統(tǒng)包括第一數(shù)據(jù)源(120/140),有用于存儲(chǔ)一組第一音樂(lè)數(shù)據(jù)碼的第一存儲(chǔ)空間,一組第一音樂(lè)數(shù)據(jù)碼表示所述樂(lè)曲,響應(yīng)表示數(shù)據(jù)傳輸率的控制信號(hào)(CL1)從所述第一存儲(chǔ)空間傳送所述第一音樂(lè)數(shù)據(jù)碼;第二數(shù)據(jù)源(130/140),有用于存儲(chǔ)一組第二音樂(lè)數(shù)據(jù)碼的第二存儲(chǔ)空間,格式與所述的一組第一音樂(lè)數(shù)據(jù)碼不同,一組第二音樂(lè)數(shù)據(jù)碼表示輔助的另一首樂(lè)曲,響應(yīng)控制信號(hào)從所述第二存儲(chǔ)空間傳送所述第二音樂(lè)數(shù)據(jù)碼;和數(shù)據(jù)-聲音轉(zhuǎn)換器(100),用于根據(jù)所述第一音樂(lè)數(shù)據(jù)碼和所述第二音樂(lè)數(shù)據(jù)碼分別產(chǎn)生第一類聲音和第二類聲音;其特征在于,所述系統(tǒng)還包括重奏控制器(110),連接到所述第一數(shù)據(jù)源(120/140)、所述第二數(shù)據(jù)源(130/140)和所述數(shù)據(jù)-聲音轉(zhuǎn)換器(100),有數(shù)據(jù)處理能力并通過(guò)數(shù)據(jù)處理將所述控制信號(hào)提供給所述第一數(shù)據(jù)源(120/140)和所述第二數(shù)據(jù)源(130/140),以用于所述一組第二音樂(lè)數(shù)據(jù)碼的第二數(shù)據(jù)傳輸率均衡用于所述一組第一音樂(lè)數(shù)據(jù)碼的第一數(shù)據(jù)傳輸率。
2.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),其中,所述控制信號(hào)是時(shí)鐘信號(hào)(CL1),它有表示所述第一和第二數(shù)據(jù)傳輸率的頻率。
3.根據(jù)權(quán)利要求2所述的音頻系統(tǒng),其中,從可變頻率發(fā)生器(112)輸出所述時(shí)鐘信號(hào)(CL1)。
4.根據(jù)權(quán)利要求2所述的音頻系統(tǒng),其中,所述一組第一音樂(lè)數(shù)據(jù)碼包含音頻數(shù)據(jù)碼和時(shí)間數(shù)據(jù)碼,音頻數(shù)據(jù)碼表示模擬音頻信號(hào)的瞬時(shí)不連續(xù)值,時(shí)間數(shù)據(jù)碼表示經(jīng)歷的時(shí)間并與所述數(shù)據(jù)碼混合,所述第一數(shù)據(jù)源(120/140)響應(yīng)所述時(shí)鐘信號(hào)(CL1)從所述第一存儲(chǔ)空間連續(xù)讀取所述音頻數(shù)據(jù)碼和所述時(shí)間數(shù)據(jù)碼,用于把所述第一音樂(lè)數(shù)據(jù)碼發(fā)送到所述重奏控制器(110)。
5.根據(jù)權(quán)利要求2所述的音頻系統(tǒng),其中,所述一組第二音樂(lè)數(shù)據(jù)碼包含事件碼和持續(xù)時(shí)間數(shù)據(jù)碼,事件碼表示音符事件,每個(gè)持續(xù)時(shí)間數(shù)據(jù)碼表示一個(gè)所述音符事件和下一音符事件,所述第二數(shù)據(jù)源用所述時(shí)鐘信號(hào)(CL1)對(duì)所述的一個(gè)所述音符事件和所述下一音符事件之間的時(shí)間周期計(jì)時(shí)。
6.根據(jù)權(quán)利要求2所述的音頻系統(tǒng),其中,所述第一和第二存儲(chǔ)空間均是在存儲(chǔ)裝置中建立的,從磁盤(130b/140)、光盤(120b)、磁帶和半導(dǎo)體存儲(chǔ)器選擇存儲(chǔ)裝置。
7.根據(jù)權(quán)利要求2所述的音頻系統(tǒng),其中,所述一組第一音樂(lè)數(shù)據(jù)碼包含音頻數(shù)據(jù)碼和時(shí)間數(shù)據(jù)碼,音頻數(shù)據(jù)碼表示模擬音頻信號(hào)的瞬時(shí)不連續(xù)值,時(shí)間數(shù)據(jù)碼表示經(jīng)歷的時(shí)間并與所述數(shù)據(jù)碼混合,其中,所述一組第二音樂(lè)數(shù)據(jù)碼包含事件碼和持續(xù)時(shí)間數(shù)據(jù)碼,事件碼表示音符事件,持續(xù)時(shí)間數(shù)據(jù)碼均表示一個(gè)所述音符事件和下一音符事件,其中,所述第一數(shù)據(jù)源(120/140)響應(yīng)所述時(shí)鐘信號(hào)(CL1),從所述第一存儲(chǔ)空間連續(xù)讀取所述音頻數(shù)據(jù)碼和所述時(shí)間數(shù)據(jù)碼,用于把所述一組第一音樂(lè)數(shù)據(jù)碼發(fā)送到所述重奏控制器,所述第二數(shù)據(jù)源(130/140)用所述時(shí)鐘信號(hào)(CL1)對(duì)所述的一個(gè)所述音符事件和所述下一音符事件之間的時(shí)間周期計(jì)時(shí)。
8.根據(jù)權(quán)利要求7所述的音頻系統(tǒng),其中,所述第一和第二數(shù)據(jù)源均有在存儲(chǔ)裝置中建立的所述第一和第二存儲(chǔ)空間,從由磁盤(130b/140)、光盤(120b)、磁帶和半導(dǎo)體存儲(chǔ)器組成的組中選擇存儲(chǔ)裝置。
9.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),其中,把第一標(biāo)識(shí)碼(AID)和第二標(biāo)識(shí)碼(MID)分別分配給所述一組第一音樂(lè)數(shù)據(jù)碼和所述第二組音樂(lè)數(shù)據(jù)碼,所述第一標(biāo)識(shí)碼(AID)和所述第二標(biāo)識(shí)碼(MID)選擇性地存儲(chǔ)在所述第一存儲(chǔ)空間和所述第二存儲(chǔ)空間中,使得所述一組第一音樂(lè)數(shù)據(jù)碼和所述一組第二音樂(lè)數(shù)據(jù)碼關(guān)聯(lián)。
10.根據(jù)權(quán)利要求9所述的音頻系統(tǒng),其中,表示所述控制信號(hào)屬性的控制數(shù)據(jù)碼(TRD)還存儲(chǔ)在所述第一和第二存儲(chǔ)空間的至少一個(gè)存儲(chǔ)空間中。
11.根據(jù)權(quán)利要求10所述的音頻系統(tǒng),其中,所述屬性是所述控制信號(hào)的頻率。
12.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),其中,所述數(shù)據(jù)-聲音轉(zhuǎn)換器(100)包含聲音系統(tǒng)(100b),用于把根據(jù)所述一組第一音樂(lè)數(shù)據(jù)碼產(chǎn)生的第一模擬音頻信號(hào)轉(zhuǎn)換為所述第一類聲音的第一音調(diào),和把根據(jù)所述一組第二音樂(lè)數(shù)據(jù)碼產(chǎn)生的第二模擬音頻信號(hào)轉(zhuǎn)換為所述第二類聲音的第二音調(diào)。
13.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),其中,所述數(shù)據(jù)-聲音轉(zhuǎn)換器(100)包含音調(diào)發(fā)生器(160/178),用于把事件碼轉(zhuǎn)換所述第二類聲音的音調(diào),事件碼表示音符事件且包括在所述一組第二音樂(lè)數(shù)據(jù)碼中。
14.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),其中,所述數(shù)據(jù)-聲音轉(zhuǎn)換器(100)包含控制器(170)、非電聲樂(lè)器(174)和傳動(dòng)器(172),控制器(170)用于根據(jù)表示音符事件且包括在所述一組第二音樂(lè)數(shù)據(jù)碼中的事件碼產(chǎn)生驅(qū)動(dòng)信號(hào),傳動(dòng)器(172)響應(yīng)所述驅(qū)動(dòng)信號(hào),從所述非電聲樂(lè)器(174)產(chǎn)生所述第二類聲音的非電聲音調(diào)。
15.根據(jù)權(quán)利要求14所述的音頻系統(tǒng),其中,所述非電聲樂(lè)器是鋼琴(174)。
16.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),其中,所述數(shù)據(jù)-聲音轉(zhuǎn)換器包含聲音系統(tǒng)(100b),用于把根據(jù)所述一組第一音樂(lè)數(shù)據(jù)碼產(chǎn)生的第一模擬音頻信號(hào)轉(zhuǎn)換為所述第一類聲音的第一音調(diào);控制器(170),用于根據(jù)表示音符事件且包括在所述一組第二音樂(lè)數(shù)據(jù)碼中的事件碼產(chǎn)生驅(qū)動(dòng)信號(hào);非電聲樂(lè)器(174);和傳動(dòng)器(172),響應(yīng)所述驅(qū)動(dòng)信號(hào),從所述非電聲樂(lè)器(174)產(chǎn)生所述第二類聲音的非電聲音調(diào)。
17.根據(jù)權(quán)利要求16所述的音頻系統(tǒng),其中,所述數(shù)據(jù)-聲音轉(zhuǎn)換器(100)還包含音調(diào)發(fā)生器(160/178),用于把所述事件碼轉(zhuǎn)換為所述第二類聲音的電子音調(diào)。
18.根據(jù)權(quán)利要求16所述的音頻系統(tǒng),其中,所述非電聲樂(lè)器是鋼琴(174)。
19.根據(jù)權(quán)利要求1所述的音頻系統(tǒng),還包括操縱器(174a/174e),由用戶選擇性地操縱,用操縱器識(shí)別要產(chǎn)生的所述第二類聲音的音調(diào),和音樂(lè)數(shù)據(jù)發(fā)生器(176),監(jiān)控所述操縱器(174a/174e),并把表示所述第二類的所述音調(diào)的檢測(cè)信號(hào)提供給所述重奏控制器,其中,所述重奏控制器(110)通過(guò)另一數(shù)據(jù)處理根據(jù)所述檢測(cè)信號(hào)產(chǎn)生所述一組第二音樂(lè)數(shù)據(jù)碼,用于把所述一組第二音樂(lè)數(shù)據(jù)碼存儲(chǔ)在所述第二存儲(chǔ)空間中。
20.根據(jù)權(quán)利要求19所述的音頻系統(tǒng),其中,所述用戶在以下條件下選擇性地操縱所述操縱器(174a/174e)所述重奏控制器(110)使所述第一數(shù)據(jù)源(120/140)響應(yīng)所述控制信號(hào)(CL1)讀取所述一組第一音樂(lè)數(shù)據(jù)碼,用于從所述數(shù)據(jù)-聲音轉(zhuǎn)換器(100)產(chǎn)生所述第一類聲音。
21.根據(jù)權(quán)利要求20所述的音頻系統(tǒng),其中,所述重奏控制器(110)把表示所述控制信號(hào)(CL1)的屬性的控制數(shù)據(jù)碼存儲(chǔ)在所述第二存儲(chǔ)空間中,與所述一組第二音樂(lè)數(shù)據(jù)碼關(guān)聯(lián)。
22.根據(jù)權(quán)利要求21所述的音頻系統(tǒng),其中,所述重奏控制器(110)還把第一標(biāo)識(shí)碼(AID)和第二標(biāo)識(shí)碼(MID)存儲(chǔ)在所述第二存儲(chǔ)空間中,用于把所述一組第一音樂(lè)數(shù)據(jù)碼與所述一組第二音樂(lè)數(shù)據(jù)碼相互關(guān)聯(lián),第一標(biāo)識(shí)碼(AID)表示所述一組第二音樂(lè)數(shù)據(jù)碼,第二標(biāo)識(shí)碼(MID)表示所述一組第一音樂(lè)數(shù)據(jù)碼。
全文摘要
重奏控制器(110)把MIDI樂(lè)器(174)上的演奏記錄在MIDI文件(mf)的數(shù)據(jù)字段(md)中,同時(shí)同步重放存儲(chǔ)在激光唱片播放器(120)中的樂(lè)曲,數(shù)據(jù)讀取速度與分配給所再現(xiàn)的樂(lè)曲的音頻標(biāo)識(shí)碼(AID)一起存儲(chǔ)在MIDI文件(mf)的控制數(shù)據(jù)字段(mc)中;當(dāng)與重放樂(lè)曲同步再現(xiàn)演奏時(shí),重奏控制器(110)把時(shí)鐘信號(hào)(CL1)調(diào)節(jié)為相應(yīng)于數(shù)據(jù)讀取速度的頻率;重奏控制器(110)使合成設(shè)備(100)再現(xiàn)重奏時(shí),磁盤驅(qū)動(dòng)器(130a)用相同頻率的時(shí)鐘信號(hào)對(duì)事件碼的數(shù)據(jù)發(fā)送之間的時(shí)間間隔進(jìn)行計(jì)時(shí);這導(dǎo)致了完美的重奏。
文檔編號(hào)G10H7/02GK1450526SQ0312860
公開(kāi)日2003年10月22日 申請(qǐng)日期2003年3月25日 優(yōu)先權(quán)日2002年3月25日
發(fā)明者古川令 申請(qǐng)人:雅馬哈株式會(huì)社