3

MIDIサウンドのパンを設定する方法を教えてください。Java 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);`

どんな助けにもとても感謝しています。どうもありがとう!

4

1 に答える 1

1

MIDI 仕様によると、パンニングはコントロール チェンジ メッセージ番号 10 によって制御されます実際のデバイス。

これを知っていれば、 JavaSound MidiChannel APIcontrolChange(int, int)のメソッドを使用してパンを制御できるはずです。

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) {
    }
}
于 2011-10-11T00:22:40.607 に答える