2013-10-30 3 views
0

jFugue 4.03을 사용 중이며 MusicXML 리더 클래스를 사용하여 노래를 읽으려고합니다. 읽었을 때 뭔가 이상한 일이 일어나고 있습니다 - 템포는 인정되지 않습니다. 다음은 "음악 문자열"이 파서에서 읽힌 후 어떻게 생겼는지 모의하려고하는 코드입니다. 내 컴퓨터 (윈도우 8의 x64, 자바 1.7.0_40)에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"); 

나는 [좋은 지금까지] 재생이 목소리의이 개 조치의 출력을들을 수 있지만 같은 템포 (60bpm)에 있습니다.

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

답변

1

이후에 T120 을 이동 한 후에 두 번째 V0이 아닌 그 이전에 작업을 발견했습니다.

Pattern tempoFixedPattern = new Pattern(pattern 
.getMusicString().replaceAll("(T[0-9]+) (V[0-9]+)", "$2 $1")); 
: 일반적으로
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 파일에서 읽을 때 내 템포를 게시-해결하기 위해 다음과 같은 정규 표현식을 사용
관련 문제