うちはメインデスクトップから一線を退いたIntel Mac mini 2018がホームサーバの中心として鎮座しており、そこからXiaomiのMi TV経由でアンプにも繋がっている。なので、音楽の再生は基本的にこの子でやりたい。ただしその操作は手元のPCにあるやつでやりたい。
何がよかろうとかとGeminiに色々と相談し、結果 LMS + Squeezelite になった。
構成
全体の構成はこのような感じだ。ポイントは、起点となるPC Aから、PC B経由でMi TV、そして最終的にSonyのスピーカー(友人からもらった)に接続することだね。
このめんどくさい絵をサクッと起こしてくれるのはAIの良いところだ。
インストール
Lyrion Music Server
「Getting Started with LMS - Lyrion Music Server」よりダウンロードしてインストール。開発元云々は「プライバシーとセキュリティ」から黙らせるいつもの儀式。
http://IPアドレス:9000にアクセスして、セットアップする。
画面右下にNextボタンがあるので、そっから「ローカルフォルダ(曲をスキャンするフォルダ)」とプレイリストを保存するフォルダをそれぞれ指定する。外付けSSDもちゃんと指定できてよかった。
しばらく待つといい感じになる。

時間がかかるので、その間にSqueezeliteの設定にうつる。
Squeezelite
「Squeezelite - Lyrion Music Server」のリンクにあるSourceforgeのバイナリを使う。Intel Macの場合ffmpeg版と無印があるがffmpegで一番新しいやつを使う。ダウンロードした.dmgを実行し、アプリケーションフォルダにコピーする。例によってセキュリティ元云々言ってきて鬱陶しいが「プライバシーとセキュリティ」から黙らせるいつもの儀式。ジョブズ亡き後のこの儀式いつまで続くんだろう。
インストールできたのかどうかよくわからない感じだが、以下のコマンドを実行する。
/Applications/Squeezelite.app/Contents/MacOS/squeezelite -lこれでOutput devicesが出てきたらOK。うちの場合はこんな感じ。
Output devices:
0 - Mi TV [Core Audio]
1 - Mac miniのスピーカー [Core Audio]
2 - Microsoft Teams Audio [Core Audio]
3 - Splashtop Remote Sound [Core Audio]Mac mini ->|HDMI| Mi TV ->|光デジタル| -> スピーカーの経路で、デフォルトMi TVにしている。とりあえず接続はOK。
いい感じになる。
Squeezeliteの常駐化
毎回起動するのもつらいので、バックグラウンド常駐化。
nano ~/Library/LaunchAgents/com.user.squeezelite.plist編集内容は以下。-o以下のデバイス名は、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.squeezelite</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Squeezelite.app/Contents/MacOS/squeezelite</string>
<string>-n</string>
<string>任意のプレイヤー名</string>
<string>-o</string>
<string>デバイス名</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>/tmp以下は再起動で消えるので、ログを保存したい場合はホームフォルダ以下のパスにしとけってさ。
ロードする。
launchctl load ~/Library/LaunchAgents/com.user.squeezelite.plistSqueezeliteが落ちたとき
おまかんの気がするが、スーパーよく落ちる。とりあえず応急処置としては以下のコマンドで復活する。
nohup /Applications/Squeezelite.app/Contents/MacOS/squeezelite -n "任意のプレイヤー名" -o "アウトプットデバイスの名前" -s 127.0.0.1 > /dev/null 2>&1 &アウトプットデバイスの名前は-lで出したやつをそのまま使う。たとえばうちの環境だと以下になる。
nohup /Applications/Squeezelite.app/Contents/MacOS/squeezelite -n "MacMini-Player" -o "Mi TV" -s 127.0.0.1 > /dev/null 2>&1 &基本的にはlaunchdが救うはずなんだが、うちの環境だとMi TVの電源ダウンとかでなんかエラー出ているのかなぁ。ログ指定したけどなんも出てなかった。
これは現状未解決で、強行的に監視入れるかどうか悩んでいる。
音楽フォルダベースでの管理
僕はライブラリ管理せずにフォルダベースでやっているので、LMSではInterfaceの設定から以下のように「Categories」の歯車より「音楽フォルダーをブラウズする」にチェックを入れる。

この変更により「My music」に「音楽フォルダーをブラウズする」が追加される。
所感
ホームサーバ化が進んでよかった。
ただ現在、音楽ファイルが散らばってしまっている問題がある。というのも、外部接続用途のメディアサーバは別にたてているんだよねぇ。うーん。それというのも、ホームサーバとして鎮座しているMac mini 2018がmacOSで、ストレージ容量が512GBしかないのだけれど、かといって外部ストレージの接続も不安定、またそもそもSMB接続がうんこなど、のNASになりきれない制約による。「Logitech Media Server 最新版 – Plumtown」のようにTS-233にLMSを入れている方もいて、なるほどと思ったが、しかしネットワーク経由になってしまうし、なんだかなぁ。
Mac miniを完全にLinux化できれば諸々の問題も解決するんだろうか。うちのジャンクPC艦隊の中には立派に役割を果たせそうなのもある。しかし純粋に性能が高いのはこの子だし、メインデスクトップのM2 Pro Mac miniとユニバーサルコントロールにより標準機能で繋がれるという強みもあるので、当面はもうちょっとこの構成で運用を考えていこう。
コメント