ネット上のMIDIファイル再生

 Java Sound APIには、MIDIを扱う機能があります。MIDI機器にメッセージを送ったり、MIDIファイルを再生したりと一通りの機能がそろっているのですが、面白いのは再生するMIDIファイルの「URL」を指定できる点です。この機能を使うと、MIDIファイルがあるURLを指定するだけでそのファイルを再生できるので、ネット対応の再生プログラムを簡単に作れるかもしれません。今回は、このURL指定のMIDIファイル再生を試してみましょう。

MIDIファイルの再生

 MIDIファイルの再生では、まず再生するMIDIファイルを読み込んだSequenceを作成します。Sequenceの作成は、MidiSystem.getSequence()メソッドにファイルやURL、ストリームを渡して行いますが、汎用性を考えればあらかじめMIDIファイルをネットやファイルからバッファに読み込んでおいて、そのバッファのストリームを渡すようにした方が良いかもしれませんね。

 Sequenceが出来たら、MIDI再生を行うSequencerMidiSystem.getSequencer()で取得し、open()してからSequencerSequenceをセットします。これで、再生の用意が出来たので、あとはSequencerのstart()メソッドで再生したり制御用メソッドで各種の制御を行う事が出来ます。
 たとえば、URL uMIDIファイルを再生する処理は以下のような感じです。

  try {

      sc=MidiSystem.getSequence(u);
      scr=MidiSystem.getSequencer();

      scr.open();
      scr.setSequence(sc);

  } catch (Exception ex) {}

  scr.start();

プログラム

 今回もSwingベースのJava2アプリケーションです。実行するとURL入力欄と再生ボタンを持ったウインドウが出てきます。URL入力欄には、最初データライブラリにあるMIDIファイルが指定されていますので、ここに再生したいMIDIファイルのURLを入れて再生ボタンをクリックしてください。

プログラムソース表示


プログラミング資料庫 > Javaプログラミング実験室