いろいろあって、自宅内サーバーをLinuxからmacOSに移行中です。
試行錯誤しましたが、なんとか動きました。
まずは、homebrewでmpdとmpcをインストール。
brew install mpd
brew install mpc
mpcは別になくてもいいのですが、動作確認のためにはあったほうがいいかなと。
brewでインストールしたmpdは、デフォルトのままだと、
/opt/homebrew
の中にインストールされます。
起動スクリプトのひな形は、
/opt/homebrew/opt/mpd/homebrew.mxcl.mpd.plist
にありますが、これは、シンボリックリンクになっていて、本体は
/opt/homebrew/Cellar/mpd/XXXXX
にあります。XXXXX
の部分は、mpdのバージョンです。
僕は、homebrew.mxcl.mpd.plist の一部を書き換えて、/opt/homebrew/etc/mpd/mpd.conf を参照するようにしています。変更箇所は、以下のProgramArgumentsの部分です。
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/opt/mpd/bin/mpd</string>
<string>--no-daemon</string>
<string>/opt/homebrew/etc/mpd/mpd.conf</string>
</array>
brew upgradeでパッケージをアップデートすると、これらが書き換わることもあるみたいなので、これらファイルを編集した場合はバックアップをとっておいたほうが安心です。
mpd.conf の内容は、Linuxの場合と基本同じですが、最大の難関はサウンドデバイスの指定です。
macに接続されているサウンドデバイスは、ターミナルから以下のコマンドを実行することで確認できます。
system_profiler SPAudioDataType
macに接続されているサウンドデバイスがリストされます。
画像中、下線で示した箇所が、サウンドデバイス名となります。
“TEAC USB AUDIO DEVICE”とあるのが、TEAC UD-501です。
“USB Audio CODEC ”とあるのが、KENWOODのR-K731です。
mpd.confでの設定は以下のようにしました。
audio_output {
type "osx"
name "UD501"
device "TEAC USB AUDIO DEVICE"
mixer_type "none"
dop "yes" }
audio_output {
type "osx"
name "R-K731"
device "USB Audio CODEC "
mixer_type "none" }
typeのosxは、macOSでは固定のようです。
mixer_typeはnoneすると、排他になるようです。
UD501はDSDを受け付けるので、dopをyesとします。
なお、R-K731については、CODECの後ろに半角スペースがあります。これがないと、mpcがデバイスを認識しませんでした。
指定できるオプションについては、https://mpd.readthedocs.io/en/latest/plugins.html#osxを参照してください。
プレイリストやデータベースのパスは、それぞれ以下のようにしました。
playlist_directory "/opt/homebrew/var/mpd/playlists"
db_file "/opt/homebrew/var/mpd/database"
log_file "/opt/homebrew/var/log/mpd/mpd.log"
pid_file "/opt/homebrew/var/mpd/pid"
state_file "/opt/homebrew/var/mpd/state"
以上で設定は終了です。
ターミナルから
brew services restart mpd
を実行して、mpdを起動させます。
エラーが出て、うまく動かない場合は、brew infoにも出てきますが、
/opt/homebrew/opt/mpd/bin/mpd --no-daemon /opt/homebrew/etc/mpd/mpd.conf
を実行して、エラーを確認しつつ調整してください。
なお、上記では、mpd.confは、
/opt/homebrew/etc/mpd/mpd.conf を想定していますが、デフォルトでは~/.mpd/mpd.conf を参照するようになっています。
CD音源、ハイレゾ音源、DSD音源、それぞれそのフォーマットのままに再生されたので、多分問題ないと思っています。