2018年7月5日木曜日

音楽専用レンダラーPCを作る!

本題に入る前に、今年1月、プロセスカットしたレンダラーPCを発売すると豪語したものの、マイクロソフトとのライセンス問題で断念せざるを得なくなってしまったことをお詫びいたします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ここから本題です。

デジタル音楽ファイルを聴くには、必ずPC(他にMAC,LINUXもあるがここではPCについてのみ扱う)を使わなければなりませんが、ATX電源やCPU等がノイズの発生源であること、また、音楽を再生中も数多くのプログラムが動いており、これらが音質の低下を招きます。

そこで、ATX電源を使わないバッテリー駆動のMINIPCを使うことで、PCオーディオの音質は大幅に向上することができます。

更に、Windows上では様々なプログラムが動いていますが、ユーザーが起動して使うアプリケーションプログラムのほかに、「プロセス」や「サービス」という普段ユーザーが目にしないプログラムがバックグラウンドで多数動いています。

「サービス」はバックグランドで動いているプログラムで「プロセス」で構成されています。プロセスは単一のプログラム用のものもありますが、複数のサービスで使われているので、プロセスを無効化するのではなく、実際にはサービスを無効化します

不要なユーザーアプリケーションは当然として、OSレベルの「プロセス」や「サービス」を可能な限り「無効化」することで、革命的にPCオーディオの高音質化を図ることができます。

もはやPCオーディオは、これを避けては通れません。

音楽専用のレンダラーPCを作る方法

1.Windows10のクリーンインストール
まずは、Lattepandaを用意します。英語版がインストールされているので、日本語版Windows10をクリーンインストールしてください。

下記のマイクロソフトのHPからISOイメージをダウンロードして、rufus などを使って起動用のUSBメモリを作ります。LattepandaにUSBメモリを刺し起動させます。後は指示に従ってインスト―ルします。途中、ライセンスがないを選択し、ネットワークの設定は後で行うを選択、ログオンパスワードを催促されても入力せずに進みます。

https://www.microsoft.com/ja-jp/software-download/windows10#34de222e-6944-44aa-8f45-8e96988880a4


http://rufus.akeo.ie/
*WindowsServerをWindows10に読み替えてください。


2.アプリケーションプログラムの削除
アプリケーションプログラムは、「設定」⇒「アプリ」⇒「アプリの機能」でアンインストールできます。表示されているものを全てアンインストールしてください。


この画面からはアンインストールできないストアアプリがかなりの数ありますが、パワーシェルのコマンドを使えば簡単に削除できます。Windowsのバージョンによって有るもの無いものもがあるかもしれません。

パワーシェルを起動して、以下のコマンドを打つだけです。まとめてコピーして、パワーシェルのプロンプトの上で右クリックで貼り付けで順に実行してくれます。

Get-AppxPackage *3d* | Remove-AppxPackage
get-appxpackage *Microsoft.WindowsCamera* | remove-appxpackage
get-appxpackage *Microsoft.WindowsCalculator* | remove-appxpackage
get-appxpackage *microsoft.windowscommunicationsapps* | remove-appxpackage
Get-AppxPackage *bing* | Remove-AppxPackage
get-appxpackage *Microsoft.ZuneMusic* | remove-appxpackage
get-appxpackage *Microsoft.ZuneVideo* | remove-appxpackage
get-appxpackage *Microsoft.People* | remove-appxpackage
Get-AppxPackage *phone* | Remove-AppxPackage
get-appxpackage *Microsoft.People* | remove-appxpackage
Get-AppxPackage *solit* | Remove-AppxPackage
Get-AppxPackage *officehub* | Remove-AppxPackage
get-appxpackage *Microsoft.WindowsSoundRecorder * | remove-appxpackage
Get-AppxPackage *xbox* | Remove-AppxPackage
get-appxpackage *Microsoft.WindowsAlarms* | remove-appxpackage
get-appxpackage *Microsoft.WindowsMaps* | remove-appxpackage
Get-AppxPackage *messaging* | Remove-AppxPackage
Get-AppxPackage *MicrosoftStickyNotes* | Remove-AppxPackage
Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage
Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage
Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage
Get-AppxPackage *BingHealthAndFitness* | Remove-AppxPackage
Get-AppxPackage *BingFoodAndDrink* | Remove-AppxPackage
Get-AppxPackage *BingTravel* | Remove-AppxPackage
Get-AppxPackage *twitter* | Remove-AppxPackage
Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage
get-appxpackage *Microsoft.Office.OneNote* | remove-appxpackage
Get-AppxPackage *windowsmaps* | Remove-AppxPackage
Get-AppxPackage *people* | Remove-AppxPackage
Get-AppxPackage *WindowsAlarms* | Remove-AppxPackage
Get-AppxPackage *camera* | Remove-AppxPackage
Get-AppxPackage *zune* | Remove-AppxPackage
Get-AppxPackage *communi* | Remove-AppxPackage
Get-AppxPackage *photo* | Remove-AppxPackage
Get-AppxPackage *soundrec* | Remove-AppxPackage
Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}



最後に、ストアというアプリだけが残ります。これだけはどうやっても削除できないようです。


3.様々な設定をオフに
「設定」から「システム」~「更新とセキュリティ」まで、不要な設定をオフにします。基本的に全てオフです。画面数が余りに多いので、ここでは割愛します。


このPCは音楽専用でインターネットには繋がないので、Windowsファイアーウォールは無効にしてください。また、WindowsDefenderセキュリティセンターについても、開いて全てオフにします。





3.音楽再生に必要なソフトウエアをインストールする
DDC用のドライバーをインストールします。
次に以下のどちらかをインストールします。

①JPLAY
JPLAY Settingsを起動して、以下を確認。
[Playing via] が KS:XXXXXXXXになっていることを確認。
[AudioPC] は シングルなので This Computer[XXX]
[DAC Link] 他の設定はお好みで。

[DAC Link] 700HZ、[PC Buffer]0.01s を選ぶなら、ドライバーソフトでUSBStreamModeをMinimum Latencyにしておきます。

JPLAYは、OSの「サービス」となるので、PCを起動すると自動起動されます。
基本的には、これでConrtolpointからレンダラーとして認識されます。

②Foobar2000
DSD再生用のコンポーネント、UPNP用のコンポーネントをインストールする。DSD再生用コンポーネントについては、どこにでも紹介されているのネットで探してください。

UPNP用コンポーネントは、
UPnP/DLNA Renderer, Server, Control Point 0.99.49

ここからダウンロードしインストールします。
http://www.foobar2000.org/components/view/foo_upnp

設定は以下のとおり。
MediaServer は Stopped
MediaRenderer は Started
これで、ContorolpointにFoobar2000がレンダラーとして表示されます。

Foobar2000は、「サービス」とはならずPC起動時に自動起動しないので、スタートアップに入れておきます。また、ショートカットをディスクトップに作成しておきます。


4.サービスの無効化
いよいよ残すはサービスの無効化です。いわゆるプロセスカットです。これで実行中のプロセスを減らすことができ、更なる音質向上が図られます。

サービスの無効化については、PCを速くする方法などでネットでもやり方が紹介されています。

特に、下のブログでは、すべてのサービスについて、無効化の判断とコメントが紹介されています。これは正にプロセスカットそのものです。この通りやれば誰でも実用的なレベルまでプロセスカットすることが出来るでしょう。

悪食釣り師のつれづれ日記

このブログを最近まで知りませんでした。

今となっては、販売もできず、また、プロセスカットのやり方が既に公開されているとなれば、PCオーディオの革命的な音質向上方法をいつまでも隠しておくのは社会的な損失だと思い、ここに私のやってきた方法を公開します。

PhilewebのMFさんは、私以上に絞り込んでおられます。本当に凄いです。真似できません。私にはこれが限界です。

Ctrl + Alt + DEL で出てくる画面からタスクマネージャーを立ち上げます。
[パフォーマンス]タブでプロセス数を見ると当初は60前後になっています(下図は48)。


[サービス]タブを開き、一番下の[サービス管理ツールを開く]をクリックするとサービスの一覧が表示されます。サービスはプロセスから構成され、この中から一つ選んでダブルクリック若しくはプロバティで設定を変更することができます。

一つづつ、必要なサービスかどうかを判断しながら、不要と判断すれば、[スタートアップの種類]を「無効」にしていきます。
判断が付かない方は上述の「悪食釣り師のつれづれ日記」のとおりにやれば十分なレベルに行くと思います。


サービスの数は全部で225もあるので、一つ一つやっていくのは骨が折れます。
そこで、簡単に無効化できる方法をご紹介します。これも数多くネットで紹介されています。

sc.exe というブログラムを使います。
使い方は、コマンドプロンプトで以下のように実行するだけです。

 sc config AxInstSV start= disabled

      *赤い部分に無効化したいサービスの名前を書きます。
  *サービスの名前はタスクマネージャーのサービスの一番左の名前です。
  *サービス管理ツールの名前ではないので注意が必要です。
  *start= の後にはスペースが必要です。
  *無効化しても再起動などするまではサービスは動き続けます。

まずは、以下の255行のテキストを全て選択してコピーし、次に、コマンドプロンプト上で点滅しているカーソルの上で、右クリックー貼り付け で全てが順次実行されます。

sc config AxInstSV start= disabled
sc config AJRouter start= disabled
sc config AppReadiness start= disabled
sc config ALG start= disabled
sc config AppMgmt start= disabled
sc config AppXSvc start= disabled
sc config BITS start= disabled
sc config BFE start= disabled
sc config BDESVC start= disabled
sc config wbengine start= disabled
sc config BthHFSrv start= disabled
sc config bthserv start= disabled
sc config CertPropSvc start= disabled
sc config ClipSVC start= disabled
sc config KeyIso start= disabled
sc config EventSystem start= disabled
sc config COMSysApp start= disabled
sc config CDPSvc start= disabled
sc config CDPUserSvc_22f99 start= disabled
sc config DiagTrack start= disabled
sc config VaultSvc start= disabled
sc config DsSvc start= disabled
sc config DoSvc start= disabled
sc config DeviceAssociationService start= disabled
sc config DevQueryBroker start= disabled
sc config DPS start= disabled
sc config WdiServiceHost start= disabled
sc config WdiSystemHost start= disabled
sc config TrkWks start= disabled
sc config MSDTC start= disabled
sc config dmwappushservice start= disabled
sc config MapsBroker start= disabled
sc config EFS start= disabled
sc config EapHost start= disabled
sc config Fax start= disabled
sc config fhsvc start= disabled
sc config fdPHost start= disabled
sc config FDResPub start= disabled
sc config lfsvc start= disabled
sc config HomeGroup Listener start= disabled
sc config HomeGroupProvider start= disabled
sc config hidserv start= disabled
sc config HvHost start= disabled
sc config vmickvpexchange start= disabled
sc config vmicguestinterface start= disabled
sc config vmicshutdown start= disabled
sc config vmicheartbeat start= disabled
sc config vmicvmsession start= disabled
sc config vmictimesync start= disabled
sc config vmicvss start= disabled
sc config vmicrdv start= disabled
sc config IKEEXT start= disabled
sc config irmon start= disabled
sc config cphs start= disabled
sc config igfxCUIService2.0.0.0 start= disabled
sc config iphlpsvc start= disabled
sc config IpxlatCfgSvc start= disabled
sc config PolicyAgent start= disabled
sc config KtmRm start= disabled
sc config lltdsvc start= disabled
sc config wlpasvc start= disabled
sc config diagnosticshub.standardcollector.service start= disabled
sc config wlidsvc start= disabled
sc config AppVClient start= disabled
sc config MSiSCSI start= disabled
sc config swprv start= disabled
sc config SmsRouter start= disabled
sc config NetTcpPortSharing start= disabled
sc config Netlogon start= disabled
sc config NcdAutoSetup start= disabled
sc config NcbService start= disabled
sc config Netman start= disabled
sc config NcaSvc start= disabled
sc config NetSetupSvc start= disabled
sc config CscService start= disabled
sc config defragsvc start= disabled
sc config PNRPsvc start= disabled
sc config p2psvc start= disabled
sc config p2pimsvc start= disabled
sc config PerfHost start= disabled
sc config pla start= disabled
sc config PhoneSvc start= disabled
sc config PNRPAutoReg start= disabled
sc config WPDBusEnum start= disabled
sc config Spooler start= disabled
sc config PrintNotify start= disabled
sc config wercplsupport start= disabled
sc config PcaSvc start= disabled
sc config RasAuto start= disabled
sc config RasMan start= disabled
sc config SessionEnv start= disabled
sc config TermService start= disabled
sc config UmRdpService start= disabled
sc config RpcLocator start= disabled
sc config RemoteRegistry start= disabled
sc config RemoteAccess start= disabled
sc config seclogon start= disabled
sc config SstpSvc start= disabled
sc config SamSs start= disabled
sc config wscsvc start= disabled
sc config SensorDataService start= disabled
sc config SensrSvc start= disabled
sc config SensorService start= disabled
sc config LanmanServer start= disabled
sc config shpamsvc start= disabled
sc config ShellHWDetection start= disabled
sc config SCardSvr start= disabled
sc config ScDeviceEnum start= disabled
sc config SCPolicySvc start= disabled
sc config SNMPTRAP start= disabled
sc config SysMain start= disabled
sc config SENS start= disabled
sc config lmhosts start= disabled
sc config TapiSrv start= disabled
sc config Themes start= disabled
sc config TokenBroker start= disabled
sc config TabletInputService start= disabled
sc config UsoSvc start= disabled
sc config VSS start= disabled
sc config WalletService start= disabled
sc config WebClient start= disabled
sc config WFDSConMgrSvc start= disabled
sc config Audiosrv start= disabled
sc config AudioEndpointBuilder start= disabled
sc config WbioSrvc start= disabled
sc config wcncsvc start= disabled
sc config WEPHOSTSVC start= disabled
sc config WerSvc start= disabled
sc config Wecsvc start= disabled
sc config EventLog start= disabled
sc config MpsSvc start= disabled
sc config FontCache start= disabled
sc config stisvc start= disabled
sc config wisvc start= disabled
sc config  start= disabled
sc config TrustedInstaller start= disabled
sc config WinRM start= disabled
sc config WSearch start= disabled
sc config W32Time start= disabled
sc config wuauserv start= disabled
sc config FrameServer start= disabled
sc config SDRSVC start= disabled
sc config WpnService start= disabled
sc config icssvc start= disabled
sc config LicenseManager start= disabled
sc config spectrum start= disabled
sc config WinHttpAutoProxySvc start= disabled
sc config dot3svc start= disabled
sc config WlanSvc start= disabled
sc config wmiApSrv start= disabled
sc config workfolderssvc start= disabled
sc config LanmanWorkstation start= disabled
sc config WwanSvc start= disabled
sc config XboxGipSvc start= disabled
sc config XblAuthManager start= disabled
sc config XblGameSave start= disabled
sc config XboxNetApiSvc start= disabled
sc config tzautoupdate start= disabled
sc config DusmSvc start= disabled
sc config DmEnrollmentSvc start= disabled
sc config UevAgentService start= disabled
sc config RetailDemo start= disabled
sc config SEMgrSvc start= disabled
sc config NaturalAuthentication start= disabled
sc config RmSvc start= disabled

中には、エラーになるものあるかもしれません。その場合は、再起動後、再度、タスクマネージャーのプロバティで無効化してください。

以下のサービスは、無効にすると、スタートメニュー等が使えなくなるので、最後の最後に無効化します。必要なプログラムなどあれば、事前にディスクトップにショートカットを作っておくといいでしょう。

Tile Data model server  スタートメニュー、ピン留めが使えなくなる
User Mneger       スタートメニューが使えなくなる
*これも「悪食釣り師のつれづれ日記」にコメントされています。

最後に、レジストリで無効化するサービスは、
regeditで、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
の下にあるサービス名を探し、strat の値を 4 にすると無効化できます。


さて、うまくいったでしようか。不要なのに上手く無効にできなかった「サービス」が幾つかあったはずです。明らかに不要な「サービス」であっても、無効にしようと思っても無効にならないものが少なからずあるのです。

「サービス」は複数のプロセスから構成され、また幾つかの「プロセス」、「サービス」が相互依存しているので、その相互依存をなんとかしないと簡単に無効化できないものがあるのです。

また、無効化できても使い勝手や安定性やメンテナンス性を犠牲にする「サービス」もあります。このあたりどの程度に留めるかは個人の判断です。

それでもプロセスは30前後にはなると思います。私の力ではこれが限界ですが、私的には、これで十分な音質だと思っています。


同パフォーマンス画面、
プロセス数は28までスレッド数も288まで下がっています。



以上




11 件のコメント:

  1. 質問させてください。Lattepandaを買う際はデジタルライセンスあり/なし、のどちらを選べばよいでしょうか?

    返信削除
    返信
    1. 答えにくい質問です。英語版を使うならライセンスありを買ってください。日本語版をクリーンインストールするなら、無しを買って別途ライセンスを買ってください。Windwso10のライセンスを購入しないといろいろ機能制限がされますが、そもそもサービス無効化で相当の機能を無効化してしまうので、機能制限も何も関係なくなるのですが。マイクロソフトさんに対する礼儀です。

      削除
    2. ご回答ありがとうございます。

      削除
  2. PCオーディオ初心者マン2018年7月10日 17:52

    いつも親切丁寧な内容にお世話になっております。

    今回のプロセスカットに関して質問させていただきます。(JPLAY使用が前提です)

    1:Win10はPROではなく所謂無印バージョンの方が好ましいのでしょうか?
    2:今回の記事にあるように極端にプロセスカットしたWIN10とWindowsServer2012や2016のコアモードとの比較ではどちらが音質的に優れているのか?
    以上、全てasoyaji様の主観で構いませんのでお答えして頂ければ幸いです。

    返信削除
    返信
    1. WinProにはセキュリティポリシーエディターがあったりするので、より深くプロセスカットに挑戦するならPROが良いでしょう。
      音質的にはWin10が好ましいと思います。主観です。

      削除
    2. PCオーディオ初心者マン2018年7月11日 17:17

      ご返信ありがとうございます。

      昨日もお礼のメッセを書き込んだのですが、どうもプレビューのみで確定のエンターキーを押してなかったみたいなので再度書き込んでおります。

      削除
  3. PC初心者です。

    いつも有用な情報有難うございます。
    1.の「Windows10のクリーンインストール」についてお尋ねいたします。
    既に製品には英語版がインストールされていますが、英語版を日本語版に変換したものでは不都合なのでしょうか?。

    返信削除
    返信
    1. 英語版でも日本語に変換されたものでもご自身がお分かりになればそれでいいと思います。初心者の方であるなら、プロセスカットなどハードルは非常に高いのでお奨めしません。当方でサポートもできませんので。

      削除
  4. ご返答有難うございました。
    これから、製品選択し、是非挑戦してみたいと思います。

    返信削除
  5. おかげさまでLattepandaでプロセス30台まで落として安定再生できるようになりました。ただ、レジストリを扱っても無効にしきれない不要サービスが7つほど残ってしまいます。
    バッテリー駆動も試したところS/Nが上がりました。ありがとうございます。

    返信削除
    返信
    1. それはよかったです。これがPCオーディオの力かと思います。お楽しみください。

      削除