1

私はJAVA MIDIを初めて使用し、問題に遭遇しました。MIDI ファイルをロードし、各トラックに使用された各楽器の名前でいくつかのラベルを設定したいと考えています。たとえば、MIDI ファイルに 5 つのトラックがある場合(各トラックには 1 つの楽器しかありません) 次に、各トラックで使用されている楽器の名前をそれぞれ持つ 5 つのラベルを取得します。

MIDI ファイル (関数、メソッドなど) の各トラックに使用された楽器を確認する方法はありますか?

4

2 に答える 2

1

アレンジメントの各トラックを分離したら、それを演奏する楽器を決定する方法が 2 つあります。

1 つは、ID 付きの MIDI メタ メッセージが0x04、楽器名を文字列として表示することです。詳細については、MIDI ファイル形式を詳述しているこの素晴らしいページを参照してください。

2 つ目は、トラックの先頭に MIDI プログラム チェンジ メッセージが表示される方法です。MIDI ファイルが GM (general MIDI) 楽器を使用するように設定されていると仮定すると、プログラム チェンジ メッセージのデータをGM 楽器に関連付けることができます。

プログラムの変更は MIDI トラックのどこにでも表示できるため、シーケンサーはそれに応じて処理する必要があることに注意してください。実際に目にするほとんどの MIDI ファイルは、トラックの途中でプログラム変更を使用しませんが、標準で許可されており、発生する可能性があることに注意してください。

于 2013-09-23T08:42:23.747 に答える