Microsoft DirectX 8.0 (C++)

DMUS_CURVE_PMSG

カーブのメッセージ データを保持する。

typedef struct DMUS_CURVE_PMSG {
    DMUS_PMSG_PART
    MUSIC_TIME mtDuration;
    MUSIC_TIME mtOriginalStart;
    MUSIC_TIME mtResetDuration;
    short      nStartValue;
    short      nEndValue;
    short      nResetValue;
    WORD       wMeasure;
    short      nOffset;
    BYTE       bBeat;
    BYTE       bGrid;
    BYTE       bType;
    BYTE       bCurveShape;
    BYTE       bCCData;
    BYTE       bFlags;
    WORD       wParamType;
    WORD       wMergeIndex; 
} DMUS_CURVE_PMSG;
DMUS_PMSG_PART
共通のメッセージ メンバに展開されるマクロ。「DMUS_PMSG」を参照すること。
mtDuration
カーブの持続時間。この値は、DMUS_PMSG_PARTdwFlags メンバに DMUS_PMSGF_LOCKTOREFTIME が存在する場合を除き、ミュージック タイムで指定する。この場合の単位はミリ秒単位となり、テンポの変化によって影響を受けることはない。
mtOriginalStart
オリジナルの開始タイム。メッセージを作成するときは 0 またはカーブのオリジナルの開始タイムに設定しなければならない。
mtResetDuration
無効化に応答してリセットできる間のカーブの終わり後の時間の長さ。bFlags 内に DMUS_CURVE_RESET がない場合は無視される。この値は、DMUS_PMSG_PARTdwFlags メンバに DMUS_PMSGF_LOCKTOREFTIME が存在する場合を除き、ミュージック タイムで指定する。この場合の単位はミリ秒単位となり、テンポの変化によって影響を受けることはない。
nStartValue
カーブの開始値。
nEndValue
カーブの終了値。
nResetValue
フラッシュ (解放) または無効化を設定する値。bFlags 内に DMUS_CURVE_RESET がない場合は無視される。
wMeasure
カーブが発生する小節。
nOffset
カーブが発生するグリッドからのオフセット。ミュージック タイムで表される。
bBeat
このカーブが発生する (小節内の) 拍数。
bGrid
このカーブが発生する拍からのグリッド オフセット。
bType
カーブのタイプ。次のいずれかの値を指定できる。
DMUS_CURVET_CCCURVE
コンティニュアス コントローラ カーブ (MIDI Control Change チャンネル ボイス メッセージ。ステータス バイトは &HBn)。
DMUS_CURVET_MATCURVE
モノラル アフタータッチ カーブ (MIDI Channel Pressure チャンネル ボイス メッセージ。ステータス バイトは &HDn)。
DMUS_CURVET_PATCURVE
ポリフォニック アフタータッチ カーブ (MIDI Poly Key Pressure チャンネル ボイス メッセージ。ステータス バイトは &HDn)。
DMUS_CURVET_PBCURVE
ピッチベンド カーブ (MIDI Pitch Bend チャンネル ボイス メッセージ。ステータス バイトは &HEn)。
DMUS_CURVET_RPNCURVE
wParamType に定義されたタイプの RPN カーブ。
DMUS_CURVET_NRPNCURVE
wParamType に定義されたタイプの NRPN カーブ。
bCurveShape
カーブのシェイプ。次のいずれかの値を指定できる。
DMUS_CURVES_EXP
指数カーブシェイプ。
DMUS_CURVES_INSTANT
即時カーブシェイプ (カーブの開始と終了がほとんど同時に発生する)。
DMUS_CURVES_LINEAR
線状カーブシェイプ。
DMUS_CURVES_LOG
対数カーブシェイプ。
DMUS_CURVES_SINE
正弦カーブシェイプ。
bCCData
bType が DMUS_CURVET_CCCURVE の場合はコントローラ番号。
bFlags
0 または次の 1 つ以上の値を指定できる。
DMUS_CURVE_RESET
デフォルトのタイムに達したとき、またはトランジションが原因で無効化が発生したときは、nResetValue にこの値を設定しなければならない。フラグが設定されていない場合、カーブは新しい値に永続的にとどまる。
DMUS_CURVE_START_FROM_CURRENT
nStartValue を無視し、現在の値のカーブを開始する。ボリューム、エクスプレッション、ピッチ ベンド、フィルタ カットオフ、パン、およびモッド ホイール用に実装される。「注意」を参照すること。
wParamType
MIDI パラメータ番号。DMUS_PMSGF_DX8 がこの構造体の DMUS_PMSG 部分の dwFlags メンバの中に存在する場合のみ、この値は意味を持つ。「注意」を参照すること。
wMergeIndex
マージ インデックス。ピッチ ベンド、ボリューム、およびエクスプレッション コントローラ用にサポートされる。DMUS_PMSGF_DX8 がこの構造体の DMUS_PMSG 部分の dwFlags メンバの中に存在する場合のみ、この値は意味を持つ。「注意」を参照すること。

注意

wParamType の RPN または NRPN カーブ タイプは、7 ビットを付加した 2 バイトとして格納される。たとえば、MSB が 0x23、LSB が 0x74 である場合、wParamType の値は 0x2374 である。

nStartValuenEndValue、および nResetValue 内のデータは 14 ビットに制限される。7 ビットのバイト 2 つで構成される MIDI データの場合、値は空いている 2 ビットを付加して、1 ワードとして格納される。

wMergeIndex に 0 が設定されたすべてのカーブは、相互にオーバーライドされる。wMergeIndex が別の値である場合、カーブが生成する値はマージ インデックス 0 の値に追加される。たとえば、アプリケーションが 0 と 3 のカーブを使用する場合、0 カーブは常に相互に入れ替わるが 3 カーブに追加される。また、3 カーブも常に相互に入れ替わるが 0 カーブに追加される。

DMUS_CURVE_START_FROM_CURRENT フラグは現在のコントローラ値をメッセージに保存しない。したがって、ツールで最終認識値を格納しない限り、ツールにこのデータへのアクセス権はない。

動作環境

  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicPerformance8::SendPMsgカーブ