何人かのユーザーから報告されていたMIDIWindでMIDIファイルが正常に再生できない問題ですが、ついに原因を特定できました。
原因は、Java1.4 (version 1.4.2_9)のバグによるものです。
このバージョンのJavaで、javax.sound.midiを使いSMFファイルを読むと、メタイベントとSysExメッセージは正常に読めますが、チャンネルメッセージ(ノートONやプログラムチェンジ、コントロールチェンジ等)は、1バイト欠落します。(本来3バイトのものが2バイトしか読めない)
このため、GM System ONなどは正常に処理され音源がリセットされますが、ノートONメッセージが異常なため音が出ない、というような症状になります。
この問題は、Java1.3、Java1.5、Java1.6(?)では、発生しません。
簡単な対処方法は、Javaのカレントバージョンを1.5にしてしまうことです。
MacOSX10.4では、ソフトウエアアップデートでJ2SE5.0をインストールすると、Java1.5がカレントバージョンとなります。(Appleのサポートからもダウンロードできます。)
MacOSX10.3については、Java1.5が動かないらしいので、現在MIDIWindをJava1.3で動作させる方法を検討しています。