2017-05-04 3 views
2

아래의 주어진 코드에서 주파수 240과 254.1764는 멀리 떨어져 있지만 소리는 240에서 나옵니다. 288과 301.395의 경우에도 마찬가지이며, 마지막 두 개의 432와 552.09에서도 같은 문제가 발생합니다. 문제점이 Java 또는 JFugue 파트인지 여부를 분류하는 데 도움이 필요합니다.JFugue에서 왜 멀리 떨어진 주파수가 동일한 피치로 들리는 이유는 무엇입니까?

 class JFugueMicrotoneTest{ 


     public static void main(String[]arg)throws InvalidMidiDataException, IOException{ 

     MicrotoneNotation microtone = new MicrotoneNotation(); 
     microtone.put("C", 240.0); 
     microtone.put("Df", 254.1764705882353); 
     microtone.put("D", 270.0); 
     microtone.put("Ef", 288.0); 
     microtone.put("E", 301.3953488372093); 
     microtone.put("F", 320.0); 
     microtone.put("F#", 338.8235294117647); 
     microtone.put("G", 360.0); 
     microtone.put("Af", 381.1764705882353); 
     microtone.put("A", 405.0); 
     microtone.put("Bf", 432.0); 
     microtone.put("B", 452.09302325581393); 

     Player player = new Player(); 
     String music="T[60] <C> <Df> <D>  <Ef> <E> <F> <F#> <G> <Af> <A>  <Bf> <B>"; 
     Pattern pattern=microtone.getPattern(music); 
     player.play(pattern); 
     } 
} 
+1

문제점을 조사하고 있습니다. –

답변

1

JFugue 5.0.9이 마이크로 톤 생성에 사용 된 수학 변환에 대한 수정으로 업데이트되었습니다. 그것을 시도하고 그 차이를 들어라!

기타 : 원래 질문에 게시 한 코드는 JFugue 4.x 코드입니다. JFugue 5.x에는 MicrotoneNotation 클래스가 없습니다.

"T60 m240.0 m254.17 m270.0" 

(통지는 5.x 버전에서 숫자 템포 값 주위에 대괄호가없는)

당신은 또한을 만들 수 있습니다 대신,이 같은 음악 문자열로 직접 주파수를 쓸 수 있습니다 "대체지도"문자열에 <C>, <Cf> 등을 사용하려는 경우 현재 표시된 마지막 세 가지 예제를 참조하십시오. http://www.jfugue.org/examples.html

관련 문제