0

我正在使用 jFugue 4.03 并尝试使用 MusicXML 阅读器类阅读歌曲。读入时发生了一些奇怪的事情——节奏没有得到承认。这是我正在尝试的代码片段,只是为了模拟从解析器读取“音乐字符串”后的样子。

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 x64,Java 1.7.0_40)上,我听到 2 个小节的 2 个声音正在播放 [到目前为止很好],但它们的速度相同(60bpm)。

知道我做错了什么吗?

4

1 回答 1

1

我通过在第二个 V0之后而不是之前移动 T120 找到了解决方法。

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"));
于 2013-10-30T03:50:47.153 回答