私は単純なmidiファイルをJavaで書こうとしますが、私はそれを開くことができません。 私はちょうど3つのノートを同時に作ります。Javaでmidiファイルを書いてください
これは私のコードです:
file_midi.write("MThd".getBytes());
file_midi.write(fourToBytes(length));
file_midi.write(formatType);
file_midi.write(nbreVoies);
file_midi.write(PPQN);
file_midi.write("MTrk".getBytes());
file_midi.write(fourToBytes(31));
temp = (char)choix_inst[0];
file_midi.write(zero);
file_midi.write(c);
file_midi.write(zero);
num_note_midi = 50;
velocity = 10;
file_midi.write(zero);
file_midi.write(non);
file_midi.write(num_note_midi); //numéro de la note
file_midi.write(velocity); //vélocité de la note
num_note_midi = 60;
file_midi.write(zero);
file_midi.write(non);
file_midi.write(num_note_midi); //numéro de la note
file_midi.write(velocity); //vélocité de la note
num_note_midi = 70;
file_midi.write(zero);
file_midi.write(non);
file_midi.write(num_note_midi); //numéro de la note
file_midi.write(velocity); //vélocité de la note
num_note_midi = 50;
t_note_midi = 160;
file_midi.write(WriteVarLen(t_note_midi));
file_midi.write(noff);
file_midi.write(num_note_midi); //numéro de la note
file_midi.write(velocity); //vélocité de la note
num_note_midi = 60;
file_midi.write(WriteVarLen(t_note_midi));
file_midi.write(noff);
file_midi.write(num_note_midi); //numéro de la note
file_midi.write(velocity); //vélocité de la note
num_note_midi = 70;
file_midi.write(WriteVarLen(t_note_midi));
file_midi.write(noff);
file_midi.write(num_note_midi); //numéro de la note
file_midi.write(velocity); //vélocité de la note
file_midi.write(zero);
file_midi.write(ff);
file_midi.write(a_2f);
file_midi.write(zero);
file_midi.close();
その後、私は、通常のMIDIファイル形式に対応しているようだwhitch、進形式で表示このMIDIファイルを取得します。
4D 54 68 64 00 00 00 06 00 01 00 01 00 A0 4D 54 72 6B 00 00 00 1F 00 C0 00 00 90 32 0A 00 90 3C 0A 00 90 46 0A A0 80 32 0A A0 80 3C 0A A0 80 46 0A 00 FF 2F 00
私のファイルには何が問題なのですか?
「開くことができません」とはどういう意味ですか? midiファイルプレーヤーで再生されませんか? – SamTebbs33
MuseScoreのようなシートエディタで再生することも、それを開くことも不可能です。ファイルの最後に問題があるようですが、正確なエラーは予期しないEOFです。 –