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_PART の dwFlags メンバに DMUS_PMSGF_LOCKTOREFTIME が存在する場合を除き、ミュージック タイムで指定する。この場合の単位はミリ秒単位となり、テンポの変化によって影響を受けることはない。
- mtOriginalStart
- オリジナルの開始タイム。メッセージを作成するときは 0 またはカーブのオリジナルの開始タイムに設定しなければならない。
- mtResetDuration
- 無効化に応答してリセットできる間のカーブの終わり後の時間の長さ。bFlags 内に DMUS_CURVE_RESET がない場合は無視される。この値は、DMUS_PMSG_PART の dwFlags メンバに 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 である。
nStartValue、nEndValue、および 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、カーブ