とりあえず音を出すにはMidiChannelを使えば、音のon, offが出来ます。 手順としては以下の通りです。
import javax.sound.midi.* ;
public class HelloChannel {
public static void main(String[] args){
MidiChannel channel = null;
try {
/*
* システムからSynsesizer を得て、開く。
* 戻る
*/
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
/*
* システムからSoundbank を得る
* 戻る
*/
Soundbank soundbank = synthesizer.getDefaultSoundbank();
/*
* Soundbank 中の最初のInstrument(音色)を使うよう設定する
* 戻る
*/
Instrument[] instruments = synthesizer.getDefaultSoundbank().getInstruments();
synthesizer.loadInstrument(instruments[0]);
/*
* SynsesizerからChannelを得る。
* 戻る
*/
channel = synthesizer.getChannels()[0];
/*
* Channelを使い音の高さ48、 強さ127で1秒間鳴らす
* 戻る
*/
System.out.println("Play pitch:48 velocity:127");
channel.noteOn(48 , 127);
Thread.currentThread().sleep(1000);
channel.noteOff(128);
System.out.println("Note off");
/*
* Synsesizer を閉じる。
* 戻る
*/
synthesizer.close();
} catch(Exception e){
if(channel != null) channel.allNotesOff();
}
System.exit(0);
}
}