4

フラッシュ midi ファイルで視覚化しようとしています (外部 midi-to-flash ライブラリを使用)

midiファイルでヴァイオリン、ヴィオラ、チェロ、コントラバスの違いを見分ける方法はありますか? 楽器のこれらの値を取得します(数字は無視してください):

1 フルート 13

2 オーボエ 15

3 クラリネット 14

4 ファゴット 16

5 フレンチ ホルン 18

6 トランペット 17

7 ティンパニ 26

8弦アンサンブル 1 3

9 弦楽アンサンブル 1 3

10 弦楽アンサンブル 1 3

11 弦楽アンサンブル 1 3

12 弦楽アンサンブル 1 3

13 アコースティックグランドピアノ 5

14 アコースティックグランドピアノ 5

15 アコースティックグランドピアノ 5

16 アコースティックグランドピアノ 5

ご覧のとおり、すべてのストリングが同じ「ストリング・アンサンブル」値を取得しています...

それを行う 1 つの方法は、各音について高い (65>) か低い (50<) かなどを尋ね、それによって (特定の音の) 楽器の種類を大まかに決定することです。しかし、これらの値はランダムで正確ではないため、正しく分離されません (特に、異なるツールが音符の高さの値を共有しているため)。

  1. MIDIファイルのどこかに(チェロ、バイオリン...)書かれていますか?

  2. それを仮定する方法はありますか?

  3. 私は5トラックの弦を持っています。たとえば、最初の 2 つはバイオリン、3 番目はチェロなどと仮定できますか? またはそれらはすべて混合されていますか?

4

1 に答える 1

5

要するに、いいえ。

表示されているのは、単純なGeneral MIDI パッチです。ただし、これらの楽器がどのように聞こえるかは、サウンドを生成するシンセサイザーに依存し、MIDI によって定義されていません。表示されているパッチとはまったく異なるインストゥルメントを選択することも完全に可能です。

ちなみに41はヴァイオリン、42はヴィオラ、43はチェロ、44はコントラバスです。ただし、常にこの方法で使用されるとは思わないでください。

第 1/第 2 ヴァイオリンに関しては、その人が MIDI ファイルを作成する方法を決定した方法に依存し、プログラムでそれを見つける方法はありません。たとえば、インストゥルメント パッチが同じ場合、そのインストゥルメントの使用はすべて 1 つのチャンネルで行われると予想されます。彼らが使用していたソフトウェアが何らかの理由でそれを分割することを決定した場合を除きます. (たとえば、ソース スコアが分割されている場合)。

MIDIファイルにはトラック名などを入れる余地があると思いますが、すべてのMIDIファイルに表示されるわけではなく、自由形式の名前であるため、プログラムで使用できる方法でラベル付けされることはありません.

MIDI はシンセサイザーを制御するためのものであり、私たち人間が理解するような楽譜を表すことを意図したものではありません。

于 2011-05-27T17:03:31.503 に答える