• 締切済み

asio や wasapi  とは?

PCオーディオの分野で、 asio とか wasapi という用語について、教えてください。 (1)いったい、これは何者なのでしょうか?  どのような機能があるのでしょうか? また、この2語にちなんで、カーネルミキサーという言葉が出てくるようですが、これは、いったい何者なのでしょうか?   (2)asio と wasapi どでは、機能上どのような違いがるのでしょうか?  プレーヤーソフトで、asio に設定したのと、wasapi で設定したのとでは、どう違うのでしょうか? 以上の2点です。  よろしく。

みんなの回答

回答No.5

既にみなさんの解説がありますが、図があったほうがわかりやすいかと思うので、紹介しておきます。 http://pcde24bit192khz.blogspot.jp/2010/04/blog-post_17.html 音質が良くなるというより、改変しない出力がそのまま出てくるので、本来オーディオ用途として作られていないパソコンが、(デジタル的に)やっとCDプレーヤー並になる、ということだと理解しています。

kurosuke527
質問者

お礼

オーディオインターフェースのダイヤグラム、ありがとうございました。 大変わかりやすい絵です。

回答No.4

ASIOはSTAINBAGEが開発したDTMやDAW用のインターフェースです、PCの外部にDSP(デジタル・シグナル。プロセッサ)を持っていて、そちら側でオーデイオ信号処理を行いますので、高音質のオーディオ信号でもPCのパワーが無くても処理が可能です、一方WASAPIはPC側での高音質の為のインターっフェースでかなりのCPUパワーを必要とします、つまり、非力なPCだと音飛びが起きます、またASIOはレイテンシー(時間遅れ)が小さいので音楽に直接声を録音する時などは有利です(音楽と音声がずれない)簡単に言えばこの程度です。

kurosuke527
質問者

お礼

簡潔にして要を得たご説明に、おおいに感じ入りました。  ありがとうございました。

  • John_Papa
  • ベストアンサー率61% (1186/1936)
回答No.3

このカテゴリで次の相談「PCシステム音とDAWの出力を同時に行いたい」への私の回答と大いに関連しますのでご参照ください。 asio やwasapi の解説はすでに先輩回答者がされてますので、割愛します。 XPまでのカーネルミキサーの背景には、AC'97があり、 Vista以降のWindowsSoundシステムの背景には、HD Audioがあります。 http://ja.wikipedia.org/wiki/Audio_Codec_97 http://ja.wikipedia.org/wiki/High_Definition_Audio カーネルミキサーの内部処理最大20bit WindowsSoundシステムは内部処理が最大32bit (推定です。※注)という違いがあります。 ミキシングするためには、サンプリングレートを揃えなければなりませんが、その為に微積分演算が行われるそうです。 微積分の結果、判りやすいインパルスなら前後ににじみが出る事になるのですが、人間の聴感には判別不可能もしくは1bitDACに代表されるごとく好感覚で容認されています。 で、微積分が『ソースに因っては基データ16bitに対して24bitでは大幅に桁が溢れ、聴いて判るほど音質が劣化する場合が有るのでこのチップは内部演算処理を32bitにしている』と某メーカーのエンジニアから聞いたことがあります。 24bitで劣化が判るなら、カーネルミキサーの20bitでは言うに及ばずですね。 AC'97の時代はCPUにもマルチコアなんてのも無かったし、Microsoftのカーネルミキサーばかりを責めるのも酷かと思います。 カーネルですので、OSがマウスやキーボードなどと同列の管理デバイスとしてサウンドを扱う事になります。 WindowsSoundシステムは、HD AudioやマルチコアCPUを背景に開発されました。こちらではサウンドはカーネルデバイスではなくアプリケーション並みの管理デバイスとしてOSのカーネルと切り離されます。他のカーネルデバイスの不調でリアルタイム性の要求されるサウンドデバイスに不具合が生じ、他のデバイスの不調が直っても不具合が生じたサウンドデバイスの為にOSがフリーズするという事は無くなります。 WindowsSoundシステムも初期には不具合も有ったようですが、音的には排他モードではないミキサーを通してもASIOやWASAPIに遜色ないレベルに達したと思います。 音質に関係ない、動作遅延であるレイテンシティが問題となる場合は、ASIOやWASAPIによるサウンドデバイスの排他使用モードで遅延を最小限に留めればよいでしょう。遅延の許される鑑賞ではWindowsSoundシステムのミキサーを通しても良いでしょう。ビデオの48KHzサンプリングとCDの44.1KHzを同時に鳴らしてもGoodな音質で鳴ってくれる(本来混ざるべきでないので聞くに耐えない。笑)ようになりました。 カーネルミキサー以前には、レガシーオーディオデバイスの時代が有り、排他モードでした。MicrosoftではMMEというデバイスアクセスを用意してました。 http://ja.wikipedia.org/wiki/MME (Wiki記者もっと頑張れ!笑) オーディオソフトにはAC'97の持つレガシ互換機能を使って実質上MMEでサウンドデバイスにアクセスするものがありました。その場合、ミキシングやレイテンシティやサンプリングレートの問題は全てアプリケーションソフトが面倒見なければなりません。 WindowsXPでは、アプリケーションソフトがMMEなどで直にサウンドデバイスの面倒を見るか、ASIOデバイスを使うかという選択が音の良い音楽ソフトの必須条件だった訳です。 WindowsXPが発売された後も音楽用にWindows98SEマシンを残しておいたことを思い出します。

kurosuke527
質問者

お礼

丁寧な情報、大変ありがとうございました。 大いに勉強になります。

回答No.2

ASIO、WASAPIともに、Windowsに関係する、音声処理の規格の名前です。 ----- まず、「カーネルミキサ」から説明した方が良いでしょう。 通常、Windows上では複数のアプリケーション(ソフトウェア)が動作しており、それらは個別ばらばらに音声を発します。たとえば、ブラウザで動画を視聴している最中にメールソフトが着信音を鳴らす、といった具合です。一方で、パソコン(ハードウェア)自体の音声処理装置(サウンドデバイス)は、ふつうは1個しかありません。 そこで、各アプリケーションが勝手にサウンドデバイスを占有してしまわないように、全ての音声信号をいったんWindows(OS:オペレーティングシステム)が預り、ミックスした上で、まとめてサウンドデバイスに送り出す、という仕組みが必要になります。「カーネル」というのはOSの基礎的構成部分のことですが、そのレベルでミックスしているから「カーネルミキサ」と呼ばれます。 また、各アプリケーションが発する音は、必ずしもサウンドデバイスに適した形式ではないかも知れません。たとえば、サウンドデバイスが16bit/48kHzで動作しているのに、送り込まれる信号が16bit/44.1kHzだと不味い訳です。カーネルミキサは、サウンドデバイスに適したサンプリングレートに変換する役割も持っています。 このカーネルミキサは、常にアクティブな状態です。なぜなら、いつ何時、どんなところから音声が来るか分からないので、たとえ1つの音声しか発せられていない状態でもミキサに通しておく必要があるからです。 そうすると、必ずしも変換が必要ではない、むしろ変換しない方が音質上好ましい場合でさえも強制的に変換処理が行われることになります。これが、オーディオ的に好ましくない訳です。 さらに、この変換の際に余計な処理時間がかかるため、若干の遅延(レイテンシー)が発生します。動画の試聴などでは大した問題ではありませんが、ソフトウェアシンセサイザーを使ったり、録音した音をそのまま再生してモニタリングするように、音楽制作の場面では致命的な問題になります。 そこで考え出されたのが、ASIOという規格です。ソフトウェアと、サウンドデバイスが、ともにASIO規格に準拠することで、カーネルミキサをバイパスして、特定のソフトウェアにサウンドデバイスを占有させ、音質の劣化を防ぎ、レイテンシーを小さくしよう、ということです。この、「音質の劣化を防げる」という部分が、PCオーディオでも注目される理由です。 ----- これに対して、Macの場合、Mac OS X世代に入ってから、OS標準でASIO相当のことができる(サウンドデバイスを共有するか、排他利用するかを選択できる)規格を内蔵しました(Core Audio。それ以前はMacでもASIOが利用されていました)。 Windowsでもこれを真似て、OSレベルでカーネルミキサをバイパスできる(バイパスするかどうかを選択できる)仕組みを作ろう、というのがWASAPIです。Windows VISTAから搭載されています。 WASAPIにも「共有モード」と「排他モード」があって、共有モードというのはカーネルミキサに相当します。通常はこれが利用され、ソフトウェアとサウンドデバイスの対応状況によっては排他モードが使える、ということです。 (で、具体的にどのソフトでどうすれば良い、といった話は、当方Macユーザの故に分からないのですが。汗)

kurosuke527
質問者

お礼

いつもながら、実にわかりやすいご説明に、このたびも感服いたします。  大変なお手数をかけてしまい、誠にありがとうございました。 昔から、映像や音を処理する方々にとっては、windows より Mac の方が便利だという評価があったわけですが、排他モード/共有モード に関する扱いの違いにも、その一因が、このような点にあったこと、大変印象深く理解いたしました。  ありがとうございました。 

noname#203203
noname#203203
回答No.1

(1):書くのが大変なのでWikipedia 読まれたし。  http://ja.wikipedia.org/wiki/ASIO  http://ja.wikipedia.org/wiki/WASAPI どちらも、Windows OS のカーネルミキサーをバイパス(排他モード)します。 ASIO はキーボード奏者などのミュージシャンの要望から、生まれました。 WASAPI はマイクロソフトが遅ればせながら、開発した物です(VISTA から搭載) Mac OS 音に拘っていたので、排他モードが有ります(名称を失念)、ミュージシャン にMacのユーザーが多いのも、アップルが音楽再生にチカラを入れていた為かと・・・ 余談ですが、Linux OS のカーネルは、音を考慮した作りなので、音が良いです。 カーネルミキサーはWindows の音の処理を一手に引き受けて、処理する部門です。 このお陰で、ユーザーは、ゲーム、Webサイト、他、音の形式の違いを意識 せずに、聴く事が出来ます。 変換などの処理をする為、僅かに遅れて音が出て来ます、この遅れがミュージシャン には問題になるのです。 (2):ASIO は対応した機器でないとだめです、専用のドライバーも必要です。     WASAPI は多くのUSB DAC で使用する事が出来ます、安物の中華の製品     でも使用出来ました。 尚、擬似ASIO ドライバーにASIO4ALL というドライバーが有りますが、ASIO に 対応していない機器(USB DAC)でも排他モードを使用出来る様に開発されたドライバー です、Windows のカーネルストリーミングを利用した物なので前出のシステムとは少々 違います、Windows-XP 御用達な色合いですね。 排他モードに対応した再生ソフトは・・・ foobar2000 http://www.foobar2000.org/ MusicBee http://www.getmusicbee.com/ 設定が簡単なMusicBee がお勧めです。 http://magumataishi.cocolog-nifty.com/blog/2012/03/wasapimusicbee-.html MusicBee は標準の仕様でも音質が良いですが、排他モードで音楽再生すると、 霞が架かって、いたのが晴れてクッキリした景色になる、そんな感じの音になります。

kurosuke527
質問者

お礼

ありがとうございます。 wikipedia に掲載されていること、知りませんでした。 こちらから、大いに勉強いたしました。 教えていただき、感謝します。  ところで、asio4all は無事にインストールしましたが、排他モードで使用する、という意味では、asio と同じ機能と考えてよろしいのでしょうか? また、asio4all は無料でしたが、asio の方は有料なのでしょうか? 再生ソフトについては、以前、foobar2000 で苦労していた折に、musicbee を教えていただき、すぐに使い始めたところ、デフォルトの状態では、musicbee の方が、はるかに音がよいという強い印象でした。 私にとっては、大変使いやすい便利な再生ソフトです。 しかし、時が経つにつれて、foobar2000 の方も、次第に慣れて充実してきましたので、今では、音質的には、ほぼ、musicbee と同程度の音質になりました。 ご指導、ありがとうございました。