1

MIDI番号、デュレーション、ベロシティがそれぞれ記載されたノートがいくつかあります。

私は現在、シンセサイザーを使用してノートを再生しています。

Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();

MidiChannel[] channels = synthesizer.getChannels();

for(Note n: song)
{
    n.playNote(channels[0]);
}

synthesizer.close();

Note.playNote()

public void playNote(MidiChannel c) throws InterruptedException
{
    if (type == 'n')
    c.noteOn(noteNumber, 60);
    Thread.sleep(getLength());
    if (type == 'n')
    c.noteOff(noteNumber);
}

しかし、今はこれをMIDIファイルに保存したいと思います。これを行う最も簡単な方法は何ですか?

4

1 に答える 1

2

簡単な手順の1つは、基本的に次のとおりです。

  • Sequenceオブジェクトを作成します。
  • 1つ以上のトラックを作成します(sequence.createTrack())
  • ノートごとに、ノートオンメッセージとノートオフメッセージを表す関連するMidiMessageを作成し、トラックに追加します
  • MidiSystem.write()を呼び出して、入力されたシーケンスをファイルに書き込みます。
于 2012-12-06T04:45:35.613 に答える