Microsoft DirectX 8.0 (C++)

RIFF について

RIFF ファイルの基本的な構成単位は "チャンク" である。チャンクは、データの論理的な単位である。各チャンクには、次のフィールドが含まれている。

ほかのチャンクに含まれているチャンクを、"サブチャンク" と呼ぶ。サブチャンクを含むことができるチャンクは、チャンク識別子が RIFF または LIST のチャンクだけである。

ファイルの最初のチャンクは、RIFF として識別されなければならない。ファイル内のその他のチャンクはすべて、このチャンクのサブチャンクとなる。RIFF チャンクは、形式とも呼ばれる。

LIST チャンクは、サブチャンクをグループ化したものである。これらのサブチャンクのいくつかは繰り返し現れる場合があるが、LIST は配列ではない。用語が紛らわしいこともある。たとえば、<part-list> というラベルの付いたチャンクは、パートのリストであると予想するかもしれないが、実際には、"パート" チャンクの要素のリストであり、1 つのパートを示している。

RIFF チャンクでは、データ フィールドの最初の 4 バイトに追加フィールドが含まれる。追加フィールドでは、チャンクの形式タイプが提供される。形式タイプは、ファイルに格納されるデータの形式を識別する、4 文字のコードである。たとえば、DirectMusic のスタイルの形式タイプは DMST である。

LIST チャンクも、データ フィールドの最初の 4 バイトに追加フィールドを含んでいる。このフィールドには、フィールドの "リスト タイプ" が含まれる。リスト タイプは、リストの内容を識別する 4 文字のコードである。たとえば、DirectMusic のスタイルは、パフォーマンスの特定のパート (音色トラック) に関するデータを含む、リスト タイプが "part" の LIST チャンクを持っている。

  DirectMusic ファイルで使用されているすべての FOURCC コードには、対応するマクロが Dmusicf.h に用意されている。たとえば、DMST の FOURCC は、DMUS_FOURCC_STYLE_FORM マクロによって返される。

一般的な RIFF ファイルの詳細については、Platform SDK ドキュメントの「Resource Interchange File Format Services」を参照すること。