Windows 7のサウンドのトピックに関する経験を共有したいと思います。
実際、すべてが最初に見えるほど悪くはないので、すぐにそれを実演します。
やり直します。
サウンドサブシステムについて
Windows XP
ここで、サウンドサブシステムのスキームは次のとおりです。

この場合、DirectSoundインターフェイスを介して、ソフトウェアはサウンドカードのハードウェアリソース(ミキシング、サンプリング周波数の変換、さまざまなエフェクト(3Dポジショニングを含む))に直接アクセスできます。一般に、音楽/映画とゲームの両方に必要なすべてのものです。
もちろん、特にWindowsミキサー(不正確なボリュームコントロール、最大48 kHzまでのすべておよびすべての低品質オーバーサンプリングの強制)には問題がありましたが、カーネルストリーミング(kmixerを通過する同じストリーム)は非常に簡単に不要になりました。優れたドライバーを使用する(たとえば、Creativeの場合、X-Fiラインにのみ表示されます。Audigyオーディオカードでは、ミキサーは適切に動作しませんが、必要に応じて対処することは難しくありません)。
ビスタセブン
そして、熱心なサウンドエンジニアが住んでいて、彼らは悲しみを知りませんでしたが、Microsoftから新しいOSが到着しました。もちろん、劇的な変化を含むことが義務付けられました(そしてそれはどうでもかまいません)。
したがって、 ハードウェア抽象化の新しい概念の一部として、Windows Vistaは、とりわけ、完全に再設計されたオーディオ入力/出力サブシステムを受け取りました。 そしてもちろん、それは最良の方法で処理されませんでした。
彼女が今回取ったものは次のとおりです。

API-アプリケーションプログラミングインターフェイス
APO-オーディオ処理オブジェクト
CPT-クロスプロセストランスポート
KST-カーネルストリーミングトランスポート
次に説明します。 肝心なのは、DirectSoundへの出力のためにシャープ化され、新しいインターフェイスについて何も知らないプログラムはすべて、一般モード(WASAPI共有)でWASAPIに接続されている場合です。
WASAPIコンポーネント(CPUリソースのみを使用)、必要なすべての(そうではない)変換を実行します。
- さまざまなアプリケーションからのサウンドストリームを1つのフォーム(Windowsの設定で指定)に取り込む-つまり 1つのチャネル数、サンプリングレート、量子化深度。
- ストリームの混合。
さらに、ソフトウェアエフェクト(サウンドカードのドライバーに埋め込まれているアルゴリズム)を処理するプロセスでオーバーレイする機能を追加する必要があります。 たとえば、Creative X-Fiサウンドカードの場合、CMSS-3Dエフェクトの悲惨なエミュレーションがあります。
もちろん、これらすべてのプロセッサーの品質は最高ではありません。
その後、これらはすべてカーネルトランスポートを介してサウンドカードに送信されます。
次に、新しいシステムの長所と短所を客観的に評価してみましょう。
+「独自に」サウンドを処理する方法がわからないサウンドカードの基本的な処理機能
+ほぼすべてのオーディオ形式の入力サポート-最大192 kHzのサンプリング周波数と最大32ビットの浮動小数点数のマルチチャンネルオーディオ
+安定性の向上(原則として物議を醸す声明)
-疑わしい品質の強制リサンプリング
-環境への影響のないチャンネルの混合(または非常に原始的)
-ダイナミックレンジの狭まり(特に16ビットモード)
-ハードウェアDSPへのアクセス不足、つまり ゲーム内のEAX効果を含むすべての機能の損失(EAXがプログラムでエミュレートされたカードを含む-WASAPIにはそのような概念さえないため)
-CPUリソースの使用に関連するクリック、喘鳴、その他の結果。
ご覧のように、コンピューター音楽愛好家-聴衆(誰も気分を害さないことを願っています)とゲーマーは最も不運です。
サウンドカードに向かう途中の音で何が起こるかについて特に興味がない人は、ある程度の改善さえ得られるかもしれません(ただし、彼らはおそらく気にしません-それがうまくいくなら)
そして今、上記の問題のほとんどを克服する方法についてです。残念なことに、多くの人に愛されているWindows 7のリリースでは、マイクロソフトは革命に適していないからです。
音楽ファン:正確な音声出力
1.上で書いたように、Windows 7でサウンドを出力するほとんどのアプリケーションは(必要かどうかに関係なく)WASAPI共有モードを使用します。 しかし、別のモードがあります-WASAPI Exclusive。 ブロック図にガイドされている場合、アプリケーションプログラミングインターフェイスとカーネルストリーミングトランスポートの間にあるすべてのものはこのモードで破棄されます。大まかに言うと、サウンドはアプリケーションからWASAPIインターフェイスを介してサウンドカードに直接送られます。
ただし、注意が必要です:WASAPIミキサーはこのモードでは無効になっており、サウンドカードミキサーへのアクセスはまだないため(DirectSoundがないため)、アプリケーションが排他モードを使用すると、WASAPIを介した他のソースの再生は不可能になります。
しかし、とにかく、ビットごとの音声出力をサウンドカードに取得します。
2.別の方法があります。 サウンドカードにネイティブASIOドライバーがある場合、非常に幸運です。 ASIOはWASAPIとは完全に独立して機能するため、音楽を聴くときにシステムサウンドはミュートされません。ASIOとWASAPIストリームはサウンドカード自体によってミックスされます。
結論:ASIOドライバーが疑わない場合は、それを使用してください。
はい、忘れてしまった-ASIO4ALLは使用するのは望ましくありません -カーネルストリーミングのように、このOSでは非常に不安定に動作します(明らかに、WASAPIを介して着信する他のサウンドがカーネルトランスポートを定期的にブロックするため)。
今すぐポイントに 。
もちろん、音楽を聴くには、ASIO OutputプラグインまたはWASAPI出力サポートを備えたfoobar2000をお勧めします。他には何も保証できません。 foobar2000を介した音声出力の詳細設定については、 こちらをご覧ください 。
私はAIMPのファンを失望させます-WASAPI ExclusiveはAIMP3ベータ版(共有のみ)になることすら想定されておらず、その中のASIOはまだ非常に不十分です(出力チャネルの正しい数を設定できず、悪い結果につながります)。
Winampユーザーは、 ASIO出力プラグインプラグインまたはこれを提供することができます: OpenAL出力 -ところで、WASAPIをバイパスする別の方法(ブロック図から見た)。
映画ファンの場合:ビデオプレーヤーについて
ビデオプレーヤーの場合、状況はほとんど同じです。 サウンドを元の形式でカードに出力する必要があります。 Creative X-FiのCMSS-3D(ヘッドフォンまたはステレオスピーカーのサラウンドサウンド)などのハードウェアエフェクトを使用してマルチチャンネルオーディオをステレオに変換する場合、これは特に重要です。 これを行うには、サウンドがマルチチャネル形式でサウンドカードに入る必要があります。 しかし、問題は次のとおりです。一般モードのWASAPIは、Windowsの設定で指定された番号にチャネルを変換します。 ただし、5.1と指定した場合でも、このパラメーターはサウンドカードドライバーの設定と同期され、入力信号はチャンネル設定の数に対応するため、DSPはサウンドを変換しません。 つまり ここでの原則は次のとおりです。サウンドカードドライバーの設定では、接続された再生デバイス(ヘッドフォン、スピーカー)の実際の構成が必要であり、カードのサウンドは変更されません。
そのため、ここでもWASAPI Exclusiveが必要です。 Media Player Classic HomeCinemaをDirectShow ReClockフィルター(32ビットMPCのみ)と組み合わせて使用することをお勧めします。DirectShowReClockフィルターは、特にWASAPI Exclusiveにサウンドを出力できます。
ゲーマー:3Dポジショニング、EAX
はい、新しいサウンドサブシステムの導入は、間違いなく多くのゲーマーの間で怒りを引き起こしました。 Creativeのハイテクサウンドカードの幸せな所有者。
そして、おそらく、まだ知らない人のために:解決策が見つかった-OpenAL。 このライブラリは、音源の3次元配置のハードウェア効果などに関連するすべてにアクセスできます。 環境オーディオ拡張機能-バージョン5.0まで。
さらに、STALKER:Call of Pripyatなどのゲームの高度な開発者は、DirectSound用に設計された他のゲーム用にOpenALにゲームエンジンを構築し、DirectSound呼び出しをOpenALに変換する2つのプログラムを開発しました。
結論
したがって、ここでは、Windows XPからWindows 7への移行直後に不足していたものがすべてあるように見えます。もちろん、不必要なトラブルなしではなく、何をすべきか-これらはMicrosoftが提供したタスクです。
ご清聴ありがとうございました。