X3DAudioとは - わかりやすく解説 Weblio辞書 (original) (raw)

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: "DirectSound"ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2015年4月)

DirectSoundマイクロソフトが提供するDirectXのソフトウェアの一部品であり、Windowsで標準的に使われる音声入出力用の機能である。DirectSoundは、アプリケーションサウンドカードとの間に直接的なインタフェースを提供し、アプリケーションが音や音楽を鳴らせるようにするものである。DirectSoundはオーディオデータをサウンドカードに渡す機能に加えて、録音や音をミキシングするのに必要な機能も数多く提供している。例えば、サウンドにエフェクト(リバーブエコー、フランジングなど)を付加する機能や、再生速度を変化させるためのハードウェアで制御できるバッファや、3次元空間内で音の鳴っている位置を変化させる機能(3次元立体音響)、マイクロフォンやその他の入力機器から録音する機能や、録音中にエフェクトを付加するのを制御する機能などがある。

また、DirectSoundでは複数のアプリケーションがサウンドカードに同時にアクセスする便利な方法も提供している。この3次元空間的に音を鳴らすことができる機能によって、ゲームに新次元の楽しみをもたらす。またゲーム内でのイベントに即座に反応して、音を鳴らすスクリプトを変更する機能も提供している。すなわち、ゲーム内のアクションがヒートアップしてきたらそれにあわせて音楽のリズムも速くすることができる。

数年間の開発の後、今日[_いつ?_]のDirectSoundは非常に成熟したAPIを持ち、複数チャンネルを用いた再生や高精細な音を再生できる機能など、多くの役に立つ機能を提供している。DirectSoundはゲームに使われるように設計され、プロが使うオーディオアプリケーションでは今やこれらの様々な機能を利用している。

ASIOWASAPI等と異なり、低遅延やビットパーフェクト(データが1bitたりとも変化しない入出力)は保証しないため、商業レベルでの音楽制作といった特殊な用途には不向きである。

DirectSound3D

DirectSound3D (DS3D) はWindowsでの標準3DオーディオとしてDirectXに追加されたもので、1996年、DirectX 3に導入された。

DirectSound3Dは、ソフトウェア開発者がそれぞれのオーディオカードメーカーに合わせたコードを書く代わりに、単一の標準化されたオーディオAPIを書くことで対応できるようにしている。

DirectX 5では、DirectSound3DはDirectSound3Dをアクセラレーションするサードパーティー製の3Dオーディオアルゴリズムを使う複数のサウンドカードを、マイクロソフトが用意した方法を用いて、扱うことができる能力を持つ。この機能を使えば3Dオーディオライブラリを分離する必要はなくなる。

DirectX 8ではさらに開発が進み、DirectSoundとDirectSound3D (DS3D) はDirectMusic(英語版)と統合されてDirectX Audioと呼ばれるようになった[1]

誤解されやすいが[_要出典_]、DirectSound 3Dの3D音源は、エコー、リバーブ等の環境音を模倣するエフェクトと、リスナーの位置と音源 (モノラル) の位置関係を簡易に計算するライブラリが主体である。やっていることは、旧来、ステレオPCM音源のパンとボリュームを自前で調整することで、擬似的に音源の位置 (音像) を表現していたが、これをライブラリとして吸収しただけである。したがって、実際の空気中を伝播する音の物理そのものをシミュレートして計算しているわけではなく、遮蔽や反射などは考慮されていない。

Windows OS でのサポート

Windows 95

この節の加筆が望まれています。 (2017年12月)

Windows 2000/XP

この節の加筆が望まれています。 (2017年12月)

Windows Vista/Windows 7

Windows VistaはUniversal Audio Architecture (UAA) に基づいた完全に書き直されたオーディオスタックを特徴とする。オーディオスタックを再設計してアーキテクチャを変えた結果、DirectSoundからオーディオドライバへの直接のパスが存在しない形になった。DirectSoundとMMEのような他の従来APIはWASAPIインターフェイスを用いてエミュレーションされている。すなわち、DirectSoundはマイクロソフトのソフトウェアミキサ上でエミュレーションモードで動いている。エミュレータはハードウェア抽象化がされていないので、DirectSoundをアクセラレーションできるハードウェアはない。これはDirectSoundのアクセラレーションに依存しているハードウェアないしソフトウェアのパフォーマンスが以前より下がってしまうことを意味する。しかし、よりパワーのあるハードウェアを使えば、パフォーマンス上の問題はないと考えられる。ただし、DirectSound3Dを使ってハードウェア的に3Dオーディオエフェクトをかけることはできなくなっている[2]

ASIOOpenALのようなAPIは、Windows Vistaのアーキテクチャ変更による影響を受けないので、サウンドカードのドライバがこれらのAPIに対応すれば、サウンドデバイスのアクセラレーション機能を利用することができる。アプリケーションがこれらのアクセラレーション機能を使うには、DirectXやMMEを使わずにASIOやOpenALのAPIを使うようにプログラムを変更する必要がある。

WindowsにはもうひとつKernel StreamingというAPIがあり、ミキサを通らずにサウンドデバイスにアクセスできる。この方法でASIO4ALLというプロジェクトがASIO非対応のデバイスでASIOを使えるようにしている。

もうひとつの方法として、アプリケーションが使うオーディオスタックを差し替えて、OpenALを使わせてしまうという方法がある。この方法でCreative Labs社の_Creative ALchemy Project_という技術がDirectSoundのアクセラレーションをサポートしている[3]

Windows 8

この節の加筆が望まれています。 (2017年12月)

Windows CE

この節の加筆が望まれています。 (2017年12月)

DirectSoundはWindows CEのバージョン4.2までサポートされているが、5.0になってから削除された。Windows CE 6.0はDirectSoundをサポートしていない。代わりにWaveform Audio APIを使ってアプリケーションを書き直すことが薦められている。

XAudio

Xbox 360Windowsを統合するために、マイクロソフトは、新しいアプリケーションをXAudioと**XACTのようなXboxと同等なオーディオAPIに移行してもらうよう積極的に活動をしている。2007年の終わり頃から、マイクロソフトはDirectSoundをXAudio2に置き換える予定である[_要出典_]。XAudio2は、クロスプラットフォーム (WindowsとXbox) で共通に使える低レベルオーディオAPIであり、デジタル信号処理を最適に行うために設計されたXbox専用のAPIであるXAudio APIをさらに進化させたものである。XAudio2はWindows XPWindows Vista、そしてXbox 360上で利用できる。Windows XPではDirectSoundを、Windows VistaではWASAPI (新しいオーディオスタック) を、そしてXboxではコンソールハードウェアレイヤーを使って実装されている[4]。XAudio2はXACTを通してハイレベルなオーサリング/再生ができ、X3DAudioライブラリを通して3D機能を提供している。XACTエンジンは高レベルオーディオライブラリであり、X3DAudio**はWindowsとXboxの両方のプラットフォーム上で利用可能な、空間音響用ヘルパーライブラリである。

XAudio2はXACTのような高レベルオーディオAPIのために、信号処理を使って特別なエフェクトを行う。いくつかの機能を以下に列挙する。

なお、Windows 8用のソフトウェア開発キットであるWindows SDK 8.0以降ではWindows SDKとDirectX SDKが統合されたが、その際にXACTが廃止された。またWindows 8において、デスクトップアプリでは依然としてDirectSoundが利用可能であるものの、Windowsストアアプリ(WinRTアプリ)ではDirectSoundは利用できず、XAudio2のみが利用可能となっている[7]

Windows 7およびそれ以前のOSでXAudio2を利用するためには、DirectXエンドユーザーランタイムもしくはDirectX SDKのインストールが必要であり、またXAudio2 v2.7までしか使用できないが、Windows 8以降にはXAudio2 v2.8[8]が、そしてWindows 10にはXAudio2 v2.9が標準搭載されている。

サンプリングレートの上限

DirectSoundが処理可能なサンプリングレートは最大200kHzまでであり[9]、192kHzより上のサンプリングレート、例としてUSB-DACなどのサウンドデバイスが対応している384kHzにWindows側で設定している状態だと、Directsoundを扱うアプリケーション(2010年代以前に作られた古いゲームなど)が起動しなくなったり、起動出来ても音が一切出力されなくなる場合がある。 これに対処するにはサンプリングレートを192kHz以下に設定し直すと正常に動作する。

DirectSoundではなく、XAudio2やWASAPIASIOで動作するアプリケーションは384kHzに設定している状態でも動作可能である。

関連項目

脚注

[脚注の使い方]

  1. ^ DirectX 8.0 の紹介
  2. ^ [特集]Vista買うのはまだ早い!(3)ゲームサウンド編
  3. ^ 【4Gamer.net】[レビュー]Creative ALchemy
  4. ^ コア オーディオの概要
  5. ^ Windows と Xbox 360 の違い
  6. ^ XAudio2 Versions - Win32 apps | Microsoft Learn
  7. ^ Desktop Games on Windows 8.x | Games for Windows and the DirectX SDK blog
  8. ^ XAudio2 and Windows 8 | Games for Windows and the DirectX SDK blog
  9. ^ What's New in DirectSound

外部リンク

マイクロソフトのAPIとフレームワーク
グラフィック Desktop Window Manager Direct2D Direct3D (拡張) GDI / GDI+ WPF Silverlight WinUI Windows Color System Windows Image Acquisition Windows Imaging Component
オーディオ DirectMusic DirectSound DirectX plugin XACT Speech API
マルチメディア DirectX (Media Objects Video Acceleration) DirectInput DirectPlay DirectShow Image Mastering API Managed DirectX Media Foundation XNA Windows Media Video for Windows
ウェブ MSHTML EdgeHTML RSS Platform JScript VBScript BHO XDR SideBar Gadgets
データアクセス Data Access Components Extensible Storage Engine ADO.NET ADO.NET Entity Framework Sync Framework Jet Engine MSXML OLE DB OPC
ネットワーク Winsock (LSP) Winsock Kernel Filtering Platform Network Driver Interface Specification Windows Rally BITS P2P API MSMQ MS MPI
コミュニケーション Messaging API Telephony API WCF
管理 Win32 console Windows Script Host WMI PowerShell Task Scheduler Offline Files Shadow Copy Windows Installer Error Reporting Event Log Common Log File System
コンポーネントモデル COM COM+ ActiveX Distributed Component Object Model .NET Framework
ライブラリ Base Class Library (BCL) Microsoft Foundation Classes (MFC) Active Template Library (ATL) Windows Template Library (WTL)
デバイスドライバ Windows Driver Model Windows Driver Foundation KMDF UMDF WDDM NDIS UAA Broadcast Driver Architecture VxD
セキュリティ Crypto API (CAPICOM) Windows CardSpace Data Protection API Security Support Provider Interface (SSPI)
.NET ASP.NET ADO.NET Base Class Library (BCL) Remoting Silverlight TPL WCF WCS WPF WF
ソフトウェアファクトリー EFx Factory Enterprise Library Composite UI CCF CSF
IPC MSRPC Dynamic Data Exchange (DDE) Remoting WCF
アクセシビリティ Active Accessibility UI Automation
テキストと多言語サポート DirectWrite Text Services Framework Text Object Model Input method editor Language Interface Pack Multilingual User Interface Uniscribe
一覧 カテゴリ:マイクロソフトのAPI