2011-08-04 3 views
3

MIDI音のパンを設定する方法を教えてください。私はJavaの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)方法を使用することができるはずです

関連する問題