2011-08-04 4 views
3

누구든지 MIDI 사운드의 패닝 설정 방법을 제안 해 주실 수 있습니까? 나는 자바 MIDI 합성을 사용하고 있고 그것을 소리 낼 수있다. 하지만 나는 왼쪽에서 오른쪽 스피커로 소리를 내고 싶다. 나는 구글을했지만 나에게 많은 것을 명확히하지 않는 것처럼 보였다. 다음은 작업중인 코드 예제입니다.MIDI 사운드 팬 설정 방법은?

Synthesizer synthesizer = MidiSystem.getSynthesizer(); 

synthesizer.open(); 

MidiChannel channel = synthesizer.getChannels()[0]; 

Soundbank soundbank = synthesizer.getDefaultSoundbank(); 

synthesizer.loadAllInstruments(soundbank); 

channel.programChange(0,instrument); 
channel.noteOn(60,200);` 

매우 도움이됩니다. 감사합니다.

답변

1

MIDI spec에 따르면 패닝은 컨트롤 변경 메시지 번호 10에 의해 제어됩니다. 이것은 "대략"값 (정밀도 7 비트)이지만 분명히 "정밀한"14 비트 버전 (컨트롤 변경 42)은 likely to be ignored입니다. 실제 장치.

final int PAN_CONTROLLER = 10; 
// Pan to Center: 
channel.controlChange(PAN_CONTROLLER, 64); 

// Pan hard left: 
channel.controlChange(PAN_CONTROLLER, 0); 

// Pan hard right: 
channel.controlChange(PAN_CONTROLLER, 127); 

// "Active stereo", Jimi-Hendrix-style 
// sweep from almost-full left to almost-full right: 
for (int position = 8; position < 127; position += 8) { 
    channel.controlChange(PAN_CONTROLLER, position); 
    try { 
     Thread.sleep(500); 
    } catch (InterruptedException e) { 
    } 
} 
:

이 알고, 당신은 당신의 팬을 제어 할 수 JavaSound MidiChannel APIcontrolChange(int, int) 방법을 사용할 수 있어야합니다