中,可選地,所述對樂器樂譜文件 進行解析,得到音符標識符和時值標識符(S11),包括:
[0087]S111、根據(jù)預(yù)定的音符標識符和時值標識符的組合規(guī)則,對鋼琴樂譜文件中的音 符信息進行解析,得到鋼琴樂譜文件的音符標識符和時值標識符;
[0088] 比如,可預(yù)先確定在音符信息中音符標識符和時值標識符的組合規(guī)則為A+B,則可 據(jù)此規(guī)則,對要樂器樂譜文件中的音符信息進行解析時,排列在A的位置的字符或字符串 即為音符標識符,排列在B位置的字符或字符串即為時值標識符。
[0089] S112、將得到的所述音符標識符,與預(yù)先保存的鋼琴音符標識符庫中的音符標識 符進行匹配,得到所述音符標識符所對應(yīng)的鋼琴的按鍵;其中,在所述鋼琴音符標識符庫中 保存有音符標識符與鋼琴的按鍵之間的對應(yīng)關(guān)系。
[0090] 本實施例中,可選地,在所述鋼琴音符標識符庫中保存有與鋼琴的88個按鍵存在 對應(yīng)關(guān)系的音符標識符。
[0091] 參看圖2所示,圖2為本發(fā)明樂器樂譜文件的播放裝置一實施例的結(jié)構(gòu)示意圖。參 看圖2,本發(fā)明樂器樂譜文件的播放裝置一實施例,包括:解析模塊21、查找模塊22和播放 模塊23;其中,
[0092] 解析模塊21,用于對樂器樂譜文件進行解析,得到音符標識符和時值標識符;其 中,所述樂器樂譜文件包括多個按演奏順序依次排列的音符信息,每個音符信息由表示樂 器的一個音的音符標識符和表示這個音的長度的時值標識符組成。
[0093] 本實施例中的樂器樂譜文件,可通過人工的方式預(yù)先編排。樂器樂譜文件可以被 打包成APK格式的文件。APK是AndroidPackage的縮寫,即Android安裝包(apk)。
[0094] 本實施例中,所述樂器樂譜文件可以是鋼琴樂譜文件,本發(fā)明不限于此,也可以是 其它樂器樂譜文件。其中,關(guān)于鋼琴樂譜的編排方法可參見前面的相關(guān)描述。
[0095] 查找模塊22,用于根據(jù)所述音符標識符,查找預(yù)先保存的與所述音符標識符相對 應(yīng)的樂器聲音文件。
[0096] 與所述音符標識符相對應(yīng)的樂器聲音文件,可預(yù)先采集并保存。比如可對鋼琴的 88個按鍵的每一個按鍵發(fā)出的聲音進行采集,然后保存為mp3格式的聲音文件。
[0097] 播放模塊23,用于將所述樂器聲音文件,按照所述時值標識符所表示的長度進行 播放。
[0098] 可根據(jù)對樂器樂譜文件中的每個音符信息解析后得到的音符標識符,進行相對應(yīng) 的樂器聲音文件的播放;也可對樂器樂譜文件中的每個音符信息解析后得到所有的音符標 識符后,將所有的音符標識符相對應(yīng)的樂器聲音文件按照演奏順序進行播放。
[0099] 本發(fā)明實施例樂器樂譜文件的播放裝置,所要播放的樂器樂譜文件包括多個按演 奏順序依次排列的音符信息,每個音符信息由表示樂器的一個音的音符標識符和表示這個 音的長度的時值標識符組成,文件結(jié)構(gòu)相對簡單,解析效率較高,由此能夠提高播放效率。
[0100] 在本發(fā)明樂器樂譜文件的播放裝置一實施例中,所述解析模塊21,可用于根據(jù)預(yù) 定的音符標識符和時值標識符的組合規(guī)則,對樂器樂譜文件中的音符信息進行解析,得到 該樂器樂譜文件的音符標識符和時值標識符。
[0101] 比如,可預(yù)先確定在音符信息中音符標識符和時值標識符的組合規(guī)則為A+B,則可 據(jù)此規(guī)則,對要樂器樂譜文件中的音符信息進行解析時,排列在A的位置的字符或字符串 即為音符標識符,排列在B位置的字符或字符串即為時值標識符。
[0102] 在本發(fā)明樂器樂譜文件的播放裝置一實施例中,可選地,所述音符標識符所表示 的樂器的一個音,包括按照特殊演奏法所得到的音,比如包括按照特殊演奏法所得到的音、 連音、琵音奏法、波音、顫音、長倚音、短倚音等。
[0103] 在本發(fā)明樂器樂譜文件的播放裝置一實施例中,可選地,所述樂器樂譜文件為鋼 琴樂譜文件;所述每個音符信息中的音符標識符表示鋼琴的至少一個按鍵發(fā)出的聲音。
[0104] 在本發(fā)明樂器樂譜文件的播放裝置一實施例中,可選地,所述解析模塊21,包括:
[0105]解析子模塊,根據(jù)預(yù)定的音符標識符和時值標識符的組合規(guī)則,對鋼琴樂譜文件 中的音符信息進行解析,得到鋼琴樂譜文件的音符標識符和時值標識符;比如,可預(yù)先確定 在音符信息中音符標識符和時值標識符的組合規(guī)則為A+B,則可據(jù)此規(guī)則,對要樂器樂譜文 件中的音符信息進行解析時,排列在A的位置的字符或字符串即為音符標識符,排列在B位 置的字符或字符串即為時值標識符。
[0106]匹配子模塊,用于將得到的所述音符標識符,與預(yù)先保存的鋼琴音符標識符庫中 的音符標識符進行匹配,得到所述音符標識符所對應(yīng)的鋼琴的按鍵;其中,在所述鋼琴音符 標識符庫中保存有音符標識符與鋼琴的按鍵之間的對應(yīng)關(guān)系。
[0107]本實施例中,可選地,在所述鋼琴音符標識符庫中保存有與鋼琴的88個按鍵存在 對應(yīng)關(guān)系的音符標識符。
[0108]圖3為本發(fā)明對樂器樂譜文件的轉(zhuǎn)換方法一實施例的流程示意圖。參看圖3,本發(fā) 明對樂器樂譜文件的轉(zhuǎn)換方法一實施例,包括步驟:
[0109]S21、對樂器樂譜文件進行解析,得到每個音符標識符和與該音符標識符相對應(yīng)的 時值標識符;其中,所述音符標識符表示樂器的一個音,所述時值標識符表示這個音的長 度;
[0110] 本步驟中,所述樂器樂譜文件為MusicXML格式的樂器樂譜文件。當然,也可以是 其它格式的樂譜文件,對此本發(fā)明實施例不做限定。相應(yīng)地,所述對樂器樂譜文件進行解 析,得到每個音符標識符和與該音符標識符相對應(yīng)的時值標識符,包括:對MusicXML格式 的樂器樂譜文件的note標簽進行解析,得到音符標識符和時值標識符。具體來講,可對 MusicXML格式的樂器樂譜文件的note標簽下的子標簽進行解析,得到音符標識符和與該 音符標識符相對應(yīng)的時值標識符。
[0111]S22、將得到的音符標識符和與該音符標識符相對應(yīng)的時值標識符,按照預(yù)定規(guī)則 進行組合;
[0112] 比如,可按照A+B、或A/B等組合規(guī)則,將得到的音符標識符和與該音符標識符相 對應(yīng)的時值標識符組合在一起。
[0113]S23、將組合后的音符標識符和時值標識符,按照所述音符標識符在所述樂器樂譜 文件中的演奏序列進行排列,得到字符流格式的樂器樂譜文件。
[0114] 本發(fā)明實施例對樂器樂譜文件的轉(zhuǎn)換方法,通過對樂器樂譜文件進行解析,得到 每個音符標識符和與該音符標識符相對應(yīng)的時值標識符,將得到的音符標識符和與該音符 標識符相對應(yīng)的時值標識符,按照預(yù)定規(guī)則進行組合,將組合后的音符標識符和時值標識 符,按照所述音符標識符在所述樂器樂譜文件中的演奏序列進行排列,得到字符流格式的 樂器樂譜文件。在得到的字符流格式的樂器樂譜文件中,可只包括音符標識符和時值標識 符,不需要過多的標簽和文件定義,由此使得樂譜文件結(jié)構(gòu)更加簡單,也能相應(yīng)降低樂譜文 件的大小。
[0115] 下面以MusicXML格式的樂譜文件為例,說明本發(fā)明實施例中對樂器樂譜文件解 析得到字符流格式的樂器樂譜文件的過程,具體過程包括:
[0116] (1)解析MusicXML樂譜文件的〈divisions〉標簽,得到樂曲節(jié)拍;
[0117] (2)解析MusicXML樂譜文件的〈note〉標簽,得到具體的每一音符信息,〈note〉 標簽的解析過程包括:
[0118]a)對于每一音符信息,可通過解析〈note〉標簽下的〈step〉、〈alter〉和〈octave〉 子標簽,得到音符標識符,其中〈step〉為基本的音名,〈alter〉表示表示升高或降低的音 級,〈octave〉表示所屬音組;通過解析〈duration〉子標簽,得到音符的拍長,拍長以時值 標識符表示。如果〈note〉標簽存在〈rest〉子標簽,表示次音符為休止符,則只需要解析 〈duration〉子標簽,得到休止符的拍長。
[0119] b)判斷〈note〉標簽下是否有〈chord〉子標簽,如果有,則表示次音符為上一個音 符的和弦音,此時需要將所有的和弦音組合起來。
[0120] c)判斷〈note〉標簽是否結(jié)束,如果〈/note〉標簽存在,則表示音符信息解析結(jié)束, 將之前解析到的音符進行組合并添加至音符符號序列。然后返回步驟a)進行下一個音符 的解析。
[0121]圖4為本發(fā)明對樂器樂譜文件的轉(zhuǎn)換裝置一實施例的結(jié)構(gòu)示意圖。參看圖4,本 發(fā)明對樂器樂譜文件的轉(zhuǎn)換裝置一實施例,包括:解析模塊31、組合模塊32和排列模塊33 ; 其中,
[0122] 解析模塊31,用于對樂器樂譜文件進行解析,得到每個音符標識符和與該音符標 識符相對應(yīng)的時值標識符;其中,所述音符標識符表示樂器的一個音,所述時值標識符表示 這個音的長度。
[0123]所述樂器樂譜文件為MusicXML (Music Extensible Markup Language音樂擴展標 記語言)格式的樂器樂譜文件。這種文件采用一種開放的基于MusicXML音樂符號格式來 存放歌曲的基本信息。MusicXML技術(shù)將整體樂曲元素和屬性信息表示為一份XML文檔。