次の方法で共有


KSPROPSETID_Synth

KSPROPSETID_Synth プロパティ セットには、シンセ ノード (KSNODETYPE_SYNTHESIZER) の構成に対してグローバルなプロパティが含まれています。

このセット内のプロパティ項目は、ヘッダー ファイル Dmusprop.h で定義されている KSPROPERTY_SYNTH リストが指定します。

用法の要点テーブル

KSPROPERTY_SYNTH_CAPS プロパティは、シンセサイザーの機能を決定するためにシステムが使用します。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

ピン留めする

KSNODEPROPERTY

SYNTHCAPS

プロパティ値 (操作データ) は SYNTHCAPS 型の構造であり、シンセサイザーの機能を指定します。 たとえば、次のような機能があります。

  • 使用可能なサンプル メモリの量

  • チャンネル グループの最大数

  • 音声の最大数

  • オーディオ チャネルの最大数

  • レンダリング効果

詳細については、「SYNTHCAPS」を参照してください。

戻り値

KSPROPERTY_SYNTH_CAPS プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。

シンセサイザー機能の詳細については、Microsoft Windows SDK ドキュメントの「IDirectMusicPort::GetCaps メソッド」と「DMUS_PORTCAPS 構造」を参照してください。

用法の要点テーブル

KSPROPERTY_SYNTH_CHANNELGROUPS プロパティは、ピン インスタンス上のアクティブなチャネル グループの数を設定または取得するためにシステムが使用します。 チャネル グループには、各ピン インスタンスで 0 から始まる番号が付けられます。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

はい

ピン留めする

KSNODEPROPERTY

ULONG

プロパティ値 (操作データ) は ULONG 型で、ピンがサポートするチャネル グループの数を指定します。 ピンが n 個のチャネル グループをサポートしている場合、ピンのチャネル グループには 0 から n-1 の番号が付けられます。

戻り値

KSPROPERTY_SYNTH_CAPS プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次の表に、考えられる失敗コードの一部を示します。

状態コード 意味

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて操作を完了できませんでした。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

チャネル グループの詳細については、Microsoft Windows SDK ドキュメントの「IDirectMusicPort::GetNumChannelGroups」および「IDirectMusicPort::SetNumChannelGroupsメソッド」の説明を参照してください。

用法の要点テーブル

KSPROPERTY_SYNTH_LATENCYCLOCK プロパティは、ストリームの現在の待機時間クロック時間 (常にマスター クロック時間より大きい) のミニポート ドライバーに対してクエリを実行するために使用されます。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

ピン留めする

KSNODEPROPERTY

ULONGLONG

プロパティ値 (操作データ) は ULONGLONG 型で、シンセサイザーの現在の待機時間を表します。 この時間はマスター クロックに対して指定され、100 ナノ秒単位で表されます。

戻り値

KSPROPERTY_SYNTH_LATENCYCLOCK プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次の表に、考えられる失敗コードの一部を示します。

状態コード 意味

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて操作を完了できませんでした。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

STATUS_INVALID_DEVICE_REQUEST

このデバイスでは、この操作は無効です。

待機時間クロックは、通常、複数のデバイス間でオーディオ出力ストリームを同期するために使用されます。

KSPROPERTY_SYNTH_LATENCYCLOCK get-property 要求は、現在のマスター クロック時間に加えて、ストリームが通過するオーディオ フィルターの最小保証待機時間と等しい待機クロック時間を返す必要があります。 オーディオ データを現在の待機クロック時間よりも早く再生するようにスケジュールするアプリケーション プログラムには、データが遅れて再生される危険性があります。

待機クロックの詳細については、次を参照してください。

  • 待機クロックの KSPROPERTY_SYNTH_LATENCYCLOCK プロパティの議論。

  • Microsoft Windows SDK ドキュメントの IDirectMusicPort::GetLatencyClock メソッドと IReferenceClock::GetTime メソッドの説明。

用法の要点テーブル

KSPROPERTY_SYNTH_PORTPARAMETERS プロパティは、DirectMusic ポートの構成パラメーターを取得するために使用されます。これは、音楽データを送受信するデバイスの DirectMusic 用語です。 (KS の用語では、DirectMusic ポートは DMus ポート ドライバーに対応していません。DirectMusic フィルターのレンダリングピンまたはキャプチャ ピンに対応します)。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

ピン留めする

KSNODEPROPERTY + SYNTH_PORTPARAMS

SYNTH_PORTPARAMS

プロパティ記述子 (インスタンス データ) は、直ちに SYNTH_PORTPARAMS 構造体が続く KSNODEPROPERTY 構造体で構成されます。 プロパティ要求を送信する前に、クライアントは要求されたパラメーター値を SYNTH_PORTPARAMS 構造体に書き込んで指定します。

プロパティ値 (操作データ) も SYNTH_PORTPARAMS 型です。 ミニポート ドライバーは、ポートを構成するために実際に使用するパラメーター値でこの構造体を読み込みます。

戻り値

呼び出し元によって指定された DirectMusic ポートの構成に成功した場合、ミニポート ドライバーは、STATUS_SUCCESS コードを返します。 成功しなかった場合は、適切なエラー コードを返します。 次の表は、考えられるエラー状態コードの一部を示しています。

状態コード 意味

STATUS_NOT_ALL_ASSIGNED

操作は成功しましたが、ミニポート ドライバーは、呼び出し元がプロパティ値で有効としてマークされているパラメーター値の 1 つ以上を変更する必要がありました。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

これは、処理する DirectMusic プロパティ項目の中で最も複雑です。 このプロパティは get 要求のみをサポートしますが、get 要求ではポート パラメーターも設定されます。 ポートは、プロパティ要求のプロパティ記述子として SYNTH_PORTPARAMS 構造体を渡します。 プロパティ値バッファーはプロパティ要求に付随しますが、これは取得要求であるため、バッファーはミニポート ドライバーから情報を取得するためにのみ使用されます。

ミニポート ドライバーは、最初にプロパティ記述子からプロパティ値バッファーに SYNTH_PORTPARAMS 構造体をコピーする必要があります。 次に、呼び出し元が要求したすべてのパラメーター値 (有効としてマーク) をサポートできるかどうかを確認します。 ミニポート ドライバーが 1 つ以上の要求されたパラメーター値をサポートできない場合は、(プロパティ値バッファー内の SYNTH_PORTPARAMS 構造体内) これらの特定のパラメーターの要求された値を、サポートできる値で上書きする必要があります。

ミニポート ドライバーが呼び出し元の SYNTH_PORTPARAMS に変更を加えない場合、呼び出し元は、呼び出し元が最初にミニポート ドライバーに送信したプロパティ記述子のパラメーターと完全に一致するプロパティ値を取得する必要があります。

規則により、ドライバーは、SYNTH_PORTPARAMS の dwValidParams メンバーに対応するビットが設定されていないパラメーターの値も入力します。 これにより、呼び出し元は、これらのパラメーターに使用されるミニポート ドライバーの既定値を確認できます。 ミニポート ドライバーは、ウェーブインターフェイス デバイスの構築に使用した実際のパラメーター値を出力します。

ミニポート ドライバーの KSPROPERTY_SYNTH_PORTPARAMETERS ハンドラーは、サンプルレートの変更の要求を正しく処理するように準備する必要があります。

用法の要点テーブル

KSPROPERTY_SYNTH_RUNNINGSTATS プロパティは、シンセサイザーのパフォーマンス統計に対するミニポート ドライバーをクエリするために使用されます。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

ピン留めする

KSNODEPROPERTY

SYNTH_STATS

プロパティ値 (操作データ) は、SYNTH_STATS 型の構造体です。 ミニポート ドライバーのプロパティ ハンドラーは、この構造体に次の統計情報を書き込みます。

  • 再生中の平均音声数

  • CPU 使用率

  • 喪失したノートの数

  • フリー メモリの容量

  • ピーク ボリューム レベル

戻り値

KSPROPERTY_SYNTH_RUNNINGSTATS プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次の表に、考えられるエラー コードの一部を示します。

状態コード 意味

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて操作を完了できませんでした。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

STATUS_INVALID_DEVICE_REQUEST

このデバイスでは、この操作は無効です。

シンセサイザーのパフォーマンス統計は、デバイスが KSSTATE_RUN 状態を維持している間に継続して更新されます。 デバイスがこの状態になると、そのたびに統計情報がリセットされ、ピーク時のボリュームや失われたノート数などの累積値がゼロになります。

詳細については、Microsoft Windows SDK ドキュメントの IDirectMusicPort::GetRunningStats メソッドの説明とDMUS_SYNTHSTATS 構造体を参照してください。

用法の要点テーブル

KSPROPERTY_SYNTH_VOICEPRIORITY プロパティは、ミニポート ドライバーが音声キャッシュから音声をバンプする必要がある場合に、MIDI シンセサイザー内の特定の音声に必要な優先順位を指定します。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

はい

ピン留めする

KSNODEPROPERTY + SYNTHVOICEPRIORITY_INSTANCE

DWORD

プロパティ記述子 (インスタンス データ) は、KSNODEPROPERTY 構造体で構成され、その直後に SYNTHVOICEPRIORITY_INSTANCE 構造体が続きます。この構造体は、音声のチャネル グループ (16 MIDI チャンネルのセット) とチャネル番号 (グループ内) を指定します。

プロパティ値 (操作データ) は、優先度を指定する DWORD です。 クライアントは、KSPROPERTY_SYNTH_VOICEPRIORITY set-property 要求を使用して音声の新しい優先順位をミニポート ドライバーに送信し、KSPROPERTY_SYNTH_VOICEPRIORITY get-property 要求を使用して、ミニポート ドライバーから音声の現在の優先度を取得します。

音声の優先順位

次のチャネル グループの優先順位は、ヘッダー ファイル Dmusprop.h で定義されています。

  DAUD_CRITICAL_VOICE_PRIORITY
  DAUD_HIGH_VOICE_PRIORITY
  DAUD_STANDARD_VOICE_PRIORITY
  DAUD_LOW_VOICE_PRIORITY
  DAUD_PERSIST_VOICE_PRIORITY

上記のリストは、順位が高いものが上に、低いものが下に表示されます。 これらの優先順位は、チャネル グループ内の各チャネルの音声優先度に到達するためのチャネル優先度オフセットを持つ ORed です。 結果の優先順位は、get および set-property 要求で渡されます。

上記のチャネル グループ優先度の値は、チャネル優先度オフセットと比較して大きくなります。 その結果、チャネル グループの優先順位を変更すると、チャネル グループ内のチャネルの相対的な優先順位を変更することなく、チャネル グループ全体の優先度が他のチャネル グループに対して相対的に増減されます。

既定の優先順位

シンセサイザー ミニポート ドライバーが作成されると、各音声に既定の優先順位が割り当てられます。 既定は次のように定義されています。

  • 既定では、優先順位はチャネル グループ間で等しくなります。 つまり、たとえば、チャネル グループ 1 のチャネル 5 の優先順位は、チャネル グループ 2 のチャネル 5 と同じです。

  • DLS レベル 1 の仕様に従って、チャネル 10 (MIDI パーカッション チャンネル) の優先度が最も高く、次に 1 から 9、11 から 16 が続きます。

ヘッダー ファイル Dmusprop.h は、次の優先度オフセットを定義します。

  DAUD_CHAN10_VOICE_PRIORITY_OFFSET
  DAUD_CHAN1_VOICE_PRIORITY_OFFSET
  DAUD_CHAN2_VOICE_PRIORITY_OFFSET
  DAUD_CHAN3_VOICE_PRIORITY_OFFSET
  DAUD_CHAN4_VOICE_PRIORITY_OFFSET
  DAUD_CHAN5_VOICE_PRIORITY_OFFSET
  DAUD_CHAN6_VOICE_PRIORITY_OFFSET
  DAUD_CHAN7_VOICE_PRIORITY_OFFSET
  DAUD_CHAN8_VOICE_PRIORITY_OFFSET
  DAUD_CHAN9_VOICE_PRIORITY_OFFSET
  DAUD_CHAN11_VOICE_PRIORITY_OFFSET
  DAUD_CHAN12_VOICE_PRIORITY_OFFSET
  DAUD_CHAN13_VOICE_PRIORITY_OFFSET
  DAUD_CHAN14_VOICE_PRIORITY_OFFSET
  DAUD_CHAN15_VOICE_PRIORITY_OFFSET
  DAUD_CHAN16_VOICE_PRIORITY_OFFSET

上記のオフセットの一覧は、一覧の一番上に優先順位が最も高い順に並べ替えられます。 ヘッダー ファイル Dmusprop.h は、これらのオフセットを DAUD_STANDARD_VOICE_PRIORITY でビットごとの OR 操作を行うことで各チャネル グループのチャネルの既定優先順位も定義します。 たとえば、次の定義は、各チャネル グループのチャネル 1 の既定優先順位を示します。

  #define DAUD_CHAN1_DEF_VOICE_PRIORITY \
    (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN1_VOICE_PRIORITY_OFFSET)

戻り値

KSPROPERTY_SYNTH_VOICEPRIORITY プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次の表に、考えられるエラー コードの一部を示します。

状態コード 意味

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて操作を完了できませんでした。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

音声の優先順位の詳細については、Microsoft Windows SDK ドキュメントの IDirectMusicPort::GetChannelPriority メソッドと IDirectMusicPort::SetChannelPriority メソッドの説明を参照してください。

用法の要点テーブル

KSPROPERTY_SYNTH_VOLUME プロパティは、シンセサイザー デバイスのボリューム レベルを取得または設定します。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

はい

ピン留めする

KSPROPERTY

LONG

プロパティ値 (操作データ) は LONG 型で、シンセサイザー デバイスのボリューム レベルを指定します。 ボリュームの設定は、100 分の 1 デシベル単位で指定されます。 ミニポート ドライバーは、そのボリュームを変更するか、要求がプロパティを取得または設定するかどうかに応じて、そのボリュームを報告する必要があります。

戻り値

KSPROPERTY_SYNTH_VOLUME プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次の表に、考えられるエラー コードの一部を示します。

状態コード 意味

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて操作を完了できませんでした。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

用法の要点テーブル

KSPROPERTY_SYNTH_VOLUMEBOOST プロパティは、シンセサイザー デバイスのボリュームをブーストする量を指定します。

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

はい

ピン留めする

KSNODEPROPERTY

LONG

プロパティ値 (操作データ) は LONG 型で、ミックス ステージ後にオーディオ信号をブーストする量によって指定します。 これは、すべての音声アーティキュレーションとミキシングが完了した後にシンセサイザーの最終出力に追加するボリュームの量です。 ボリュームブースト量は、100 分の 1 デシベル単位で指定されます。 この値は、正数の場合もあれば負数の場合もあります。

戻り値

KSPROPERTY_SYNTH_VOLUMEBOOST プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次の表に、考えられるエラー コードの一部を示します。

状態コード 意味

STATUS_BUFFER_TOO_SMALL

バッファーが小さすぎて操作を完了できませんでした。

STATUS_UNSUCCESSFUL

操作が正常に完了しませんでした。

出力に他のブーストを追加する必要はありません。 シンセサイザーは、アーティキュレーションの厳密な DLS レベル 1 規則に従う必要があります。

このプロパティは、シンセサイザーの音量をシステム内の他のオーディオ出力と等しくするために使用されるため、ブーストの量はすべてのデバイスで一貫した方法で解釈する必要があります。