IDirectMusicPerformance8 インターフェイス
IDirectMusicPerformance8 インターフェイスは、再生の総合的なマネージャである。このインターフェイスは、ポートの追加と削除、ポートへのパフォーマンス チャンネルのマッピング、セグメントの演奏、メッセージのディスパッチとツール経由のルーティング、イベント通知の要求と受け取り、さまざまなパラメータの設定と取得に使われる。また、タイミングに関する情報を取得したり、システム間でタイムとミュージック値を変換したりするためのメソッドも備えている。
アプリケーションで 2 つの完全なミュージック セットを同時に演奏する必要がある場合は、複数のパフォーマンスを作成することで実現できる。異なるパフォーマンスではテンポが異なっていてもかまわないが、1 つのパフォーマンス内にあるすべてのセグメントは、同じテンポで演奏する必要がある。
IDirectMusicPerformance8 は、IDirectMusicPerformance インターフェイスを引き継ぎ、新しいメソッドが追加されている。
IUnknown から継承するメソッドのほかに、IDirectMusicPerformance8 インターフェイスでは、カテゴリ別に以下のメソッドが公開されている。
オーディオパス
メソッド | 説明 |
CreateAudioPath | 構成オブジェクトからオーディオパスを作成する。 |
CreateStandardAudioPath | 標準構成でオーディオパスを作成する。 |
GetDefaultAudioPath | デフォルトのオーディオパスを取得する。 |
SetDefaultAudioPath | パフォーマンスにデフォルト オーディオパスを設定してアクティブにする。 |
メッセージ
メソッド | 説明 |
AllocPMsg | パフォーマンス メッセージにメモリを割り当てる。 |
ClonePMsg | パフォーマンス メッセージのコピーを作成する。 |
FreePMsg | パフォーマンス メッセージに割り当てられたメモリを解放する。 |
SendPMsg | パフォーマンス メッセージを送信する。 |
MIDI 変換
メソッド | 説明 |
MIDIToMusic | 提供されるコード、サブコード レベル、演奏モードを使って、MIDI ノートの値を DirectMusic のミュージック値に変換する。 |
MusicToMIDI | DirectMusic のミュージック値を MIDI ノートの値に変換する。 |
通知
メソッド | 説明 |
AddNotificationType | パフォーマンスに通知タイプを追加する。 |
GetNotificationPMsg | 保留中の通知メッセージを取得する。 |
RemoveNotificationType | 以前に追加された通知タイプをパフォーマンスから削除する。 |
SetNotificationHandle | 通知のイベント ハンドルを設定する。 |
パラメータ
メソッド | 説明 |
GetGlobalParam | パフォーマンスからグローバル値を取得する。 |
GetParam | トラックからデータを取得する。 |
GetParamEx | トラックからデータを取得する。自己制御セグメントをサポートする。 |
SetGlobalParam | パフォーマンスのグローバル値を設定する。 |
SetParam | 制御セグメントのトラックにデータを設定する。 |
パフォーマンス チャンネル
メソッド | 説明 |
AssignPChannel | 1 つのパフォーマンス チャンネルをパフォーマンスに割り当て、ポート、グループ、MIDI チャンネルにマップする。 |
AssignPChannelBlock | 16 のパフォーマンス チャンネルから成るブロックをパフォーマンスに割り当て、ポートとチャンネル グループにマップする。 |
PChannelInfo | 指定されたパフォーマンス チャンネルのポート、グループ、MIDI チャンネルを取得する。 |
再生
メソッド | 説明 |
GetSegmentState | 演奏中のプライマリ セグメント状態、または特定の時点で演奏されているプライマリ セグメント状態を取得する。 |
IsPlaying | 指定されたセグメントまたはセグメント状態がスピーカから聞こえているかどうかを確認する。 |
PlaySegment | セグメントの再生を開始する。 |
PlaySegmentEx | セグメントの再生を開始する。トランジションとオーディオパスのオプションを含む。 |
Stop | セグメントまたはセグメント状態の再生を停止する。 |
StopEx | セグメント、セグメント状態、またはオーディオパスの再生を停止する。 |
ポート
メソッド | 説明 |
AddPort | パフォーマンスにポートを割り当てる。 |
RemovePort | パフォーマンスからポートを削除する。 |
タイミング
メソッド | 説明 |
AdjustTime | パフォーマンスの内部時間を前方または後方に調整する。 |
GetBumperLength | メッセージがポート バッファに置かれたタイムと、ポートがメッセージの処理を開始するタイムの間の間隔を取得する。 |
GetLatencyTime | 遅延時間を取得する。遅延時間とは、スピーカから音楽が聞こえているパフォーマンス タイムに、メッセージをキューに入れてレンダリングするための所要時間を加えたものである。 |
GetPrepareTime | トラックがメッセージを送信してからサウンドが聞こえるまでの間隔を取得する。 |
GetQueueTime | キューのメッセージをフラッシュ (解放) できる最も早いタイムを取得する。 |
GetResolvedTime | 指定されたタイムを、指定された境界に調整する。 |
GetTime | パフォーマンスの現在のタイムを取得する。 |
MusicToReferenceTime | MUSIC_TIME フォーマットのパフォーマンス タイムを REFERENCE_TIME フォーマットのパフォーマンス タイムに変換する。 |
ReferenceToMusicTime | REFERENCE_TIME フォーマットのパフォーマンス タイムを MUSIC_TIME フォーマットのパフォーマンス タイムに変換する。 |
RhythmToTime | リズム タイムをミュージック タイムに変換する。 |
SetBumperLength | メッセージがポート バッファに置かれたタイムと、ポートがメッセージの処理を開始するタイムの間の間隔を設定する。 |
SetPrepareTime | トラックがメッセージを送信してからサウンドが聞こえるまでの間隔を設定する。 |
TimeToRhythm | ミュージック タイムをリズム タイムに変換する。 |
ツールグラフ
メソッド | 説明 |
GetGraph | パフォーマンスのツールグラフを取得する。 |
SetGraph | パフォーマンスのツールグラフを置き換える。 |
その他
メソッド | 説明 |
CloseDown | パフォーマンス オブジェクトを閉じる。 |
DownloadInstrument | DLS 音色データをポートにダウンロードする。 |
InitAudio | パフォーマンスを初期化し、オプションでデフォルトのオーディオパスをセットアップする。 |
Invalidate | 指定されたタイムから前方に向かってキュー内のすべてのメッセージをフラッシュ (解放) し、すべてのセグメントのすべてのトラックが指定されたタイム以降のデータを再送するようにする。 |
要件
** ヘッダー:**dmusici.h で宣言。
参照