次の方法で共有


ボリューム コントロールの Audio-Tapered

IAudioEndpointVolume インターフェイスは、オーディオの先を細くしたボリューム コントロールを管理します。 これらのコントロールは、ボリューム スライダーを表示する Windows アプリケーションに適しています。 オーディオの先を細くしたボリューム コントロールに関連付けられているボリューム スライダーの場合、スライダーの位置を変更するたびに、スライダーが移動する距離に比例して、認識されるラウドネスが変化します。 特定の移動距離の場合、スライダーの動きがスライダーの動きの範囲の下部、上、または中央のどちらで発生するかに関係なく、認識されるラウドネスの増減の量はほぼ同じです。 認識されるラウドネスは、オーディオ信号パワーの対数でほぼ直線的に変化します。

オーディオテーパ という用語は、もともとオーディオエレクトロニクスデバイスのボリュームコントロールとして使用されるポテンショメータにおける抵抗素子のテーパ形状と呼ばれている。 オーディオテーパ抵抗素子は、ゼロボリューム位置で最も広く、最大ボリューム位置で最も狭くなります。 ポテンショメータは、デバイスがスピーカーを介して再生するオーディオ信号の電圧レベルを制御します。 このテーパは、ポテンショメータのワイパの位置とスピーカーで認識されるラウドネスとの間に、ほぼ直線的な関係を生み出すことを目的として設計されています。 チップ位置とスピーカーの電圧の関係は非線形です。

これに対し、線形テーパを持つ抵抗素子は、ポテンショメータの変動範囲に対して均一な幅を有する。 その結果、スピーカーの電圧は、ワイパ位置によって直線的に変化します。 ワイパ位置とラウドネスの関係は非線形です。

同様に、音量スライダーを表示する Windows アプリケーションは、スライダーの位置とスピーカーの出力信号レベルの関係を定義します。 この関係は、実際には、線形テーパまたはオーディオテーパにすることができます。

次の図は、リニアテーパボリューム制御のための出力電圧と認識されるラウドネスに対するスライダー位置のマッピングを示しています。

リニアテーパボリューム制御 の出力図

前の図の左側では、オーディオデジタルアナログコンバータ(DAC)の出力電圧レベルは、音量スライダが最小位置(最小)から最大位置(Max)に移動すると直線的に増加します。 縦軸のラベルVFS は、フルスケールのDAC出力電圧を表します。

ただし、認識されるラウドネスは、前の図の右側に示すように、オーディオ信号の累乗の対数とほぼ同じように変化します。 したがって、最小設定に近い間隔でスライダーを動かすと、認識されるラウドネスは比較的大きくなりますが、最大設定に近い同じ幅の間隔でのスライダーの動きは、認識されるラウドネスの変化を比較的小さくします。

前の図の右側では、縦軸のラウドネスは、フルスケールの電力設定 (0 デシベル) に対してデシベル (dB) 単位で測定されます。 ラウドネス曲線は縦軸と負の無限大で交差しますが、図には 0 デシベルから –96 デシベルまでの曲線の部分のみが表示されます。 曲線のこの部分のみを示す決定はやや任意ですが、-96 デシベルは、フルスケールの電力に対する 16 ビット DAC の次に低い出力レベルの電力を簡単に表します。 この値は 20として計算されます。log₁₀(1/65535)。

前の図の最小設定に近いスライダーの位置が小さく変化すると、ラウドネスが大きく変化するため、ユーザーはこの領域を制御するのが難しいと感じる場合があります。 スライダーの動きが比較的小さいと、目的のレベルの上または下にボリュームをプッシュできます。 音量制御が改善されると、スライダーの位置とラウドネスの間に、より直線的な関係が得られます。

次の図は、オーディオの先を細くした音量制御のために、スライダーの位置と出力電圧と認識されるラウドネスのマッピングを示しています。

オーディオテーパボリューム制御出力図

上の図の右側に示すように、認識されるラウドネスは、スライダーの位置の変化と共にほぼ直線的に変化します。 これを行うには、図の左側に示すように、DAC 電圧が位置によって非線形に変化する必要があります。 スライダーが最大設定から左に向かって移動すると、曲線は無症分的に 0 ボルトに近づく。 最小スライダー位置の電圧は非常に小さいが、正確にはゼロではない可能性がある。

IAudioEndpointVolume インターフェイスの次のメソッドは、デシベルで測定されるボリューム設定を使用します。

これらの方法は、音量設定と認識されるラウドネスの間にほぼ線形の関係を生み出します。 これらのメソッドによって管理されるボリューム コントロールのボリューム範囲 (デシベル) は、オーディオ エンドポイント デバイスによって異なります。 特定のデバイスのボリューム範囲を確認するには、IAudioEndpointVolume::GetVolumeRange メソッドを呼び出します。

これに対し、IAudioEndpointVolume インターフェイスの次のメソッドのボリューム設定は、ボリューム範囲に対してより緩やかに細い曲線に従います。

Windows Vista では、これらのメソッドは、前の図に示したオーディオの先を細くした曲線と線形テーパ曲線の中間の曲線を使用します。 今後のバージョンの Windows では、曲線の形状が変わる可能性があることに注意してください。 上記の一覧の最初の 4 つのメソッドは、0.0 (最小ボリューム) から 1.0 (最大ボリューム) までの範囲の正規化された値としてボリューム レベルを表します。 リスト内の最後の 2 つのメソッドについて、IAudioEndpointVolume::GetVolumeStepInfo メソッドを呼び出して、ボリューム範囲内のステップ数を取得します。

次のインターフェイスは、ボリューム設定に線形テーパ曲線を使用します。

  • ISimpleAudioVolume
  • IChannelAudioVolume
  • IAudioStreamVolume

これらのインターフェイスの詳細については、「セッション ボリューム コントロールの」を参照してください。 また、さまざまなバージョンの Windows のボリューム範囲と既定のボリューム レベルについては、「既定のオーディオ ボリューム設定を参照してください。

ボリューム コントロールの