Linuxで組もう!DIY PC Audio 詳細解説 Vol.2: Linux / MPD / Real Time Kernel

詳細解説、第2回。
今回は、LinuxとMPD、そしてそのシステムの位置付けに関してです。Real Time Kernelの重要性に関してもカバーします。


Linuxってなんだ?


まあ簡単に言えば、「世界中の有志の英知によって日々開発が進んでいる、ライセンスフリーで利用可能な、オープンソースのOSの事」ですかね。全社的なサーバシステムの構築や、様々な電気製品の制御に使われる事が多いです。ちなみに、日本の富岳に代表されるスパコンなんかも、これで動かしてます。


当ブログでは、Debianというディストロ(Distribution。ディストリ、とも言います)を使用していますが、Linuxはそのオープンソースという性格から、Ubuntu(Debianからの派生ディストロ)、CentOS、Fedoraなど、様々な異なるディストリビューションが存在しています。


一般のユーザー向けには、それこそWindowsやMac OS同様、GUI(グラフィカル ユーザー インターフェイス)を伴ったものが主流ですが、自動車や電気製品に組み込まれたマイコンなどでは、そんな汎用アクセスを必要としないため、コマンドラインの記述だけで機械制御を行うCUIのみでの記述がメインです。無論、その方が負荷が掛からず軽いですからね。


日本でも一時話題となり、PCオーディオブームに火をつけた、古のVoyage MPDというシステムも、いわば、そんな産業用マイコンセットアップの精神に基づき、GUIなどの無駄な肉を削り落とした、CUIだけの、普段は使用者にはその存在を全く意識させない、完全バックエンドシステムとしての高音質Bit Perfectオーディオシステムを目指して作られたものでした。


最新版Debianで組む、Bit PerfectなPCオーディオ


当ブログの最終目的は、時代の流れの中で消えてしまったこのVoyage MPDの精神を引き継ぎ、その元となったDebianディストロの最新システムに基づいて、最新かつ高音質のオーディオ再生用バックエンド、いわば最新の「なんちゃって」Voyage MPDを、一からDIYで組んでしまおうじゃないか、という所にあります。


ま、完全文系で、Linuxど素人の筆者がやってる事なので、そんなにムツカシイ事はやってません。気軽に日曜電子工作のつもりでチャレンジいただければ幸いです。それに、「なんちゃって」バージョンのくせに、本家よりもいい音で鳴りますぜ。


ただ、ここをこうすればもっと良くなるよ、みたいなアドバイスはいつでもWelcomeです。そんな奇特な方がいらっしゃれば、アドバイス、是非宜しくお願いします。


MPDってなんだ?


当ブログのサブタイトルにもある通り、Music Player Daemonの略称です。


駄右衛門?


ちゃいます。デーモンです。

熱力学第二法則に矛盾を投げかけた James Clerk Maxwellによる有名な思考実験「マクスウェルの悪魔」に由来する名称を持つこの一連のLinuxソフトウェア群は、「マクスウェルの悪魔」同様、表には全く現れず、常にバックグラウンドでひっそりと仕事を行ってくれる、その名前の語感とは裏腹の、とても奥床しいシステム群です。


そしてその一連のソフトウェア群の中、Linux上の音楽再生を司る無口な悪魔くんが、MPDという訳です。

この悪魔くんが、ALSA(= Advanced Linux Sound Architecture。Linuxデフォの音源再生用標準インターフェイスであるOpen Sound Systemを置き換えるために開発された高機能ソフトウェア群)などを通じて、mp3から、DSD音源に至るまで、現存するほぼ全ての音源プラットフォームを、Bit Perfectに鳴らしてくれるのです。


また、MPDは、それ自体がサーバ - クライアント の仕組みを内包したDaemonであることも、その特徴の一つです。この悪魔くん、再生指定された音源のフォーマットを見極め、そのフォーマットに沿って再生し、その情報をDACに送る、という仕事しかしません。ですから、このシステムの運用には、再生指定を行うための「MPDクライアント」と呼ばれる、スマホ(もしくは、タブレット、PC)アプリが、まあ言ってしまえばMPDのリモコンとして必要となります。再生システムの負荷を減らすための分業体制ですね。


逆に言えば、このリモコンである「MPDクライアント」がどこまで優れたものであるかによって、Linux - MPDシステムの価値も決まってきます。

当ブログオススメのクライアントは、「全過程 第4回」で取り上げました。そちらも併せて参照下さい。MPDクライアントの詳細は、Tag情報の重要性やhttp ストリーミング再生方法なども含め、当ブログ内で再度取り上げていく予定です。


しかしこの分業体制、ある意味では、Linuxの開発姿勢を反映してますよね。「高音質再生の部分は俺が受け持つからさ、便利さの部分は他の誰かがちゃんとやってくれよ」って感じでじゃないでしょうか。


Real Time Kernelについて


Real Time Kernelとは、ある一定の処理に対して、優先順位を割り振ってやることで、突然割り込んできた別の処理命令を抑え込み (pre-empt: 先取り)、決められた時間内に必ず処理できるようにする (low latency: 低遅延) 、特別なカーネル(= OSの中の中核的システム)のことです。


主に、リソースの小さい組み込み用のマイコンなどで使われ、ある処理が、予定された時間に確実に実行されるように制御を行うことで、機器の突然の暴走などを未然に防ぐ機能として使用されますが、これをオーディオ再生の処理命令に活用することで、オーディオ再生時の「音の揺らぎ (= jitter)」を最小限に抑える働きをさせる訳です。


これをちゃんと実装して、オーディオ再生用に最適化しているか、していないかで、音質に相当大きな違いが出てきます。Hi-Fiオーディオ再生専用のソフトウエアには、必要不可欠なカーネルであり、最適化作業です。


多分、ほとんどのLinux系オーディオソフトは、このカーネルの実装を前提にしていると思いますが、ラズパイ(Raspberry Pi / ARMプロセッサを搭載した、英国で作られた教育用ミニPC)での音楽再生ソフトとして、ほぼデフォ的存在になっている「Volumio」は、残念ながらReal Time Kernelではないようですね。


参考までに、現時点でのVolumio最新バージョン(ver.2.806 / Jul.28, 2020 リリース)の「uname -a」(カーネルの名前やバージョン、ハードウェア名など、システム情報を確認するコマンド。-aは、全ての情報の表示、というサブコマンド)の結果を表示します。


Linux volumio 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l GNU/Linux


それに対して、今回、RTカーネルを実装させたDebianの結果は、以下の通り。


Linux debianmusic 4.19.0-9-rt-amd64 #1 SMP PREEMPT RT Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux


上記の結果が何を意味しているかは、これも後ほど解説しますが、debianmusicの方には「PREEMPT RT」がちゃんと表示されているのがお分かりになるかと思います。


ちなみに、この実装に関しては、ちょっと前までは、わざわざパッチを当てる作業(古いファイルとの違いを参照しながら新しいファイルを作る作業)が必要でしたが、最新のDebianであれば、「apt」というコマンド一つで、自動的にDLして、インストールしてくれます。楽ちん!


さて、前置きが長くなりましたが、次回より、Debian設定の詳細解説です。


Linuxで組もう!DIY PC Audio  目次

全過程  Vol.1: Debian buster インストール準備編

全過程  Vol.2: Debian buster インストール

全過程  Vol.3: Debian設定 全コマンドライン

全過程  Vol.4: MPDクライアント設定


詳細解説 Vol.1: PCオーディオのススメ

詳細解説 Vol.2: Linux / MPD / Real Time Kernelについて

詳細解説 Vol.3: コマンドライン(1) Linux テキストエディタのインストール

詳細解説 Vol.4: コマンドライン(2) 固定IPアドレス設定

詳細解説 Vol.5: コマンドライン(3) リモート作業環境の確立

詳細解説 Vol.6: コマンドライン(4) リアルタイムカーネルの実装と設定

詳細解説 Vol.7: コマンドライン(5) MPD / mpc / ALSA / Avahi Daemon + Safety Shutdown設定

詳細解説 Vol.8: コマンドライン(6) ジャケ写表示設定

詳細解説 Vol.9: コマンドライン(7) MPD詳細設定

詳細解説 Vol.10: コマンドライン(8) NAS上の楽曲データのマウント

詳細解説 Vol.11: コマンドライン(9) おまけ - WoL設定


(21/08/29更新)Debian bullseye & MPD 0.22.6 アップグレード!+ DSD再生情報

コメント

このブログの人気の投稿

Linuxで組もう!DIY PC Audio 全過程 Vol.1

Linuxで組もう!DIY PC Audio / INDEX

Linuxで組もう!DIY PC Audio 全過程 Vol.3