コンピュータオーディオが難しい理由

Learn More
コンピュータオーディオが難しい理由

コンピュータオーディオが難しい理由 

以前、Core Audio と ASIO について語りましたが、もっと突っ込んで Windows Audio と Mac Audio について解説したほうがいいな、ということで、自分でも再度認識を改めること含め、まとめていきたいと思います。ちょくちょくこちらのページを読んだ前提のお話があるので最初に目を通しておくほうがいいかもしれません。

DAW や オーディオインターフェイスとはあまり関係ない話が最初に続きますが、コンピューターオーディオを理解するには、もっと幅広い認識が必要になるということを覚えてほしいと思います。

コンピューターの大前提


皆さんに一番最初に伝えなくていけないことがあります。コンピューターはデジタルオーディオワークステーション用に最適化設計されていません

DAW 用パソコンなんていうのは BTO メーカーから販売されていたりしますが、あんなの嘘っぱちです。動作検証の項目無いですからね。ちなみに OM Factory という会社はちゃんと動作検証済でサポートもあるようなので、それがホントの DAW 用 PC です。

また、特に Windows は OS 自体がオーディオのサポートに消極的です。何故、そんなことが言えるのか、というのはこのページで解説していくので、まず、この大前提を知っておいてください。

まずはコンピューター自体の大まかな知識と枠組みを知っておく必要があるのでそこから解説していきます。

コンピュータのトレンド


コンピューター市場は特殊な場合を除き、OS は Windows か macOS です。また世界的に力を入れて伸ばしている産業をご存知でしょうか? そう言われると 「?」 が出てしまうと思いますが、世界中で売れているコンセプトコンピューターというのは ゲーミングマシン です。そしてゲーミングマシンは Windows オンリーです。

今現在 GPU 開発が盛んです。(少し前までマイニング需要もありました。) それは機械学習 (最近流行りのディープラーニングや AI の基礎) にも役に立っています。そのため、パーツ各社が GPU に合わせてチップセットを開発、それに合わせてメモリも開発、という状況になっています。しかも GPU 市場では NVIDIA がシェア 75% の一人勝ちが続いています。

CPU も非常によく似た市場構造です。CPU シェアを見るとやはり Intel がシェア 80% で一人勝ち状態。Intel と NVIDIA の組み合わせが正直、最も市場に溢れています。しかもこの情勢は 10年以上前 からほとんど変化していません。つまり情報も多いですし、各メーカー今までの開発技術もある、互換性の問題や「相性」の問題もアップデートがあるので大きな問題になることも少ない。

BTO や 各メーカーも構成については検証済なので、問題が起きてもトラブルシュートできるようなサポート体制もある。あと基本的にコンピューターオーディオはサードパーティ製品と併用となるため、PC メーカーからしたらサポート対象外となる。当たり前だ。

最近のトレンド PC に一番重要なパーツは GPU で、音楽制作で GPU を使用することはまず考えられない。(ゲームのリバーブ処理に GPU を利用する場合があるそうだが、DAW とは関係がない…) コンピューターオーディオについては特にメインストリームがなにかしら開発しているわけではない、ということを知っておく必要があります。音楽制作は除け者と言っては難ですが、その気があります。

最近はベンチマークを公開するサイトが増えましたが、CPU や GPU、マザーボードやメモリの構成でベンチマークに変化がでることは、かなり常識的なレベルの知識になりつつあります。コンピューターオーディオもこれと同じような現状が起きてしまうし、コンピューターの各パーツのドライバーの設計や完成度で USB のパフォーマンスに影響がでてしまうのです。

Microsoft やコンピューターパーツ製造メーカーの優先度


つまり、Microsoft Windows が優先的にリソースを割り当てる項目として、コンピューターオーディオは非常に低い、もしくは無い、といってもいいと思います。Windows のオーディオに対する更新の遅さは、古くからのデジタルオーディオユーザーであれば重々承知のレベルです。

近年日本国内では DTM をするにあたり、”しきい” が下がったため、Windows ユーザーが増えていますが、Windows は DTM に対して何かしら新しい対応をとっているわけではない、ということを知っておく必要があります。

また、メインストリームは CPU と GPU です。そこに各チップメーカーが連なります。現在、コンピューターオーディオのストリーミングとしては USB が主流ですが、その USB チップを提供しているメーカーはオーディオストリーミングに最適化しているわけではありません。汎用チップは転送方式の問題からオーディオには向かないことは、いろいろなところで語られている事実です。

そのため、インターフェイスメーカーによっては独自チップを開発しています。だから特別 USB チップを開発した、と名言されていないインターフェイスではオーディオストリーミングでの「相性問題」非常に顕著に現れたりします。逆に独自チップのお陰でアップデートが用意になり、問題が出にくいものを開発したメーカーもあります。また極限を追求しているメーカーもあります。

Apple macOS の対応姿勢


Apple の macOS 製品はその点、コンピューターオーディオに明るいです。Core Audio という Windows でいう ASIO と同等の性能と機能を OS 開発側が提供します。つまり OS 側がデジタルオーディオワークステーションにある程度最適化を行っています。USB ストリーミングに対しても製造側でなにかしらの対応をしているそうです。(詳しくは知らない) USB 3.0 や Thunderbolt への対応も速く、Windows よりはコンピューターオーディオに対して問題が少ない、という利点があります。(最近は余計な機能のお陰で問題も頻発しているが…)

Apple macOS 製品は 多少の BTO あれどコンピューターの構成は数パターンになり、「相性」問題も起きづらい、起きたとしても対応が割と速い、という利点があります。また OS 自体を古いものを使い続けることもプロではよくあります。プロユースが多い理由は、このような利点があるからです。しかし、コンピューター性能とコストパフォーマンスを考えると Windows 環境一択なので、ものすごく悩ましい事実ではあります。

Window Audio といえば “カニ”


Windows のオーディオは、ほとんどが Realtek というカニのマークのやつです。普通に Window マシンを買うと、Realtek Audio というものを Windows のサウンド設定で見たことがあると思います。またグレードの高いマザーボードでは Realtek High Definition Audio つまり HD Audio なるものを見たことがある人も多いと思います。最近は HDMI 経由でディスプレイやテレビ画面のスピーカーから音を出す人も少なくありません。NVIDIA も HDMI で High Definition Audio をサポートしています。

初期の Windows Audio ユーザーを苦しめた「憎き、カニ」現在は Windows Audio 上で 2.1ch、5.1ch、7.1ch などもサポートしている場合もあり、複雑な設定も行える。実は ASIO Driver も配布している。

最近の Realtek は標準でものすごい機能を提供していますが、いまいち使い方がわからない人が多いのではないでしょうか。解説しているページも少ないです。この点でも Windows でのオーディオの扱いの優先度の低さを伺えます。

Windows のオーディオというのは、非常に難しい構造をしているため、詳しいことはここでは語れませんが、各アプリケーションの音声信号をカーネルミキサーという オーディオエンジン を経由して 1つのインターフェイスだけに 音が出力されます。その時 Realtek である場合が非常に多いと思います。

おそらく Windows マシンを購入したらほぼ 100% Realtek のオーディオが採用されているはずだ。Windows のサウンドシステム上では ASIOドライバーは基本は選択できない、ということを覚えておう。

ここで問題となるのが、Windows のオーディオ環境です。通常 DAW などの音を Windows 標準のカーネルミキサーを経由してオーディオインターフェイスへ音を出力した場合、どういうことが起こるでしょう。

Window はコンピューターオーディオに対する扱いが酷い


DAW について知る の回で ミキサー について少し語りましたが、ミキサーというのはオーディオエンジンと同義です。そして ミキサーは音質劣化の原因になりうる と説明しました。つまり Windows のカーネルミキサーは 余計な信号経路を増やし非常に大きなレイテンシーと音質劣化を起こす機能になります。また Windows の OS 上では基本 ASIO ドライバーは動きません。おそらく MME ドライバーで動いていると思います。(すいませんが厳密に詳しいことは知らないです。間違っている可能性があるので鵜呑みにしないでください。)

Windows の音量ミキサー (つまりはカーネルミキサー) で各アプリケーションの音声信号がまとめられて、HDMI からディスプレイのスピーカーへ音が出力されている。信号の流れを把握することが、オーディオの基礎である。

そして、この MME ドライバーは 8,000 sample から 20,000 sample くらいのレイテンシーが発生します。44.1kHz の場合、大体 200ms から 500ms です。それってレイテンシーじゃなくてもはやディレイです。

なにを言いたいか、というと Windows 標準対応ドライバーとカーネルミキサーが非常に邪魔な存在であるということ。このカーネルミキサーの問題を解決するために WASAPI というオーディオ API を Windows は提供していますが、これに対応したアプリケーションが標準ではない、という意味のわからない対応をしています。Microsoft Windows 自体がコンピューターオーディオに対する扱いが非常に粗末であるということが理解していただけたと思います。

なぜ ASIO が Windows で台頭しているのか


上記のカーネルミキサーと MME のレイテンシー問題が非常に深刻であったため、Steinberg が Windows Audio 用に ASIO を開発しました。ASIO ドライバーは Windows でオーディオを扱う際のデファクトスタンダードにまでなりましたが、Microsoft Windows が開発、提供しているわけではない、ということに留意する必要があります。

ASIO は Windows のカーネルミキサーとのやり取りを経由しません。アプリケーションから直接オーディオデバイスへ出力されます。独自設計のたまものでレイテンシーが非常に短く設定できます。最近では In/Out で 1ms 以下のオーディオストリーミングを達成したデバイスドライバーが出てきました。

非常に多い間違いとして、Windows OS 上で ASIO が動いていると 錯覚している ユーザーが非常に多いと思います。残念ながら Windows のサウンド設定上では ASIO ではないドライバーが動いています。

例えば、Windows のサウンド設定に表示されるオーディオインターフェイスのドライバーは製品用の ASIO ドライバーでは動いていません。おそらく製品用 MME ドライバーで動いています。(詳しい情報は公開されていないので間違っている可能性があることを再度お話しておきます。)

例えば、ストリーミングやデバイスを利用した通信等でものすごいレイテンシーを感じたことがある人が多いと思います。ストリーミングしている音声は 3〜4 秒ずれるのはサーバーを経由したり、物理的な距離と処理があるので、当たり前ですが、ソフトウェアから返ってくる音が非常にレイテンシーがあると感じたことがある人も多いと思います。インターフェイス側でレイテンシーの調整を行ったことがある人も多いかもしれませんが、ASIO で動いてないので、そのバッファやストリーミング設定は残念ながら反映されません…

Windows で ASIO が動作できるアプリケーションは基本的に DAW のみ、だと思ってください。ストリーミング系のアプリケーションは基本的に Windows 標準のドライバー経由で動くので、レイテンシーやらマルチチャンネルの対応やら、いろいろ ASIO より劣るので、ある程度 Windows のオーディオドライバーの知識ないと運用が難しいと感じますが、ある程度理解できれば、自力で問題を回避できるようになると思います。

ドライバーや製品の不具合や設計に問題がある、とよく勘違いされている問題というのは、OS の不十分な環境整備やコンピューター構成が原因です。製品を疑う気持ちはわかります。が、大体は製品は OS やチップセットの不具合に影響されているだけに過ぎない、ということを覚えてほしいです。(その影響の受けやすさはドライバーの安定度など言われます。)

デジタルオーディオストリーミングは非常に難しい


オーディオストリーミングに対して赤裸々に情報を公開しているメーカーがあります。RME の技術情報サイトではコンピューターオーディオについてものすごい壁があったことを説明しています。

検証結果はほとんどの場合、失望的なものばかりでした。OSの不十分な対応が原因で(例えば高帯域幅モードにおける割り込み伝送への対応)、理論的に最善と思われる手段が、現実的にはうまくいきませんでした。

Windows や macOS の 高帯域幅モードにおける割り込み伝送 の問題があり、OS に実装されていないらしく、安定して動作させることができない。とのこと。RME 社は問題を回避するために USB チップを独自設計している。RME 社の USB チップは OS ごとに転送方式を変えているそうで、エラー回避や安全マージンのためにレイテンシーを縮めることはちょっとむずかしい様子。

ちなみに高帯域幅モード (480Mbps) を採用しているデバイスメーカーもあります。そのメーカーは Antelope Audio で USB ストリーミングに対して非常に細かな注意発起と細かな動作推奨環境を説明しています。USB で 最大 32ch/192kHz や USB 3.0 だと 64ch/192kHz のストリーミングが可能という、攻めすぎな設計ですが、高帯域幅モードでの USB ストリーミングが非常に難しいことがよくわかります。

Antelope Audio 社も独自チップを採用して USB の占有率が 80-90% になると説明しており、これは事実上 USB 帯域の独占にあたります。つまり製品の質のための極限の設計であると同時に、USB の仕様上、どうしても物理的な問題が発生しやすい状態とも言える。これを理解してない状態で製品を買ってしまうとちょっとエライコッチャになる。安定性云々言われていますが、メーカー側はちゃんと説明しているし、メーカー側の責任よりも使う側の環境に問題がある。

USB バス帯域に対する考察

上記のページは USB 2.0 の帯域問題について解説しているページが上記です。USB というは私達にとって非常に便利な規格であるはずが、実はものすごく技術的な壁を含むインターフェイスであることがわかります。

デジタルオーディオの物理的な問題の原因とは


おそらく、現在のオーディオインターフェイスは割り込み伝送が主流だと思われますが、この割り込み伝送が市場にある数多くのインターフェイスの問題の原因となっていると思われます。(おそらく、です!) ASIO ドライバーは USB ストリーミング以外の割り込み処理に非常に影響を受けるそうです。Windows の場合、ASIO を採用しているためほぼ回避不可な問題です。

特に Windows 環境では DPC Latency が非常に大きな問題に直結します。この割り込み伝送に悪影響を与えるのが DPC Latency だと思われます。(違うかもしれないので鵜呑みにしないで!) DPC Latency については Native Instruments 社が解説しているページや動画があるのでそちらがものすごく参考になります。

オーディオ処理のための Windows 最適化

DPC Latency がオーディオストリーミングに対してちょっかいを出すので、よく言われる「相性問題」が起きます。これは USB がオーディオストリーミングに最適化されてないからです。問題の大半はドライバーや製品ではなく、チップセット側にあることを理解する必要がある。

RME 社製の製品は自動エラー補正機能によってノイズやドロップアウトを防いでいるようで、これが安定性の表面化に貢献していると思われます。コンピューターに問題が起きていても自動修正されているので、問題が表面化しないという素晴らしい構造です。使用側はなんにも気にしなくていい。日本人にとって理想的なデバイス製品群です。

に対して、安全マージンや自動エラー修正等を持たず、極限設定ができるデバイスであれば、最適化さえ自前でできるようになれば、ものすごく極低レイテンシーの環境を構築できるということに繋がります。要は自分のコンピューターオーディオに対するキャリブレーションの腕前次第なんですね…。

Apple はコンピューターオーディオ市場をまだ捨てていない


macOS は Windows に比べて USB オーディオに対して理想的な設計をしているそうです。(詳しくは知らないし理解出来ないレベルの話でしょう) DPC Latency の問題もありますが、互換性の問題や相性の問題は起きにくいと推測できます。また、Core Audio は標準で ASIO レベルの性能を提供するので開発が容易なのかもしれません。詳しくは知りませんがね。

ただし、最近は T2 チップが内蔵のオーディオストリーミングに悪影響を与えたり (外部デバイス製品は関係ないそうです)、Wifi や Touch Bar がオーディオストリーミングに影響を与えている報告を聞いたことがあります。つまり、どこまで行ってもやっぱり、コンピューターオーディオ難しい

Core Audio の優位点


Core Audio は macOS 標準のオーディオドライバーにもかかわらず、レイテンシーを抑えることができます。安定動作的には 64 sample 〜 96 sample くらいが限界だとは思いますが、CPU 負荷が多い場合でも低レイテンシーを実現しやすい、らしいです。

また、OS 標準で動いているのでストリーミング系のアプリケーションでもレイテンシーが抑えられるという特徴があります。Windows の場合 OS 用のドライバーと ASIO 用のドライバーのセットをインストールする必要があるのですが、macOS の場合 Core Audio 用のドライバー1つでいい、というのも開発者にとっては魅力なのではないでしょうか?

ただ、カーネルミキサーのように、OS 音声とアプリケーション音声を別々で OS 上からは操作はできません。(アプリケーション側で調整) また Windows 標準より若干自由度が高いので、仮想ツールを上手く使いこなせないとコンピューターオーディオ設定が若干難しくなる、という部分もあります。Windows もドライバー構成がややこしいですが、macOS も若干自由度があるため、ちゃんと理解しないと複雑な運用はどうしても難しくなります。

実はいろいろなメーカーがちゃんと解説してた


各社それぞれのサポートページを覗くと、製品の独特の仕様と技術情報に関する注意事項は全部書いてあります。だからそれを読めば、大体自分の環境で発生している問題は解決できます。このあたりの力量が本気で問われるのが本場アシスタントエンジニアの能力なんですね、ProTools や Avid HD I/O issue なんてアメリカのスタジオシーンじゃ情報共有はスタジオ間で行っていたりしますし。

また、いろいろおもしろい情報を載せているメーカーも多いので見てみるのも勉強になります。

コンピューターオーディオのストリーミングで問題を抱えている人は自分の PC を一度まっさらにするくらいの度胸が必要かもしれませんね。

あと Mojave への正式対応が ProTools もあるデバイスメーカーも遅いなぁって最近感じていますが、まぁ仕方なしに気長に待ってます。(現時点 19/04/01 でも未対応)

  • 書いた人: Naruki
    レコーディングエンジニア
SNS Share