2013-10-30 59 views
0

我正在使用jFugue 4.03並嘗試使用MusicXML閱讀器類讀取歌曲。有些奇怪的事發生在閱讀中 - 節奏不被承認。這裏是我正在嘗試的代碼片段,只是爲了模擬從分析器中讀取「音樂字符串」後的樣子。JFugue沒有在2首歌曲中間改變節奏

Player player = new Player(); 

//read in using the XML parser. Displaying it as a string literal for clarity 
player.play("T60 V0 A3q B3q C3q B3q V1 A2h C2h | T120 V0 A3q B3q C3q B3q V1 A2h C2h"); 

在我的機器(Windows 8的64位,爪哇1.7.0_40),我聽到的2項措施2個聲音播放[好爲止]輸出,但它們是在同一節奏(60BPM)。

任何想法我做錯了什麼?

回答

1

我找到了一個解決方法,在之後移動T120 第二個V0,而不是之前。

Player player = new Player(); 
player.play("T60 V0 A3q B3q C3q B3q V1 A2h C2h | V0 T120 A3q B3q C3q B3q V1 A2h C2h"); 

一般情況下,我用下面的正則表達式從MusicXML文件中讀取時到後期修復我的節奏:

Pattern tempoFixedPattern = new Pattern(pattern 
.getMusicString().replaceAll("(T[0-9]+) (V[0-9]+)", "$2 $1"));