專利名稱:一種基于midi文件的樂(lè)器演奏提示和檢測(cè)系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)系統(tǒng)及方法,能夠通過(guò)MIDI技術(shù)實(shí)時(shí)跟蹤提示演奏進(jìn)度,并通過(guò)比較演奏樂(lè)音的數(shù)字音頻信號(hào)與MIDI文件回放的數(shù)字音頻信號(hào)以檢測(cè)演奏效果。
背景技術(shù):
音樂(lè)藝術(shù)作為人類精神文明的一部分,一直以來(lái)為人們帶來(lái)精神生活的享受,陶冶人們的情操。而樂(lè)器演奏作為音樂(lè)系統(tǒng)的一個(gè)重要組成部分,也是人們進(jìn)行音樂(lè)藝術(shù)活動(dòng)的一個(gè)重要方面。然而社會(huì)上很大一部分接觸樂(lè)器演奏的人群,都屬于業(yè)余愛好者,對(duì)他們來(lái)說(shuō),如何利用有限的時(shí)間,基本的演奏技巧達(dá)到成功演奏出較多比較復(fù)雜的樂(lè)曲作品的目的才是最實(shí)際的。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,音樂(lè)的電子化對(duì)音樂(lè)藝術(shù)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響。尤其是MIDI技術(shù)的產(chǎn)生和發(fā)展,給傳統(tǒng)音樂(lè)技術(shù)帶來(lái)了巨大的變化。
MIDI是音樂(lè)信號(hào)在電子發(fā)聲設(shè)備之間傳輸?shù)臉?biāo)準(zhǔn),具體來(lái)說(shuō)就是樂(lè)器和計(jì)算機(jī)使用的標(biāo)準(zhǔn)語(yǔ)言,是一套指令;它指示樂(lè)器即MIDI設(shè)備演奏音符、加大音量、生成音響效果等。MIDI傳送的不是聲音信號(hào),而是發(fā)給MIDI設(shè)備或其它裝置讓它產(chǎn)生聲音或執(zhí)行某個(gè)動(dòng)作的指令信號(hào)。因此MIDI格式的音樂(lè)文件是記錄音樂(lè)的全部樂(lè)譜和演奏的全過(guò)程的。通過(guò)音源和音序器,MIDI格式的音樂(lè)文件可以用電子合成的方式重新播放出來(lái)。而且,由于文件記錄的是指令信息,故能很容易編輯樂(lè)曲和再現(xiàn)樂(lè)譜。
對(duì)非職業(yè)演奏者來(lái)說(shuō),絕不會(huì)樂(lè)意熟記復(fù)雜冗長(zhǎng)的樂(lè)譜。在卡拉OK流行的這個(gè)年代,若能將樂(lè)器演奏也做成卡拉OK的形式,將解決樂(lè)器演奏愛好者的一大難題。
另一方面與歌唱不同,樂(lè)器演奏追求的是盡量接近原曲,而作為演奏者來(lái)說(shuō)要集中精神演奏的同時(shí)注意自己的演奏效果是很困難的,若能讓設(shè)備來(lái)評(píng)價(jià)演奏效果應(yīng)該是個(gè)不錯(cuò)的解決辦法。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)系統(tǒng),主要功能是一、通過(guò)需演奏樂(lè)曲的MIDI文件再現(xiàn)演奏樂(lè)譜并根據(jù)演奏進(jìn)度滾動(dòng)和著色或標(biāo)記后將樂(lè)譜輸出到顯示終端;二、演奏過(guò)程中實(shí)時(shí)顯示演奏中出錯(cuò)的位置;三、在一曲結(jié)束后打印整曲樂(lè)譜(經(jīng)過(guò)錯(cuò)誤標(biāo)記的)。
本發(fā)明的另一目的是提供一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)方法。
實(shí)現(xiàn)上述發(fā)明目的一所采用的技術(shù)方案如下一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)系統(tǒng),主要包括控制模塊、存儲(chǔ)器、樂(lè)譜字幕制作模塊、播放模塊、檢測(cè)模塊、音頻輸入裝置、顯示裝置、音頻輸出裝置和外部存儲(chǔ)器;上述控制模塊是本系統(tǒng)的主控設(shè)備,它負(fù)責(zé)接收并處理上一級(jí)的操作信號(hào),根據(jù)處理結(jié)果對(duì)上述存儲(chǔ)器、樂(lè)譜字幕制作模塊、播放模塊及檢測(cè)模塊發(fā)出相應(yīng)控制信號(hào),同時(shí)在整個(gè)工作流程中負(fù)責(zé)各設(shè)備的指揮協(xié)調(diào)工作;上述存儲(chǔ)器用來(lái)存儲(chǔ)樂(lè)曲相關(guān)文件伴奏的音視頻文件、MIDI文件、有進(jìn)度跟蹤功能的樂(lè)譜字幕、文本樂(lè)譜字幕、樂(lè)譜文本字幕副本;上述樂(lè)譜字幕制作模塊根據(jù)MIDI文件的固定結(jié)構(gòu)和存儲(chǔ)器中樂(lè)曲相關(guān)文件的存儲(chǔ)情況,生成文本樂(lè)譜字幕、文本樂(lè)譜字幕副本、跟蹤樂(lè)譜字幕中的單個(gè)或全部文件;上述播放模塊主要包括伴奏播放模塊和字幕播放模塊;上述檢測(cè)模塊主要包括檢測(cè)及標(biāo)記模塊、MIDI回放裝置、A→D變換裝置。
所述跟蹤樂(lè)譜字幕文件中樂(lè)譜信息的顯示規(guī)則主要是一、根據(jù)顯示終端的規(guī)格,規(guī)定樂(lè)譜文本每行顯示的長(zhǎng)度;二、屏幕同時(shí)顯示兩行樂(lè)譜文本,其中,跟蹤進(jìn)度時(shí),當(dāng)染色完畢首行樂(lè)譜文本后,此行文本將隱去,同時(shí)第二行樂(lè)譜文本上升為首行樂(lè)譜文本,緊隨其后的下一行樂(lè)譜文本將讀入到顯示第二行樂(lè)譜的位置;如此循環(huán)直到樂(lè)曲結(jié)束。
樂(lè)譜字幕制作模塊根據(jù)MIDI文件的固定結(jié)構(gòu),重現(xiàn)MIDI文件中記錄的音符信號(hào)的演奏序列和演奏效果標(biāo)記,并按照通用樂(lè)譜的格式轉(zhuǎn)換成文本字幕,寫入到存儲(chǔ)器中,即為上述文本樂(lè)譜字幕;若文本樂(lè)譜字幕存在且文本樂(lè)譜字幕副本不存在,故將文本樂(lè)譜字幕復(fù)制一份,即為上述文本樂(lè)譜字幕副本,用于進(jìn)行錯(cuò)誤標(biāo)記并在樂(lè)曲結(jié)束時(shí)輸出;通過(guò)計(jì)時(shí)等方法,分析MIDI文件中記錄的各音素發(fā)聲時(shí)間,對(duì)進(jìn)度進(jìn)行準(zhǔn)確定位并以實(shí)時(shí)染色或標(biāo)記等方式表現(xiàn)在樂(lè)譜字幕上,實(shí)現(xiàn)進(jìn)度跟蹤的功能,并把該有進(jìn)度跟蹤效果的樂(lè)譜字幕文件寫入到存儲(chǔ)器,即為上述跟蹤樂(lè)譜字幕。
上述播放模塊在控制模塊發(fā)出開始播放信號(hào)后,若樂(lè)曲存在伴奏音視頻文件,伴奏播放模塊將從存儲(chǔ)器中讀取伴奏音視頻文件,并將其中的音頻、視頻數(shù)據(jù)分別輸出到音頻輸出裝置和顯示裝置;同時(shí)字幕播放模塊將從存儲(chǔ)器中讀取跟蹤樂(lè)譜字幕文件,以一定規(guī)則輸出到顯示裝置;當(dāng)樂(lè)曲播放結(jié)束,根據(jù)播放結(jié)束的信號(hào),控制模塊對(duì)字幕播放模塊發(fā)出指令,要求其讀取存儲(chǔ)器中經(jīng)過(guò)標(biāo)記的文本樂(lè)譜字幕副本,輸出到顯示裝置。
所述檢測(cè)模塊的工作過(guò)程是演奏者樂(lè)器演奏發(fā)出的聲波由音頻輸入裝置(如麥克風(fēng))輸入,輸入的模擬音頻信號(hào)到達(dá)A→D變換裝置,A→D變換裝置將模擬音頻信號(hào)轉(zhuǎn)換為數(shù)字音頻信號(hào);同時(shí),MIDI回放裝置從存儲(chǔ)器中讀入的MIDI文件,回放裝置將MIDI文件的音樂(lè)記錄回放成數(shù)字音頻信號(hào);比較及標(biāo)記模塊對(duì)上述兩段數(shù)字音頻信號(hào)流進(jìn)行比較,按一定的規(guī)則,確定錯(cuò)誤是否發(fā)生;若確定錯(cuò)誤發(fā)生,對(duì)在顯示裝置輸出的樂(lè)譜字幕,比較及標(biāo)記模塊將在上述錯(cuò)誤發(fā)生的位置進(jìn)行標(biāo)記;若確定錯(cuò)誤發(fā)生,比較及標(biāo)記模塊將對(duì)存儲(chǔ)器中文本樂(lè)譜字幕副本進(jìn)行改寫,使錯(cuò)誤位置的標(biāo)記寫入到文本樂(lè)譜字幕副本中。
實(shí)現(xiàn)發(fā)明目的二所采用的技術(shù)方案如下一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)方法,其特征是本發(fā)明方法包括以下步驟a.根據(jù)MIDI文件規(guī)定的音符信號(hào),控制信號(hào)的對(duì)應(yīng)關(guān)系,還原出通用樂(lè)譜(五線譜、簡(jiǎn)譜等),同時(shí)根據(jù)記錄的音素的發(fā)聲時(shí)間,以染色或標(biāo)記的效果做出字幕的跟蹤進(jìn)度效果;b.在使用者發(fā)出開始演奏的指令后,以一定規(guī)則輸出有跟蹤進(jìn)度效果的樂(lè)譜文件,以達(dá)到提示演奏的效果;c.通過(guò)麥克風(fēng)等音頻輸入裝置,獲取演奏者演奏所發(fā)出的音頻信號(hào)并將捕獲的模擬音頻信號(hào)轉(zhuǎn)換為數(shù)字信號(hào);d.在接收到開始演奏的信號(hào)后,對(duì)原樂(lè)曲的MIDI文件進(jìn)行回放,得出數(shù)字音頻信號(hào);e.按一定規(guī)則比較兩段信號(hào);f.對(duì)樂(lè)譜進(jìn)行錯(cuò)誤標(biāo)記并實(shí)時(shí)顯示在終端上同時(shí)記錄到存儲(chǔ)器的另一樂(lè)譜文件副本中;g.演奏結(jié)束后在顯示終端輸出經(jīng)過(guò)錯(cuò)誤標(biāo)記的樂(lè)譜文件副本。
本發(fā)明的有益效果是對(duì)多樂(lè)器演奏的樂(lè)曲,只要擁有演奏者需要演奏的樂(lè)器的MIDI文件,就可以自動(dòng)產(chǎn)生有進(jìn)度跟蹤提示效果的演奏樂(lè)譜字幕,若有其余樂(lè)器的MIDI文件或現(xiàn)成的伴奏音樂(lè)文件,可與樂(lè)譜字幕同步播放,使演奏者能享受多人合奏的效果。讓演奏者能在演奏過(guò)程中實(shí)時(shí)發(fā)現(xiàn)自己的演奏失誤從而做出調(diào)整。在演奏結(jié)束后進(jìn)一步了解演奏失誤的具體位置以便在下一次演奏中能注意避免犯錯(cuò)。
本發(fā)明容易普及,成本低。由于卡拉OK以在人們生活中普及了很長(zhǎng)一段時(shí)間,人們對(duì)此種類似于卡拉OK的演奏提示系統(tǒng)會(huì)更容易接受。而檢測(cè)系統(tǒng)可以看作為一種教學(xué)系統(tǒng),對(duì)演奏者演奏水平的自我提高功效顯著。另外由于本發(fā)明結(jié)構(gòu)并不復(fù)雜,而且其中應(yīng)用的一些功能模塊與家庭現(xiàn)有的多媒體裝置相似,所以可以輕易地應(yīng)用在家庭的數(shù)字電視機(jī)頂盒、多媒體播放機(jī)等裝置上。
圖1是本發(fā)明系統(tǒng)的一個(gè)整體結(jié)構(gòu)框圖;圖2是樂(lè)譜字幕制作模塊在系統(tǒng)中與其它各功能部件的具體關(guān)系示意圖;圖3是播放模塊的結(jié)構(gòu)及在系統(tǒng)中與其它各功能部件的具體關(guān)系示意圖;圖4是檢測(cè)模塊的結(jié)構(gòu)及在系統(tǒng)中與其它各功能部件的具體關(guān)系示意圖;圖5為本發(fā)明的主要控制流程圖;圖6為本發(fā)明中關(guān)于樂(lè)曲播放的主要流程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
圖1為本發(fā)明系統(tǒng)的一個(gè)具體實(shí)施例的整體結(jié)構(gòu)框圖。由圖1所示,本系統(tǒng)主要包括控制模塊10、存儲(chǔ)器11、樂(lè)譜字幕制作模塊12、播放模塊13和檢測(cè)模塊14。另外,還包括音頻輸入裝置15、顯示裝置16、音頻輸出裝置17和外部存儲(chǔ)器18;上述存儲(chǔ)器11是實(shí)現(xiàn)方案中用來(lái)存儲(chǔ)的樂(lè)曲相關(guān)文件的存儲(chǔ)介質(zhì)。樂(lè)曲相關(guān)文件主要包括5部分伴奏的音視頻文件111、MIDI文件112、有進(jìn)度跟蹤功能的樂(lè)譜字幕113、文本樂(lè)譜字幕114、文本樂(lè)譜字幕副本115。其中MIDI文件112為必需文件,伴奏的音視頻文件111為非必需文件。樂(lè)譜跟蹤字幕文件113、樂(lè)譜文本字幕文件114和樂(lè)譜文本字幕副本文件115雖然是本實(shí)現(xiàn)方案的必須文件,但由于能在本方法中生成,故也屬于非必需文件。
上述控制模塊10為本實(shí)現(xiàn)方案的主控設(shè)備,它負(fù)責(zé)接收并處理上一級(jí)的操作信號(hào),根據(jù)處理結(jié)果對(duì)上述存儲(chǔ)器11、樂(lè)譜字幕制作模塊12、播放模塊13及檢測(cè)模塊14發(fā)出相應(yīng)控制信號(hào);同時(shí)在整個(gè)工作流程中負(fù)責(zé)各設(shè)備的指揮協(xié)調(diào)工作。
根據(jù)控制流程(參見圖5)步驟S1,在控制模塊10啟動(dòng)后,一直到結(jié)束,負(fù)責(zé)了控制流程及播放流程(參見圖6)中幾乎所有的控制操作。
其進(jìn)行的主要操作有a.控制模塊10可以響應(yīng)由用戶或上一級(jí)控制部件發(fā)出的指令,包括啟動(dòng),結(jié)束,播放,停止播放等。
b.控制模塊10對(duì)存儲(chǔ)器11中的樂(lè)曲數(shù)據(jù)進(jìn)行檢測(cè),判定該樂(lè)曲數(shù)據(jù)是否要求的樂(lè)曲數(shù)據(jù)。若否,對(duì)存儲(chǔ)器11發(fā)出從外部存儲(chǔ)介質(zhì)讀寫數(shù)據(jù)的操作信號(hào)。見控制流程(參見圖5)步驟S5、S6。
c.對(duì)存儲(chǔ)器11中的樂(lè)曲數(shù)據(jù)進(jìn)行檢測(cè),判定該樂(lè)曲數(shù)據(jù)是否完整。根據(jù)上述對(duì)樂(lè)曲數(shù)據(jù)完整性的檢測(cè)結(jié)果,對(duì)樂(lè)譜字幕制作模塊12發(fā)出工作指令。見控制流程步驟S7、S8。
d.在控制流程及播放流程中,在需要的時(shí)候?qū)Υ鎯?chǔ)器11發(fā)出控制信號(hào),使其對(duì)樂(lè)譜字幕制作模塊12、播放模塊13及檢測(cè)模塊14進(jìn)行數(shù)據(jù)讀寫操作,以滿足上述設(shè)備的讀寫數(shù)據(jù)要求。
e.當(dāng)用戶發(fā)出播放命令并且存儲(chǔ)器11中樂(lè)曲數(shù)據(jù)匹配要求樂(lè)曲且需要的文件完整,控制模塊10發(fā)出指令,將播放模塊13和檢測(cè)模塊14置于就緒狀態(tài)。見播放流程(參見圖6)的P1步驟。發(fā)送檢測(cè)信號(hào),通過(guò)反饋信息,確定播放過(guò)程中涉及的各設(shè)備已全部就緒。見播放流程的P2步驟。
f.在確認(rèn)各設(shè)備就緒的前提下,控制模塊10對(duì)播放模塊13的伴奏播放模塊131、字幕播放模塊132和檢測(cè)模塊14的MIDI回放設(shè)備142、檢測(cè)及標(biāo)記模塊141進(jìn)行同步操作。見播放流程(參見圖6)的P4步驟。
g.在確保播放模塊13的伴奏播放模塊131、字幕播放模塊132和檢測(cè)模塊14的MIDI回放設(shè)備142、檢測(cè)及標(biāo)記模塊141進(jìn)行工作同步的前提下,控制模塊10對(duì)上述伴奏播放模塊131、字幕播放模塊132和MIDI回放設(shè)備142發(fā)出開始播放指令;同時(shí)控制模塊10對(duì)檢測(cè)模塊14中檢測(cè)及標(biāo)記模塊141和A→D變換模塊143發(fā)出開始工作指令。見播放流程(參見圖6)中P5、P6、P7步驟。
h.在接收到樂(lè)曲播放完畢的信號(hào)后,對(duì)字幕播放模塊發(fā)出從讀取并輸出存儲(chǔ)器11中經(jīng)過(guò)標(biāo)記的文本樂(lè)譜字幕副本115的指令。見播放流程(參見圖6)步驟P9,P10。
i.在接收到退出的信號(hào)后,控制模塊10對(duì)存儲(chǔ)器11中的文本樂(lè)譜字幕副本115執(zhí)行刪除操作,對(duì)播放模塊13、檢測(cè)模塊14及其下屬的各子模塊發(fā)出停止工作的指令。見播放流程(參見圖6)P12、P13。
j.若在播放過(guò)程中接收到用戶發(fā)出的停止播放的信號(hào)后,控制模塊10對(duì)各功能模塊發(fā)出暫停工作信號(hào),并執(zhí)行上述在接收到退出的信號(hào)后所進(jìn)行的相應(yīng)操作。見播放流程(參見圖6)P8、P12、P13。
圖2為本發(fā)明的實(shí)現(xiàn)方案中樂(lè)譜字幕制作模塊12在整個(gè)系統(tǒng)中的工作環(huán)境及與控制模塊10、存儲(chǔ)器11間的主要關(guān)聯(lián)操作。根據(jù)控制流程(參見圖5)步驟S7,若存儲(chǔ)器11中樂(lè)曲數(shù)據(jù)不包括樂(lè)譜跟蹤字幕文件113和樂(lè)譜文本字幕文件114,則轉(zhuǎn)到步驟S8,控制器10發(fā)出指令,啟動(dòng)本模塊即上述樂(lè)譜字幕制作模塊12。
本模塊進(jìn)行的主要操作有a.根據(jù)MIDI文件的固定結(jié)構(gòu),重現(xiàn)MIDI文件112中記錄的音符信號(hào)的演奏序列和演奏效果標(biāo)記,并按照通用樂(lè)譜的格式轉(zhuǎn)換成文本字幕,寫入到存儲(chǔ)器11中,即為上述文本樂(lè)譜字幕114。
b.若文本樂(lè)譜字幕114存在且文本樂(lè)譜字幕副本115不存在,故將文本樂(lè)譜字幕114復(fù)制一份,即為上述文本樂(lè)譜字幕副本115,用于進(jìn)行錯(cuò)誤標(biāo)記并在樂(lè)曲結(jié)束時(shí)輸出。
c.通過(guò)計(jì)時(shí)等方法,分析MIDI文件中記錄的各音素發(fā)聲時(shí)間,對(duì)進(jìn)度進(jìn)行準(zhǔn)確定位并以實(shí)時(shí)染色或標(biāo)記等方式表現(xiàn)在樂(lè)譜字幕上,實(shí)現(xiàn)進(jìn)度跟蹤的功能,并把該有進(jìn)度跟蹤效果的樂(lè)譜字幕文件寫入到存儲(chǔ)器11,即為上述跟蹤樂(lè)譜字幕113。
d.結(jié)束樂(lè)譜字幕制作模塊12的工作,控制流程轉(zhuǎn)到步驟S9。
圖3為本發(fā)明的實(shí)現(xiàn)方案中播放模塊13的詳細(xì)結(jié)構(gòu)、在整個(gè)實(shí)現(xiàn)方案中的工作環(huán)境及與控制模塊10、存儲(chǔ)器11間、音頻輸出裝置17、顯示裝置16的主要關(guān)聯(lián)操作。播放模塊13主要包括伴奏播放模塊131、字幕播放模塊132。
本模塊進(jìn)行的主要操作有
a.根據(jù)播放流程(參見圖6)P1,控制模塊10將本模塊13置于就緒狀態(tài)。
b.在控制模塊10發(fā)出開始播放信號(hào)后,若樂(lè)曲存在伴奏音視頻文件112,伴奏播放模塊131將從存儲(chǔ)器11中讀取伴奏音視頻文件112,并將其中的音頻、視頻數(shù)據(jù)分別輸出到音頻輸出設(shè)備和顯示設(shè)備;同時(shí)字幕播放模塊132將從存儲(chǔ)器11中讀取跟蹤樂(lè)譜字幕文件113,以一定規(guī)則①輸出到顯示設(shè)備。見播放流程步驟P5、P6。
c.當(dāng)樂(lè)曲播放結(jié)束,根據(jù)播放結(jié)束的信號(hào),控制模塊10對(duì)字幕播放模塊131發(fā)出指令,要求其讀取存儲(chǔ)器11中經(jīng)過(guò)標(biāo)記的文本樂(lè)譜字幕副本115,輸出到顯示設(shè)備。見播放流程步驟P9、P10。其中跟蹤樂(lè)譜字幕文件113中樂(lè)譜信息的顯示規(guī)則主要是一、根據(jù)顯示終端的規(guī)格,規(guī)定樂(lè)譜文本每行顯示的長(zhǎng)度;二、屏幕同時(shí)顯示兩行樂(lè)譜文本,其中,跟蹤進(jìn)度時(shí),當(dāng)染色完畢首行樂(lè)譜文本后,此行文本將隱去,同時(shí)第二行樂(lè)譜文本上升為首行樂(lè)譜文本,緊隨其后的下一行樂(lè)譜文本將讀入到顯示第二行樂(lè)譜的位置。如此循環(huán)直到樂(lè)曲結(jié)束。
圖4為本發(fā)明方法中檢測(cè)模塊14的詳細(xì)結(jié)構(gòu)、在整個(gè)系統(tǒng)中的工作環(huán)境及與控制模塊10、存儲(chǔ)器11、音頻輸入設(shè)備、顯示設(shè)備的主要關(guān)聯(lián)操作。檢測(cè)模塊14主要包括檢測(cè)及標(biāo)記模塊141、MIDI回放裝置142、A→D變換裝置143。
本模塊進(jìn)行的主要操作有a.根據(jù)播放流程(參見圖六)P1,控制模塊10將本模塊14置于就緒狀態(tài)。
b.根據(jù)控制模塊10發(fā)出開始播放信號(hào),本模塊開始工作。見播放流程步驟P7。
c.演奏者樂(lè)器演奏發(fā)出的聲波由音頻輸入設(shè)備(如麥克風(fēng)),輸入的模擬音頻信號(hào)到達(dá)A→D變換設(shè)備143,A→D變換設(shè)備143將模擬音頻信號(hào)轉(zhuǎn)換為數(shù)字音頻信號(hào)。
d.同時(shí),MIDI回放設(shè)備142從存儲(chǔ)器11中讀入的MIDI文件112,回放設(shè)備將MIDI文件的音樂(lè)記錄回放成數(shù)字音頻信號(hào)。
e.比較及標(biāo)記模塊141對(duì)上述兩段數(shù)字音頻信號(hào)流進(jìn)行比較,按一定的規(guī)則,確定錯(cuò)誤是否發(fā)生。
f.若確定錯(cuò)誤發(fā)生,對(duì)在顯示設(shè)備輸出的樂(lè)譜字幕,比較及標(biāo)記模塊141將在上述錯(cuò)誤發(fā)生的位置進(jìn)行標(biāo)記。
g.若確定錯(cuò)誤發(fā)生,比較及標(biāo)記模塊141將對(duì)存儲(chǔ)器11中文本樂(lè)譜字幕副本115進(jìn)行改寫,使錯(cuò)誤位置的標(biāo)記寫入到文本樂(lè)譜字幕副本115中。
如圖5所示,本系統(tǒng)的控制流程如下S1.將控制模塊10和存儲(chǔ)器11置于工作狀態(tài)。
S2.控制模塊10等待上一級(jí)的控制指令。
S3.若指令為退出,轉(zhuǎn)到S9結(jié)束;若否則轉(zhuǎn)到S4。
S4.若指令為播放某一曲目,控制模塊10發(fā)出檢驗(yàn)數(shù)據(jù)到存儲(chǔ)器,轉(zhuǎn)到S5;若否則返回繼續(xù)等待上一級(jí)的指令,轉(zhuǎn)到S2。
S5.若存儲(chǔ)器現(xiàn)存數(shù)據(jù)與要求曲目匹配則轉(zhuǎn)到S7;若否則轉(zhuǎn)到S6。
S6.由于不匹配是因?yàn)榇鎯?chǔ)器11中樂(lè)曲并非要求樂(lè)曲,控制模塊10對(duì)存儲(chǔ)器11發(fā)出從某一設(shè)備處讀寫指定數(shù)據(jù)的指令。讀取完畢轉(zhuǎn)到S7。
S7.檢測(cè)樂(lè)譜字幕是否已經(jīng)存在,若是則轉(zhuǎn)到S9,若否則轉(zhuǎn)到S8。
S8.若存儲(chǔ)器11中樂(lè)曲并未制作樂(lè)譜字幕,控制模塊10啟動(dòng)樂(lè)譜字幕制作模塊12并發(fā)出制作樂(lè)譜字幕的指令;若存儲(chǔ)器11中已制作樂(lè)譜字幕但缺文本樂(lè)譜字幕副本115,則將文本樂(lè)譜字幕114復(fù)制一份。轉(zhuǎn)到S6。
S9.控制模塊10發(fā)出指令到播放模塊13,進(jìn)入播放流程(參見圖六)。
S10.退出播放流程后控制模塊10對(duì)其余工作部件發(fā)出停止工作指令,轉(zhuǎn)到S2。
如圖6所示,本系統(tǒng)的播放流程為P1.根據(jù)控制模塊10的指令(播放存儲(chǔ)器中的樂(lè)曲),要求播放模塊13、檢測(cè)模塊14進(jìn)入工作狀態(tài)。
P2.控制模塊10發(fā)出檢測(cè)信號(hào),檢測(cè)播放模塊13、檢測(cè)模塊14及輸入輸出設(shè)備是否準(zhǔn)備就緒。
P3.若各工作設(shè)備已就緒,進(jìn)入步驟P4;若否則轉(zhuǎn)到步驟P2。
P4.同步播放模塊13與檢測(cè)模塊14的工作時(shí)間,具體涉及上述播放模塊13中伴奏播放模塊131、字幕播放模塊132與上述檢測(cè)模塊14中檢測(cè)及標(biāo)記模塊141、MIDI回放設(shè)備142這四個(gè)工作模塊的同步。
P5、P6、P7為同步進(jìn)行的步驟。
P5.伴奏播放模塊131進(jìn)行輸出。對(duì)伴奏文件中的音頻流通過(guò)音頻輸出設(shè)備進(jìn)行伴奏音頻輸出;對(duì)伴奏文件中的視頻流通過(guò)顯示設(shè)備進(jìn)行視頻輸出。
P6.通過(guò)字幕播放模塊132,對(duì)存儲(chǔ)器11中的跟蹤樂(lè)譜字幕113進(jìn)行播放,輸出到顯示設(shè)備。
P7.將檢測(cè)模塊14的檢測(cè)結(jié)果實(shí)時(shí)標(biāo)記在輸出的樂(lè)譜字幕中;同時(shí)對(duì)存儲(chǔ)器中的文本樂(lè)譜字幕副本115進(jìn)行寫操作,將標(biāo)記結(jié)果保存在該文件中。
P8.若播放過(guò)程中,控制模塊10無(wú)接收到來(lái)自用戶的停止播放的指令,在播放結(jié)束后進(jìn)入步驟P9;若用戶在播放過(guò)程中發(fā)出了停止播放的指令,控制模塊10暫停各設(shè)備的工作,流程轉(zhuǎn)到P12。
P9.樂(lè)曲播放結(jié)束,控制模塊10向伴奏播放模塊131及檢測(cè)模塊14發(fā)出停止工作信號(hào),同時(shí)向字幕播放模塊132發(fā)出指令,要求其讀取存儲(chǔ)器11中經(jīng)過(guò)標(biāo)記的文本樂(lè)譜字幕副本115。
P10.由字幕播放模塊132將文本樂(lè)譜字幕副本115,按一定規(guī)則輸出到顯示設(shè)備。
P11.等待用戶輸入,若是退出信號(hào)則進(jìn)入步驟P11,若否則重回步驟P9,重復(fù)輸出文本樂(lè)譜字幕副本115。
P12.刪除存儲(chǔ)器11中已經(jīng)過(guò)標(biāo)記的文本樂(lè)譜字幕副本115。
P13.播放流程結(jié)束,控制模塊10發(fā)出指令停止播放模塊13的工作,返回控制流程。
權(quán)利要求
1.一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)系統(tǒng),其特征是本系統(tǒng)主要包括控制模塊(10)、存儲(chǔ)器(11)、樂(lè)譜字幕制作模塊(12)、播放模塊(13)、檢測(cè)模塊(14)、音頻輸入裝置(15)、顯示裝置(16)、音頻輸出裝置(17)和外部存儲(chǔ)器(18);上述控制模塊(10)是本系統(tǒng)的主控設(shè)備,它負(fù)責(zé)接收并處理上一級(jí)的操作信號(hào),根據(jù)處理結(jié)果對(duì)上述存儲(chǔ)器(11)、樂(lè)譜字幕制作模塊(12)、播放模塊(13)及檢測(cè)模塊(14)發(fā)出相應(yīng)控制信號(hào),同時(shí)在整個(gè)工作流程中負(fù)責(zé)各設(shè)備的指揮協(xié)調(diào)工作;上述存儲(chǔ)器(11)用來(lái)存儲(chǔ)樂(lè)曲相關(guān)文件伴奏的音視頻文件(111)、MIDI文件(112)、有進(jìn)度跟蹤功能的樂(lè)譜字幕(113)、文本樂(lè)譜字幕(114)、樂(lè)譜文本字幕副本(115);上述樂(lè)譜字幕制作模塊(12)根據(jù)MIDI文件的固定結(jié)構(gòu)和存儲(chǔ)器(11)中樂(lè)曲相關(guān)文件的存儲(chǔ)情況,生成文本樂(lè)譜字幕(114)、文本樂(lè)譜字幕副本(115)、跟蹤樂(lè)譜字幕(113)中的單個(gè)或全部文件;上述播放模塊(13)主要包括伴奏播放模塊(131)和字幕播放模塊(132);上述檢測(cè)模塊(14)主要包括檢測(cè)及標(biāo)記模塊(141)、MIDI回放設(shè)備(142)、A→D變換裝置(143)。
2.根據(jù)權(quán)利要求1所述的樂(lè)器演奏提示和檢測(cè)系統(tǒng),其特征是所述跟蹤樂(lè)譜字幕文件(113)中樂(lè)譜信息的顯示規(guī)則主要是一、根據(jù)顯示終端的規(guī)格,規(guī)定樂(lè)譜文本每行顯示的長(zhǎng)度;二、屏幕同時(shí)顯示兩行樂(lè)譜文本,其中,跟蹤進(jìn)度時(shí),當(dāng)染色完畢首行樂(lè)譜文本后,此行文本將隱去,同時(shí)第二行樂(lè)譜文本上升為首行樂(lè)譜文本,緊隨其后的下一行樂(lè)譜文本將讀入到顯示第二行樂(lè)譜的位置;如此循環(huán)直到樂(lè)曲結(jié)束。
3.根據(jù)權(quán)利要求1所述的樂(lè)器演奏提示和檢測(cè)系統(tǒng),其特征是樂(lè)譜字幕制作模塊(12)根據(jù)MIDI文件的固定結(jié)構(gòu),重現(xiàn)MIDI文件(112)中記錄的音符信號(hào)的演奏序列和演奏效果標(biāo)記,并按照通用樂(lè)譜的格式轉(zhuǎn)換成文本字幕,寫入到存儲(chǔ)器(11)中,即為上述文本樂(lè)譜字幕(114);若文本樂(lè)譜字幕(114)存在且文本樂(lè)譜字幕副本(115)不存在,故將文本樂(lè)譜字幕(114)復(fù)制一份,即為上述文本樂(lè)譜字幕副本(115),用于進(jìn)行錯(cuò)誤標(biāo)記并在樂(lè)曲結(jié)束時(shí)輸出;通過(guò)計(jì)時(shí)等方法,分析MIDI文件中記錄的各音素發(fā)聲時(shí)間,對(duì)進(jìn)度進(jìn)行準(zhǔn)確定位并以實(shí)時(shí)染色或標(biāo)記等方式表現(xiàn)在樂(lè)譜字幕上,實(shí)現(xiàn)進(jìn)度跟蹤的功能,并把該有進(jìn)度跟蹤效果的樂(lè)譜字幕文件寫入到存儲(chǔ)器(11),即為上述跟蹤樂(lè)譜字幕(113)。
4.根據(jù)權(quán)利要求1所述的樂(lè)器演奏提示和檢測(cè)系統(tǒng),其特征是上述播放模塊(13)在控制模塊(10)發(fā)出開始播放信號(hào)后,若樂(lè)曲存在伴奏音視頻文件(112),伴奏播放模塊(131)將從存儲(chǔ)器(11)中讀取伴奏音視頻文件(112),并將其中的音頻、視頻數(shù)據(jù)分別輸出到音頻輸出裝置(17)和顯示裝置(16);同時(shí)字幕播放模塊(132)將從存儲(chǔ)器(11)中讀取跟蹤樂(lè)譜字幕文件(113),以一定規(guī)則輸出到顯示裝置(16);當(dāng)樂(lè)曲播放結(jié)束,根據(jù)播放結(jié)束的信號(hào),控制模塊(10)對(duì)字幕播放模塊(131)發(fā)出指令,要求其讀取存儲(chǔ)器(11)中經(jīng)過(guò)標(biāo)記的文本樂(lè)譜字幕副本(115),輸出到顯示裝置(16)。
5.根據(jù)權(quán)利要求1所述的樂(lè)器演奏提示和檢測(cè)系統(tǒng),其特征是所述檢測(cè)模塊(14)的工作過(guò)程是演奏者樂(lè)器演奏發(fā)出的聲波由音頻輸入裝置(15)(如麥克風(fēng))輸入,輸入的模擬音頻信號(hào)到達(dá)A→D變換裝置(143),A→D變換裝置(143)將模擬音頻信號(hào)轉(zhuǎn)換為數(shù)字音頻信號(hào);同時(shí),MIDI回放裝置(142)從存儲(chǔ)器(11)中讀入的MIDI文件(112),回放裝置將MIDI文件的音樂(lè)記錄回放成數(shù)字音頻信號(hào);比較及標(biāo)記模塊(141)對(duì)上述兩段數(shù)字音頻信號(hào)流進(jìn)行比較,按一定的規(guī)則,確定錯(cuò)誤是否發(fā)生;若確定錯(cuò)誤發(fā)生,對(duì)在顯示裝置輸出的樂(lè)譜字幕,比較及標(biāo)記模塊(141)將在上述錯(cuò)誤發(fā)生的位置進(jìn)行標(biāo)記;若確定錯(cuò)誤發(fā)生,比較及標(biāo)記模塊(141)將對(duì)存儲(chǔ)器(11)中文本樂(lè)譜字幕副本(115)進(jìn)行改寫,使錯(cuò)誤位置的標(biāo)記寫入到文本樂(lè)譜字幕副本(115)中。
6.一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)方法,其特征是本發(fā)明方法包括以下步驟a.根據(jù)MIDI文件規(guī)定的音符信號(hào),控制信號(hào)的對(duì)應(yīng)關(guān)系,還原出通用樂(lè)譜(五線譜、簡(jiǎn)譜等),同時(shí)根據(jù)記錄的音素的發(fā)聲時(shí)間,以染色或標(biāo)記的效果做出字幕的跟蹤進(jìn)度效果;b.在使用者發(fā)出開始演奏的指令后,以一定規(guī)則輸出有跟蹤進(jìn)度效果的樂(lè)譜文件,以達(dá)到提示演奏的效果;c.通過(guò)麥克風(fēng)等音頻輸入裝置,獲取演奏者演奏所發(fā)出的音頻信號(hào)并將捕獲的模擬音頻信號(hào)轉(zhuǎn)換為數(shù)字信號(hào);d.在接收到開始演奏的信號(hào)后,對(duì)原樂(lè)曲的MIDI文件進(jìn)行回放,得出數(shù)字音頻信號(hào);e.按一定規(guī)則比較兩段信號(hào);f.對(duì)樂(lè)譜進(jìn)行錯(cuò)誤標(biāo)記并實(shí)時(shí)顯示在終端上同時(shí)記錄到存儲(chǔ)器的另一樂(lè)譜文件副本中;g.演奏結(jié)束后在顯示終端輸出經(jīng)過(guò)錯(cuò)誤標(biāo)記的樂(lè)譜文件副本。
全文摘要
本發(fā)明公開一種基于MIDI文件的樂(lè)器演奏提示和檢測(cè)系統(tǒng)及方法,通過(guò)需演奏樂(lè)曲的MIDI文件再現(xiàn)演奏樂(lè)譜并根據(jù)演奏進(jìn)度滾動(dòng)和著色或標(biāo)記后將樂(lè)譜輸出到顯示終端,在演奏過(guò)程中實(shí)時(shí)顯示演奏中出錯(cuò)的位置,并在一曲結(jié)束后打印整曲樂(lè)譜(經(jīng)過(guò)錯(cuò)誤標(biāo)記的)。本發(fā)明系統(tǒng)主要由控制模塊10、存儲(chǔ)器11、樂(lè)譜字幕制作模塊12、播放模塊13、檢測(cè)模塊14組成,還包括音頻輸入裝置15、顯示裝置16、音頻輸出裝置17和外部存儲(chǔ)器18。本發(fā)明可以自動(dòng)產(chǎn)生有進(jìn)度跟蹤提示效果的演奏樂(lè)譜字幕,并且可與樂(lè)譜字幕同步播放,使演奏者能享受多人合奏的效果,演奏者還能在演奏過(guò)程中實(shí)時(shí)發(fā)現(xiàn)自己的演奏失誤從而做出調(diào)整。本發(fā)明容易普及,成本低。
文檔編號(hào)G10H1/36GK1953044SQ20061012243
公開日2007年4月25日 申請(qǐng)日期2006年9月26日 優(yōu)先權(quán)日2006年9月26日
發(fā)明者梁梓杰, 羅笑南 申請(qǐng)人:中山大學(xué)