Windowsを用いたPCオーディオにおけるカスタマイズ覚え書き(1)
今回は趣向を変えて、というわけではないのですが、オーディオ用PCのカスタマイズがだんだん込み入ってきて、どうやっていじったのかを忘れ始めてきているので、備忘と共有のために書き残しておこうと思い立ち、筆を執っています。基本的なものから発展的な内容まで雑多にあるかと思いますが、それぞれでPCオーディオ初心者の方、また、上級者の方になんらかの材料としていただければ、という風に思っています。いろいろやってみて長くなってしまうので、数回に分ける予定です。基本的には現時点での私の備忘録ベースなので、いつも以上にまとまりがないとは思いますが、ご了承ください。
あと、当たり前ですが、「これらをやったから音が良くなった(はず)!」ということではなく、これらをやってみた結果を冷静に吟味して、デメリットと音質向上(どの音質項目が向上した?どの音質項目が劣化した?)をよく考慮して、実運用に役立ててください。
以下の内容を実践して発生した損害やトラブルなどにつきましては、一切保証いたしません。また、私が目指しているのは、非ネットワーク・オーディオ専用環境のため、インターネット接続や多目的との共用を目指したい方は、適宜読み替えてください。
依存関係
サービス同士、またはアプリケーションに対してはそれぞれ依存関係があるので、依存関係の先にある(依存してる方ではなく、依存「されている」)方から処理を落としていく必要があります。依存元から落とすと、うまくいかないことが多いです。当たり前ではあるんですが、依存関係をいかに正確に読み解けるかが処理を減らすためのコツになります。
PCオーディオにおいて、処理を減らすことでノイズを減らそうという考え方は、割と一般的な攻め方になると思います。したがって、結局のところ、依存関係を読み解くのが重要になります。
依存関係の例
UWPアプリ起動に必要なサービス
現時点で私が認識しているのは、この3つです。
- State Repository Service
- AppX Deployment Service
- Microsoft Store インストールサービス
とくにState Repository Serviceは、Win32アプリにも影響を与えます(おそらくWinUI 3を使っているもの)が、UWPアプリを動かすために必要なデータやライブラリなどを管理しているようで、UWPアプリの起動には必須のようです。これに追加で、各UWPアプリが必要とするそれぞれで特定のサービスを必要とします。例えば、PowerShellでRemove-AppxPackage
コマンドを使うTipsをよく見かけますが、これには上記に加えて、AppX Deployment Serviceが必要です。
UWPアプリを使うのであれば、このあたりを無効化できなくなります。たとえば、有名なAudirvanaはUWPアプリなので、動かなくなります。もっとクリティカルな例で言うと、Windowsの設定アプリもUWPアプリですので、カスタマイズの難易度がぐんと上がります。カスタマイズを続けて行くには、
- コントロールパネルを直接呼び出す(control.exe)
- 各管理コンソールを直接呼び出す(例:デバイスマネージャ devmgmt.msc、グループポリシー gpedit.msc、ディスク管理 diskmgmt.mscなど)
- 各種コマンドを使う(例:scコマンドなど)
- レジストリを直接いじる
などの対応が必要です。
なお、「WinRT」という単語があるものも、要注意です。WinRTとはWindows Runtimeと呼ばれるアプリ実行の仕組みで、UWPにも使われていますので、このあたりも注意した方が良いです。WinRTはWin32アプリでも使われることがあるので、基本的にこのあたりのサービスを落とすのは危険です。
筆者は、WinRTまわりのサービスは落としていませんが、UWPアプリは諦めています。
Network List Serviceとexplorer.exe
Network List Serviceはネットワークまわりのものらしいですが、これを単純に停止・無効化してしまうと、スタートメニューなどが反応しなくなり、立ち往生してしまいます。また、なんとかして再起動したとしても、ログオンした後、スタートメニューなどを司るプログラム(explorer.exe)が起動を試行し続けるおのの立ち上がらず、にっちもさっちもいかなくなります。
これも依存関係のよい例で、explorer.exeを起動時に立ち上げないことによって、問題は回避され、サービスの停止を安全に試行できます(正直、explorer.exeを落とすことによる音質改善の方が大きいような気もしましたが……)。注意しなければいけないのは、この作業によって、いわゆる「デスクトップ」(スタートメニューやデスクトップアイコンなど)が使えなくなってしまうことです。
explorer.exeは、Windowsではシェルと呼ばれる特殊なプログラムに位置づけられており、シェルがログオン時に自動で起動する、という仕組みになっているため、スタートメニューなどが利用できます。上記対応は、シェルとなるプログラムに別のものを指定する、ということに対応するのですが、そのシェルによっては、操作性が非常に落ちてしまうことになります。
筆者は、シェルにタスクマネージャ(taskmgr.exe)を設定しています。こうすることで、コンピュータの状況を瞬時に見られるだけでなく、必要なアプリの場所がわかれば、すぐに実行できるようになります。また、タスクマネージャを一度終了させても、Ctrlキー + Shiftキー + Escキーを押すことで、(このグローバルホットキーを無効にしない限り、)いつでも呼び出せるというのも良いです。
注意点としては、シャットダウンや再起動です。タスクマネージャ上にそのメニューはありませんが、実はこれらはコマンドから実行できます。したがって、たとえばすぐ再起動したいなら、shutdown -r -t 0
という新しいタスクを作ってしまえばよいのです。
ちなみに、シェルを変更するには以下のレジストリを編集します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
Shell: "explorer.exe" -> (例)"taskmgr.exe"
つづく