Microsoft DirectX 8.0 (C++)

スタイル形式

次の表記法は、スタイル ファイルの最上位レベルのチャンクの構成を示している。この形式は、コンテナ形式内に含めることもできる。

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

<styh-ck>

このチャンクには、スタイルの基本的なヘッダー情報が含まれる。

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

<guid-ck>、<UNFO-list>、<vers-ck>

これらの 3 つのチャンクについては、「共通のチャンク」を参照すること。

<part-list>

スタイル内の各パートは、チャンク内に次の形式で記述される。

<part-list> -> LIST('part'
    <prth-ck>       // パート ヘッダー チャンク
    [<UNFO-list>]
    [<note-ck>]     // パート中のノート
    [<crve-ck>]     // パート中のカーブ
    [<mrkr-ck>]     // パート中のマーカー
    [<rsln-ck>]     // パート中のバリエーション分解能
    [<anpn-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 >...
    )
 
<mrkr-ck> -> mrkr(
    < DWORD > // DMUS_IO_STYLEMARKER のサイズ
    < DMUS_IO_STYLEMARKER >...
    )
 
<rsln-ck> -> rsln(
    < DWORD > // DMUS_IO_STYLERESOLUTION のサイズ
    < DMUS_IO_STYLERESOLUTION >...
    )

<anpn-ck> -> anpn(
    < DWORD > Size of DMUS_IO_STYLE_ANTICIPATION
    < DMUS_IO_STYLE_ANTICIPATION >...
    )

<pttn-list>

各パターンは、チャンク内に次の形式で記述される。

<pttn-list> -> LIST( 'pttn'
    <ptnh-ck>       // パターン ヘッダー チャンク
    <rhtm-ck>       // コード マッチング用のリズムのリスト
    <swpt-ck>       // パターン スイッチ ポイントのリスト
    [<UNFO-list>]
    [<mtfs-ck>]     // モチーフ設定チャンク
    [<DMBD-form>]   // パターンに関連付けられたバンド
                    // (モチーフ用)
    <pref-list>...// パート参照 ID の配列
    )

パターン リストの最初のチャンクは、ヘッダーである。

<ptnh-ck> -> ptnh( <DMUS_IO_PATTERN> )

2 番目のチャンクは、リズム リストである。

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

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

パターン リストの 3 番目のチャンクは、スイッチ ポイント チャンクである。

<swpt-ck> -> swpt( <DWORD>... )

スイッチ ポイント チャンクは、各小節ごとに 1 つの DWORD 配列で構成され、パターンが開始できる有効なポイントを表す。

オプションの UNFO リストについては、「共通のチャンク」を参照すること。

パターン リストの次のチャンクは、モチーフ設定を表す。

<mtfs-ck> -> mtfs( <DMUS_IO_MOTIFSETTINGS> )
 

パターン リストの <DMBD-form> チャンクについては、「バンド形式」を参照すること。

パターン リストの最後のチャンクは、パート参照リストである。

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

要素はパート参照のみである。

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

<DMBD-form>

スタイル形式の次のチャンクは、バンド形式である。

<prrf-list>

最後のチャンクには、コード マップ参照の配列が含まれる。

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

<DMRF-list> の詳細については、「参照リスト」を参照すること。