樂器樂譜文件的播放方法、轉(zhuǎn)換方法、裝置及電子設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及樂器樂譜技術(shù)領(lǐng)域,尤其涉及一種樂器樂譜文件的播放方法、轉(zhuǎn)換方 法、裝置及電子設(shè)備。
【背景技術(shù)】
[0002] MusicXML(MusicExtensibleMarkupLanguage音樂擴(kuò)展標(biāo)記語言)是一個(gè)開放 的基于XML的音樂符號文件格式。它被設(shè)計(jì)用來做為樂譜信息的交換格式,特別是在不同 的樂譜顯示軟件的之間進(jìn)行交換。MusicXML將整體樂曲元素和屬性信息表示為一份XML文 檔,它克服了另外兩種格式一NIFF格式(基于圖片)和SMDL格式(過于龐大)的兼容 性差,結(jié)構(gòu)復(fù)雜等許多缺點(diǎn),目前已經(jīng)被很多應(yīng)用軟件支持。
[0003] MusicXML中,包括屬性結(jié)點(diǎn),共有超過600個(gè)結(jié)點(diǎn),這些結(jié)點(diǎn)用多個(gè)文件完成定 義,使得MusicXML文件較大而且結(jié)構(gòu)仍然較為復(fù)雜。在對MusicXML格式的樂譜文件進(jìn)行 音樂播放時(shí),需要先對MusicXML格式的樂譜文件進(jìn)行解析。由于MusicXML的仍然較為復(fù) 雜結(jié)構(gòu),使得解析效率較低,從而影響播放效率。
【發(fā)明內(nèi)容】
[0004] -方面,本發(fā)明實(shí)施例提供一種樂器樂譜文件的播放方法,能夠提高播放效率。
[0005] 所述樂器樂譜文件的播放方法,包括:
[0006] 對樂器樂譜文件進(jìn)行解析,得到音符標(biāo)識符和時(shí)值標(biāo)識符;其中,所述樂器樂譜文 件包括多個(gè)按演奏順序依次排列的音符信息,每個(gè)音符信息由表示樂器的一個(gè)音的音符標(biāo) 識符和表示這個(gè)音的長度的時(shí)值標(biāo)識符組成;
[0007] 根據(jù)所述音符標(biāo)識符,查找預(yù)先保存的與所述音符標(biāo)識符相對應(yīng)的樂器聲音文 件;
[0008] 將所述樂器聲音文件,按照所述時(shí)值標(biāo)識符所表示的長度進(jìn)行播放。
[0009] 可選地,所述對樂器樂譜文件進(jìn)行解析,得到音符標(biāo)識符和時(shí)值標(biāo)識符,包括:
[0010] 根據(jù)預(yù)定的音符標(biāo)識符和時(shí)值標(biāo)識符的組合規(guī)則,對樂器樂譜文件中的音符信息 進(jìn)行解析,得到該樂器樂譜文件的音符標(biāo)識符和時(shí)值標(biāo)識符。
[0011] 可選地,所述音符標(biāo)識符所表示的樂器的一個(gè)音,包括按照特殊演奏法所得到的 音。
[0012] 可選地,所述樂器樂譜文件為鋼琴樂譜文件;所述每個(gè)音符信息中的音符標(biāo)識符 表示鋼琴的至少一個(gè)按鍵發(fā)出的聲音。
[0013] 可選地,所述對樂器樂譜文件進(jìn)行解析,得到音符標(biāo)識符和時(shí)值標(biāo)識符,包括:
[0014] 根據(jù)預(yù)定的音符標(biāo)識符和時(shí)值標(biāo)識符的組合規(guī)則,對鋼琴樂譜文件中的音符信息 進(jìn)行解析,得到鋼琴樂譜文件的音符標(biāo)識符和時(shí)值標(biāo)識符;
[0015] 將得到的所述音符標(biāo)識符,與預(yù)先保存的鋼琴音符標(biāo)識符庫中的音符標(biāo)識符進(jìn)行 匹配,得到所述音符標(biāo)識符所對應(yīng)的鋼琴的按鍵;其中,在所述鋼琴音符標(biāo)識符庫中保存有 音符標(biāo)識符與鋼琴的按鍵之間的對應(yīng)關(guān)系。
[0016] 本發(fā)明實(shí)施例樂器樂譜文件的播放方法,所要播放的樂器樂譜文件包括多個(gè)按演 奏順序依次排列的音符信息,每個(gè)音符信息由表示樂器的一個(gè)音的音符標(biāo)識符和表示這個(gè) 音的長度的時(shí)值標(biāo)識符組成,這樣文件結(jié)構(gòu)相對簡單,解析效率較高,由此能夠提高播放效 率。
[0017]另一方面,本發(fā)明實(shí)施例提供一種樂器樂譜文件的播放裝置,能夠提高播放效率。 所述樂器樂譜文件的播放裝置,包括:
[0018] 解析模塊,用于對樂器樂譜文件進(jìn)行解析,得到音符標(biāo)識符和時(shí)值標(biāo)識符;其中, 所述樂器樂譜文件包括多個(gè)按演奏順序依次排列的音符信息,每個(gè)音符信息由表示樂器的 一個(gè)音的音符標(biāo)識符和表示這個(gè)音的長度的時(shí)值標(biāo)識符組成;
[0019]查找模塊,用于根據(jù)所述音符標(biāo)識符,查找預(yù)先保存的與所述音符標(biāo)識符相對應(yīng) 的樂器聲音文件;
[0020] 播放模塊,用于將所述樂器聲音文件,按照所述時(shí)值標(biāo)識符所表示的長度進(jìn)行播 放。
[0021] 可選地,所述解析模塊,用于根據(jù)預(yù)定的音符標(biāo)識符和時(shí)值標(biāo)識符的組合規(guī)則,對 樂器樂譜文件中的音符信息進(jìn)行解析,得到該樂器樂譜文件的音符標(biāo)識符和時(shí)值標(biāo)識符。
[0022] 可選地,所述音符標(biāo)識符所表示的樂器的一個(gè)音包括按照特殊演奏法所得到的 音。
[0023]可選地,所述樂器樂譜文件為鋼琴樂譜文件;所述每個(gè)音符信息中的音符標(biāo)識符 表示鋼琴的至少一個(gè)按鍵發(fā)出的聲音。
[0024] 可選地,所述解析模塊,包括:
[0025] 解析子模塊,根據(jù)預(yù)定的音符標(biāo)識符和時(shí)值標(biāo)識符的組合規(guī)則,對鋼琴樂譜文件 中的音符信息進(jìn)行解析,得到鋼琴樂譜文件的音符標(biāo)識符和時(shí)值標(biāo)識符;
[0026] 匹配子模塊,用于將得到的所述音符標(biāo)識符,與預(yù)先保存的鋼琴音符標(biāo)識符庫中 的音符標(biāo)識符進(jìn)行匹配,得到所述音符標(biāo)識符所對應(yīng)的鋼琴的按鍵;其中,在所述鋼琴音符 標(biāo)識符庫中保存有音符標(biāo)識符與鋼琴的按鍵之間的對應(yīng)關(guān)系。
[0027] 本發(fā)明實(shí)施例樂器樂譜文件的播放裝置,所要播放的樂器樂譜文件包括多個(gè)按演 奏順序依次排列的音符信息,每個(gè)音符信息由表示樂器的一個(gè)音的音符標(biāo)識符和表示這個(gè) 音的長度的時(shí)值標(biāo)識符組成,文件結(jié)構(gòu)相對簡單,解析效率較高,由此能夠提高播放效率。
[0028] 再一方面,本發(fā)明實(shí)施例提供一種對樂器樂譜文件的轉(zhuǎn)換方法,能夠簡化樂譜文 件結(jié)構(gòu),降低樂譜文件的大小。所述對樂器樂譜文件的轉(zhuǎn)換方法,包括:
[0029] 對樂器樂譜文件進(jìn)行解析,得到每個(gè)音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值 標(biāo)識符;其中,所述音符標(biāo)識符表示樂器的一個(gè)音,所述時(shí)值標(biāo)識符表示這個(gè)音的長度;
[0030] 將得到的音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,按照預(yù)定規(guī)則進(jìn)行 組合;
[0031] 將組合后的音符標(biāo)識符和時(shí)值標(biāo)識符,按照所述音符標(biāo)識符在所述樂器樂譜文件 中的演奏序列進(jìn)行排列,得到字符流格式的樂器樂譜文件。
[0032]可選地,所述對樂器樂譜文件進(jìn)行解析,得到音符標(biāo)識符和時(shí)值標(biāo)識符,包括:對MusicXML格式的樂器樂譜文件的note標(biāo)簽進(jìn)行解析,得到音符標(biāo)識符和時(shí)值標(biāo)識符。
[0033] 可選地,所述對MusicXML格式的樂器樂譜文件的note標(biāo)簽進(jìn)行解析,得到每個(gè) 音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,包括:對MusicXML格式的樂器樂譜文 件的note標(biāo)簽下的子標(biāo)簽進(jìn)行解析,得到音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo) 識符。
[0034] 本發(fā)明實(shí)施例對樂器樂譜文件的轉(zhuǎn)換方法,通過對樂器樂譜文件進(jìn)行解析,得到 每個(gè)音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,將得到的音符標(biāo)識符和與該音符 標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,按照預(yù)定規(guī)則進(jìn)行組合,將組合后的音符標(biāo)識符和時(shí)值標(biāo)識 符,按照所述音符標(biāo)識符在所述樂器樂譜文件中的演奏序列進(jìn)行排列,得到字符流格式的 樂器樂譜文件。在得到的字符流格式的樂器樂譜文件中,可只包括音符標(biāo)識符和時(shí)值標(biāo)識 符,不需要過多的標(biāo)簽和文件定義,由此使得樂譜文件結(jié)構(gòu)更加簡單,也能相應(yīng)降低樂譜文 件的大小。
[0035] 再一方面,本發(fā)明實(shí)施例提供一種對樂器樂譜文件的轉(zhuǎn)換裝置,包括:
[0036] 解析模塊,用于對樂器樂譜文件進(jìn)行解析,得到每個(gè)音符標(biāo)識符和與該音符標(biāo)識 符相對應(yīng)的時(shí)值標(biāo)識符;其中,所述音符標(biāo)識符表示樂器的一個(gè)音,所述時(shí)值標(biāo)識符表示這 個(gè)音的長度;
[0037] 組合模塊,用于將得到的音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,按 照預(yù)定規(guī)則進(jìn)行組合;
[0038] 排列模塊,用于將組合后的音符標(biāo)識符和時(shí)值標(biāo)識符,按照所述音符標(biāo)識符在所 述樂器樂譜文件中的演奏序列進(jìn)行排列,得到字符流格式的樂器樂譜文件。
[0039] 可選地,所述解析模塊,用于對MusicXML格式的樂器樂譜文件的note標(biāo)簽進(jìn)行解 析,得到音符標(biāo)識符和時(shí)值標(biāo)識符。
[0040] 可選地,所述解析模塊,用于對MusicXML格式的樂器樂譜文件的note標(biāo)簽下的子 標(biāo)簽進(jìn)行解析,得到音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符。
[0041] 本發(fā)明實(shí)施例對樂器樂譜文件的轉(zhuǎn)換裝置,通過對樂器樂譜文件進(jìn)行解析,得到 每個(gè)音符標(biāo)識符和與該音符標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,將得到的音符標(biāo)識符和與該音符 標(biāo)識符相對應(yīng)的時(shí)值標(biāo)識符,按照預(yù)定規(guī)則進(jìn)行組合,將組合后的音符標(biāo)識符和時(shí)值標(biāo)識 符,按照所述音符標(biāo)識符在所述樂器樂譜文件中的演奏序列進(jìn)行排列,得到字符流格式的 樂器樂譜文件。在得到的字符流格式的樂器樂譜文件中,可只包括音符標(biāo)識符和時(shí)值標(biāo)識 符,不需要過多的標(biāo)簽和文件定義,由此使得樂譜文件結(jié)構(gòu)更加簡單,也能相應(yīng)降低樂譜文 件的大小。
[0042] 再一方面,本發(fā)明實(shí)施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存 儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置 在電路板上;電源電路,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器用于存儲(chǔ)可 執(zhí)行程序代碼;處理器通過讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與可執(zhí)行程序代碼 對應(yīng)的程序,用于執(zhí)行前述任一實(shí)施例所述的樂器樂譜