Platform SDK: DirectX

スタイル形式

次の表記法は、スタイル ファイルの最上位レベルのチャンクの構成を示している。

RIFF( 'DMST'
<styh-ck>       // スタイル ヘッダー チャンク
<guid-ck>       // 一意の識別子
[<UNFO-list>]   // 名前、作者、著作権情報、コメント
[<vers-ck>]     // バージョン チャンク
<part-list>...// パターンで使用される、スタイル中のパートのリスト
<pttn-list>...// スタイル中のパターンのリスト
<DMBD-form>...// スタイル中のバンドのリスト
[<motf-list>]   // スタイル中のモチーフのリスト
[<prrf-list>]   // スタイル中のコード マップ参照のリスト
)

個々のチャンクおよびそのサブチャンクの詳細は、次のとおりである。

<styh-ck> -> styh( <DMUS_IO_STYLE> )

このチャンクには、スタイルの基本的なヘッダー情報が含まれる。次の 3 つのチャンクについては、「共通のチャンク」を参照すること。

次のチャンクは、スタイルの各ミュージック パートのチャンクである。

<part-list> -> LIST('part'
<prth-ck>       // パート ヘッダー チャンク
[<UNFO-list>]
[<note-ck>]     // パートの音符のリスト
[<crve-ck>]     // パートの曲線のリスト
    )

上の例に示すように、パート リストにはヘッダー、オプションの UNFO チャンク、および音符と曲線のリストが含まれる (UNFO リストについては、「共通のチャンク」を参照すること)。

<prth-ck> -> prth( <DMUS_IO_STYLEPART> )
 
<note-ck> -> note(
< DWORD >  // DMUS_IO_STYLENOTE のサイズ
< DMUS_IO_STYLENOTE >...
    )
 
<crve-ck> -> crve(
< DWORD >  // DMUS_IO_STYLECURVE のサイズ
< DMUS_IO_STYLECURVE >...
    )

パート リスト チャンクの次は、パターン リスト チャンクである。

<pttn-list> -> LIST( 'pttn'
<ptnh-ck>       // パターン ヘッダー チャンク
<rhtm-ck>       // コード マッチング用のリズムのリスト
[<UNFO-list>]
[<mtfs-ck>]     // モチーフ設定チャンク
<pref-list>...// パート参照 ID のリスト
    )

パターン リストは、次のサブチャンクで構成される (オプションの UNFO リストについては、「共通のチャンク」を参照すること)。

<ptnh-ck> -> ptnh(
< DMUS_IO_PATTERN >
    )
 
<rhtm-ck> -> rhtm(
< DWORD >...  
    )

このチャンクは、各小節ごとに 1 つの DWORD 配列で構成され、リズム パターンを表す。ビットの配置については、DMUS_RHYTHM_PARAMdwRhythmPattern メンバを参照すること。

<mtfs-ck> -> mtfs(
< DMUS_IO_MOTIFSETTINGS >
    )
 
<pref-list> -> LIST( 'pref'
<prfc-ck>   // パート参照チャンク
    )

続いて、"pref" チャンクはパート参照の配列で構成される。

<prfc-ck> -> prfc(
< DMUS_IO_PARTREF >
    )

スタイル形式の最後のチャンクは、コード マップ参照のリストである。

<prrf-list> -> LIST( 'prrf'
<DMRF-list>...
    )

<DMRF-list> の詳細については、「共通のチャンク」を参照すること。