Microsoft DirectX 8.0 (C++) |
サウンド データは、メッセージの形で DirectMusic パフォーマンスに渡される。ほとんどの場合、メッセージの作成および処理は自動的に行われ、アプリケーションで直接これらの処理をする必要はない。ただし、メッセージの基本的な知識は DirectMusic のしくみを理解するのに役立ち、理解が深まるほど、メッセージを使ってパフォーマンスを細かく制御できるようになる。
DirectMusic では、2 種類のメッセージが使用される。
アプリケーションは、MIDI メッセージを直接処理しない。セグメントを演奏する場合、そのすべてのデータはパフォーマンス メッセージ形式であり、最終的な出力ツールに渡されるまでその形式のままである。最終的な出力ツールでは、パフォーマンス メッセージを MIDI メッセージ フォーマットに変換した後、シーケンス化してシンセサイザに渡す。ただし、一部のパフォーマンス メッセージには、スタンダード MIDI メッセージと同様の情報が含まれている。このようなメッセージを理解するために、ここでは MIDI メッセージ フォーマットのいくつかの点について説明する。
注 DMUS_MIDI_PMSG 構造体は、スタンダード MIDI メッセージのデータに相当するデータを格納する。ただし、パフォーマンス メッセージである。
ほとんどのパフォーマンス メッセージは、セグメントが演奏されるときに、セグメントのトラックによって送信される。アプリケーションは、メッセージを送信して、MIDI コントローラの設定、単一のノートの演奏、テンポの変更などの処理も行うことができる。
メッセージを送信した後、アプリケーションはツールを実装する方法以外にメッセージを取得または変更できない。たとえば、DirectMusic Producer でオーサリングしたセグメントには、DMUS_LYRIC_PMSG メッセージを生成する歌詞トラックが含まれる場合がある。アプリケーションでこの歌詞を表示する方法は、その目的に合ったツールを実装する方法だけである。詳細については、「DirectMusic ツール」を参照すること。
通知は、メッセージがツールでのみ処理できるという規則の例外である。IDirectMusicPerformance8::GetNotificationPMsg メソッドによって、アプリケーションは DMUS_NOTIFICATION_PMSG メッセージを取得できる。詳細については、「通知とイベントの処理」を参照すること。
次のトピックでは、メッセージとそのルーティング方法について説明する。