「Music Player Daemon」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
(→‎インストール: 情報を更新)
 
(5人の利用者による、間の24版が非表示)
1行目: 1行目:
[[Category:プレイヤー]]
+
[[Category:音楽]]
 
[[de:Music Player Daemon]]
 
[[de:Music Player Daemon]]
 
[[en:Music Player Daemon]]
 
[[en:Music Player Daemon]]
10行目: 10行目:
 
[[sr:Music Player Daemon]]
 
[[sr:Music Player Daemon]]
 
[[tr:Music_Player_Daemon]]
 
[[tr:Music_Player_Daemon]]
[[zh-CN:Music Player Daemon]]
+
[[zh-hans:Music Player Daemon]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|MPD/Tips and Tricks}}
+
{{Related|Music Player Daemon/ヒントとテクニック}}
  +
{{Related|Music Player Daemon/トラブルシューティング}}
{{Related|MPD/Troubleshooting}}
 
 
{{Related articles end}}
 
{{Related articles end}}
 
'''[http://www.musicpd.org/ MPD]''' ('''m'''usic '''p'''layer '''d'''aemon) はサーバー・クライアントアーキテクチャを持った音声プレイヤーです。ほとんど資源を消費しないで音声ファイルを再生したり、プレイリスト・音楽データベースを管理することができます。インターフェイスで接続するには、[[#クライアント|クライアント]]が必要になります。
 
'''[http://www.musicpd.org/ MPD]''' ('''m'''usic '''p'''layer '''d'''aemon) はサーバー・クライアントアーキテクチャを持った音声プレイヤーです。ほとんど資源を消費しないで音声ファイルを再生したり、プレイリスト・音楽データベースを管理することができます。インターフェイスで接続するには、[[#クライアント|クライアント]]が必要になります。
19行目: 19行目:
 
== インストール ==
 
== インストール ==
   
  +
{{Pkg|mpd}} パッケージを [[インストール]] または開発版の {{AUR|mpd-git}}
{{Pkg|mpd}} の最新の安定版は[[公式リポジトリ]]にあります。
 
 
実験版を動作したい場合は、[[Arch User Repository|AUR]] に複数のパッケージが存在します。例えば、{{AUR|mpd-git}}。
 
 
{{Note|[http://www.mopidy.com Mopidy] という名前のプラグインベースの実装も存在します。AUR の {{AUR|mopidy}} や {{AUR|mopidy-git}} で利用可能です。MPD を完全に[http://docs.mopidy.com/en/latest/ext/mpd/#limitations 置き換えることはできない] ので注意してください。}}
 
   
 
== 設定 ==
 
== 設定 ==
   
MPD はローカル (ユーザーの設定ごと) とグローバル (設定を全てのユーザーに適用) で、かつ複数のインスタンスで動かすことができます。mpd の設定方法はどう使うかによりす: 例えばデスクトップならばおそらくローカル設定が便利しょう
+
MPD は [[Music Player Daemon#ローカル設定 (ユーザーごと)|ユーザーごの設定]] または [[Music Player Daemon#グローバル設定|システム全体の設定]] (設定がすべてのユーザーに適用される) モード実行ことができます。ま[[#マチMPD設定]] 複数の MPD インスタンスを動作させることも可能です
  +
MPD の設定方法は、使用目的によって異なります: ユーザーごとのローカルな設定は簡単で、デスクトップシステムにはより適しています。システム全体の設定は、複数のユーザがいる常時接続のオーディオサーバで、MPDインスタンスを共有する場合に適しているかもしれません。
   
  +
MPD がオーディオを再生できるようにするには、[[ALSA]]、オプションで [[PulseAudio]] または [[PipeWire]] をセットアップして動作させる必要があります。その後の [[Music Player Daemon#オーディオ設定|オーディオ設定]] セクションでは、''ALSA''、''PulseAudio''、または ''PipeWire'' に必要なパラメーターについて説明します。
MPD で音声を再生するためには [[Advanced Linux Sound Architecture|ALSA]] か [[OSS]] のどちらか ([[PulseAudio|PulseAudio]] は任意) を動作するように設定する必要があります。
 
   
  +
MPD は {{man|5|mpd.conf}} ファイルで構成され、選択したセットアップ (システム全体またはユーザーごと) に応じてさまざまなパスに配置できます。つまり、使用される一般的な場所は次の 2 つです。
MPD は {{ic|mpd.conf}} で設定します。このファイルの場所は MPD を実行する方法によります (下のセクションを見て下さい)。以下は一般的に使われている設定オプションです:
 
  +
# {{ic|~/.config/mpd/mpd.conf}} ユーザーごとの設定モードでは、これが最初に検索される場所です。
  +
# {{ic|/etc/mpd.conf}} システム全体の設定。
  +
  +
これらは、最も一般的に使用される設定オプションの一部です。
 
* {{ic|pid_file}} - mpd がプロセス ID を保存するファイル
 
* {{ic|pid_file}} - mpd がプロセス ID を保存するファイル
 
* {{ic|db_file}} - 音楽データベース
 
* {{ic|db_file}} - 音楽データベース
39行目: 40行目:
 
* {{ic|sticker_file}} - sticker データベース
 
* {{ic|sticker_file}} - sticker データベース
   
  +
=== ローカル設定 (ユーザーごと) ===
{{Note|これらのファイルには適切なパーミッションが設定されている必要があります (パスは設定ファイルで指定します)。そうしないと MPD が起動に失敗します。}}
 
   
  +
MPD はユーザーごとに設定することが可能です (基本的に MPD はグローバルに設定します)。通常ユーザーとして MPD を実行するメリットは:
=== グローバル設定 ===
 
   
  +
* ひとつのディレクトリ {{ic|~/.config/mpd/}} (もしくは {{ic|$HOME}} 下の他のディレクトリ) に MPD の設定ファイル全てが入ります。
{{Warning|グローバルな mpd を使う PulseAudio のユーザーは mpd をユーザーで動かすために[[Music Player Daemon/Tips and tricks#Local (with separate mpd user)|処置]]をする必要があります。}}
 
  +
* 予期できない読み書きのパーミッションエラーを避けやすくなります。
   
  +
必要なファイルとプレイリストを集めた一つのディレクトリを作成すると良いでしょう。読み書きができるディレクトリならどれでも結構です (例: {{ic|~/.config/mpd/}} もしくは {{ic|~/.mpd/}})。このセクションでは {{ic|~/.config/mpd/}} を使うことを前提にしています。これは {{ic|$XDG_CONFIG_HOME}} のデフォルトの値に一致しています ([[XDG Base Directory サポート|XDG Base Directory Specification]])。
デフォルトの {{ic|/var/lib/mpd}} では {{ic|/var/lib/mpd}} に設定が保存され ''mpd'' をデフォルトユーザーとして使います。しかしながら、デフォルトでは {{ic|/var/lib/mpd}} は ''root'' によって所有されています。そのため ''mpd'' がこのファイルに書き込めるように所有者を変更する必要があります:
 
# chown -R mpd /var/lib/mpd
 
   
  +
MPD は {{ic|$XDG_CONFIG_HOME/mpd/mpd.conf}} や {{ic|~/.mpdconf}} で設定ファイルを検索します。他のパスをコマンドラインの引数で指定することも可能です。
{{ic|/etc/mpd.conf}} を編集して {{ic|music_directory}} と音楽を入れているディレクトリのパスを加えて下さい:
 
music_directory /path/to/music
 
   
  +
設定ファイルのサンプルを好きな場所にコピーしてください、例えば:
==== Music ディレクトリ ====
 
   
  +
$ mkdir -p ~/.config/mpd
MPD は音楽コレクションの''全ての''親ディレクトリに {{ic|+x}} パーミッションが設定されていることを必要とします。
 
  +
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf
   
  +
{{ic|~/.config/mpd/mpd.conf}} を編集して必要なファイルを指定してください:
{{ic|/var/lib/mpd}} の外に音楽ディレクトリがある場合、ユーザーは mpd がアクセスできるディレクトリの下に音楽ディレクトリを再マウントしなくてはなりません:
 
   
  +
{{hc|~/.config/mpd/mpd.conf|
# mkdir /var/lib/mpd/music
 
  +
# Required files
# echo "/path/to/music/dir /var/lib/mpd/music none bind" >> /etc/fstab
 
  +
db_file "~/.config/mpd/database"
# mount -a
 
  +
log_file "~/.config/mpd/log"
[https://bbs.archlinux.org/viewtopic.php?id=86449 フォーラムのスレッド]も参照してください。
 
   
  +
# Optional
他の方法として {{ic|/var/lib/mpd/music}} にシンボリックリンクを作成することも可能です。
 
  +
music_directory "~/Music"
# mkdir /var/lib/mpd/music
 
  +
playlist_directory "~/.config/mpd/playlists"
# ln -s /path/to/music/dir /var/lib/mpd/music/
 
  +
pid_file "~/.config/mpd/pid"
  +
state_file "~/.config/mpd/state"
  +
sticker_file "~/.config/mpd/sticker.sql"
  +
}}
   
  +
上で設定したプレイリストディレクトリを作成してください:
音楽コレクションが複数のディレクトリにある場合は、{{ic|/var/lib/mpd}} のメインの音楽ディレクトリにシンボリックリンクを作成してください。リンクしたディレクトリにパーティションを設定することを忘れないで下さい。
 
   
  +
$ mkdir ~/.config/mpd/playlists
==== MPD の起動 ====
 
   
  +
必要なファイルのパスを設定したら、MPD を起動できます。設定ファイルの場所を指定するには:
MPD は ''mpd'' [[デーモン]]を使うことで操作できます。最初の起動では MPD があなたの音楽ディレクトリをスキャンするので多少時間がかかります。
 
   
  +
$ mpd ''config_file''
クライアントアプリケーション ({{Pkg|ncmpc}} は軽量で使いやすいクライアントです) を起動していろいろなことをテストして、音楽を再生してください!
 
   
===== ソケットの有効化 =====
+
==== ファイルとディレク場所を設定する ====
   
  +
ユーザーモードでは、設定は {{ic|$XDG_CONFIG_HOME/mpd/mpd.conf}} から読み取られます。
以下の {{ic|mpd.socket}} ファイルを有効にすることで ({{Pkg|mpd}} に入っている) {{ic|mpd.service}} が無効になっているとき、systemd は mpd をすぐには起動しないで、適当なソケットで待機します。mpd クライアントがそのソケットのどれかに接続しようとしたら、systemd は {{ic|mpd.service}} を起動して透過的にポートのコントロールを mpd プロセスに引き渡します。
 
  +
ここでは、{{ic|$XDG_CONFIG_HOME}} が {{ic|~/.config}} の [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html デフォルト] に等しいと仮定します。
   
  +
ユーザー設定を構築するには、パッケージに含まれている [https://raw.githubusercontent.com/MusicPlayerDaemon/MPD/master/doc/mpdconf.example MPD 構成の例] が出発点として適切です。次の行を使用してコピーします。
他の UNIX ソケットやネットワークポートを使いたい場合や、ネットワークポートで全く待機して欲しくない場合は、{{ic|mpd.socket}} の {{ic|[Socket]}} セクションにある適切な {{ic|1="ListenStream="}} 行を追加・編集・削除して、{{ic|/etc/mpd.conf}} の適切な行を修正してください (詳しくは {{ic|man 5 mpd.conf}} を参照)。
 
   
  +
$ mkdir ~/.config/mpd
{{hc|/etc/systemd/system/mpd.socket|<nowiki>
 
  +
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf
[Unit]
 
Description=Music Player Daemon Sockets
 
   
  +
この新しく作成された {{ic|~/.config/mpd/}} ディレクトリを使用して、設定ファイルと共に、データベースやプレイリストなどの他の MPD 関連ファイルを保存することをお勧めします。ユーザーは、このディレクトリへの読み取り/書き込みアクセス権を持っている必要があります。
[Socket]
 
ListenStream=/var/run/mpd/socket
 
ListenStream=6600
 
   
  +
次に、設定ファイルを編集して、必須オプションのファイルとディレクトリを指定します。
[Install]
 
WantedBy=sockets.target
 
</nowiki>}}
 
   
  +
{{hc|~/.config/mpd/mpd.conf|
==== 音声の設定 ====
 
  +
# Recommended location for database
  +
db_file "~/.config/mpd/database"
   
  +
# If running mpd using systemd, delete this line to log directly to systemd.
他のプログラムとは分けて mpd のボリュームを変更するには、mpd.conf で次のスイッチをアンコメントまたは追加してください:
 
  +
log_file "syslog"
{{hc|/etc/mpd.conf|
 
  +
mixer_type "software"
 
  +
# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
  +
#music_directory "~/music"
  +
  +
# Uncomment to refresh the database whenever files in the music_directory are changed
  +
#auto_update "yes"
  +
  +
# Uncomment to enable the functionalities
  +
#playlist_directory "~/.config/mpd/playlists"
  +
#pid_file "~/.config/mpd/pid"
  +
#state_file "~/.config/mpd/state"
  +
#sticker_file "~/.config/mpd/sticker.sql"
 
}}
 
}}
   
  +
構成でプレイリストが有効になっている場合は、指定されたプレイリストディレクトリを作成する必要があります。
[[Advanced Linux Sound Architecture|ALSA]] ユーザーは以下のデバイス定義を使うことで、MPD クライアントで他のアプリケーションとは独立してボリュームを操作することができます。
 
  +
{{hc|/etc/mpd.conf|2=
 
  +
$ mkdir ~/.config/mpd/playlists
  +
  +
MPD を開始できるようになりました (設定ファイルのオプションのカスタムパスを指定します。)
  +
  +
$ mpd ''[config_file]''
  +
  +
データベースファイルを構築するために、MPD は上で定義した {{ic|music_directory}} をスキャンする必要があります。このタスクを要求するには、MPD [[Music Player Daemon#クライアント|クライアント]] のいずれかを使用する必要があります。たとえば、''mpc'' の場合、コマンドは次のようになります。
  +
  +
$ mpc update
  +
  +
または、オプション {{ic|auto_update}} を {{ic|"yes"}} に設定して、{{ic|music_directory}} でファイルが変更されるたびにデータベースを更新することもできます。
  +
  +
==== オーディオ設定 ====
  +
  +
[[ALSA]] が使われている場合、デフォルトのデバイスの '''自動検出''' は特に設定しなくてもすぐに動作するはずです。そうでない場合、ALSA オーディオ出力定義のシンタックスはこの後に提供されます: 必須の {{ic|name}} パラメータはオーディオ出力に一意な名前を指定します。
  +
{{pkg|alsa-utils}} パッケージの {{ic|aplay --list-pcm}} を使って表示される正確なデバイスは、{{ic|device}} オプションで指定することができます。
  +
  +
{{hc|~/.config/mpd/mpd.conf|2=
 
audio_output {
 
audio_output {
type "alsa"
+
type "alsa"
name "My Sound Card"
+
name "''ALSA sound card''"
  +
# Optional
mixer_type "software" # optional
 
  +
#device "''iec958:CARD=Intel,DEV=0''"
  +
#mixer_control "PCM"
 
}
 
}
 
}}
 
}}
   
[[PulseAudio|PulseAudio]] ユーザーは以下修正する必要があるかもしれせん:
+
[[PulseAudio]] ユーザーは、次変更行う必要があす。
{{hc|/etc/mpd.conf|2=
+
{{hc|~/.config/mpd/mpd.conf|2=
 
audio_output {
 
audio_output {
 
type "pulse"
 
type "pulse"
name "pulse audio"
+
name "''pulse audio''"
 
}
 
}
 
}}
 
}}
   
  +
[[PipeWire]] を使用した出力も設定できます。
PulseAudio は複数の高度な操作 (例: 音声を他のマシンへ転送する) をサポートしています。MPD で高度な設定を使うには [http://mpd.wikia.com/wiki/PulseAudio Music Player Daemon Community Wiki] を見て下さい。
 
  +
{{hc|~/.config/mpd/mpd.conf|2=
  +
audio_output {
  +
type "pipewire"
  +
name "''PipeWire Sound Server''"
  +
}
  +
}}
   
==== ユーザーの変更 ====
+
==== systemd で自動起動 ====
   
  +
{{Pkg|mpd}} パッケージは [[systemd/ユーザー|user サービス]] ファイルを提供します。このサービスはユーザとしてプロセスを起動するので、MPD 設定ファイル中の {{ic|user}} と {{ic|group}} 変数を使用したりパーミッションを変更する必要はありません。
MPD を動かすグループを変更すると次のようなエラーが起こります: {{ic|output: Failed to open "My ALSA Device"}}, {{ic|[alsa]: Failed to open ALSA device "default": No such file or directory}}, {{ic|player_thread: problems opening audio device while playing "Song Name.mp3"}}。
 
   
  +
ユーザーユニット {{ic|mpd.service}} を [[起動/有効化]] します。(すなわち、{{ic|--user}}フラグを使用)
これは MPD ユーザーが {{Ic|/dev/snd/}} 下のサウンドデバイスにアクセスできる ''audio'' グループに含まれていることを必要とするのが原因です。問題を解決するには、MPD ユーザーを ''audio'' グループに追加してください:
 
# gpasswd -a '''mpd''' audio
 
   
  +
{{Note|設定ファイルは {{ic|~/.config/mpd/mpd.conf}} から読み込まれます。カスタム設定ファイルのパスを指定したい場合は [[systemd#ユニットファイルの編集]] を参照して下さい。}}
==== MPD の起動タイムライン ====
 
   
  +
==== tty ログイン時の自動起動 ====
MPD がいつスーパーユーザー特権を落とし設定されたユーザーを使うのか説明するために、通常の MPD の起動順序をここに記載します:
 
   
# MPD が systemd によって root で起動されまず {{ic|/etc/mpd.conf}} ファイルを読み行きます。
+
ログイン時に MPD を開始すには次を {{ic|~/.profile}} または別の [[自動起動|自動起動ファイル]] 追加します。
# MPD は {{ic|/etc/mpd.conf}} ファイル内の user 変数を読んで、root からこのユーザーに変更します。
 
# 次に MPD は {{ic|/etc/mpd.conf}} ファイルの中身を読み、それに従って設定を行います。
 
   
  +
# MPD daemon start (if no other user instance exists)
MPD は実行ユーザーを root から {{ic|/etc/mpd.conf}} ファイルに記されたユーザーに変更することに注意してください。
 
  +
[ ! -s ~/.config/mpd/pid ] && mpd
このため、設定ファイルで {{ic|~}} を使うと、root のディレクトリではなくユーザーのホームディレクトリを示すことになります。
 
{{ic|~}} を全て {{ic|/home/username}} に置き換えることで MPD の挙動に対して混乱することを避けることができます。
 
   
=== ローカル設定 (ユーザーごと) ===
+
==== スクリプトによる設定 ====
   
  +
[https://gist.githubusercontent.com/kurobeats/1c92c0a43f93ba49d798/raw/3a2661f071bcd3ed0b8c8c6560fc20a723dbbc45/mpdsetup.sh こちら] に正しいディレクトリ構造・設定ファイルを作成してユーザーの音楽ディレクトリをたずねるスクリプトが存在します。
MPD はユーザーごとに設定することが可能です (基本的に MPD はグローバルに設定します)。通常ユーザーとして MPD を実行するメリットは:
 
   
  +
=== グローバル設定 ===
* ひとつのディレクトリ {{ic|~/.config/mpd/}} (もしくは {{ic|$HOME}} 下の他のディレクトリ) に MPD の設定ファイル全てが入ります。
 
* 予期できない読み書きのパーミッションエラーを避けやすくなります。
 
   
  +
{{Warning|グローバルな mpd を使う PulseAudio のユーザーは mpd をユーザーで動かすために[[Music Player Daemon/ヒントとテクニック#ローカル (特別な mpd ユーザーを使用)|処置]]をする必要があります。}}
必要なファイルとプレイリストを集めた一つのディレクトリを作成すると良いでしょう。読み書きができるディレクトリならどれでも結構です (例: {{ic|~/.config/mpd/}} もしくは {{ic|~/.mpd/}})。このセクションでは {{ic|~/.config/mpd/}} を使うことを前提にしています。これは {{ic|$XDG_CONFIG_HOME}} のデフォルトの値に一致しています ([http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory Specification])。
 
   
MPD は {{ic|$XDG_CONFIG_HOME/mpd/mpd.conf}} {{ic|~/.mpdconf}} 設定ファイを検索します。他のパスをコマンドラインの引数で指定することも可能です。
+
デフォルトの {{ic|/etc/mpd.conf}} では {{ic|/var/lib/mpd}} 設定が保存され ''mpd'' をデトグループとて使います。
   
  +
==== Music ディレクトリ ====
設定ファイルのサンプルを好きな場所にコピーしてください、例えば:
 
   
  +
音楽ディレクトリは、設定ファイル {{ic|/etc/mpd.conf}} のオプション {{ic|music_directory}} によって定義されます。
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf
 
   
  +
MPD は、音楽コレクションの ''all'' 親ディレクトリに対する実行権限と、音楽ファイルを含むすべてのディレクトリに対する読み込み権限が必要です。これは、音楽が格納されている {{ic|~/Music}} のようなユーザディレクトリのデフォルト設定と衝突する可能性があります。
{{ic|~/.config/mpd/mpd.conf}} を編集して必要なファイルを指定してください:
 
   
  +
この問題にはいくつかの解決策がありますが、これらのうちの1つが最も実用的なはずです。
{{hc|~/.config/mpd/mpd.conf|
 
  +
* [[Music Player Daemon#ローカル設定 (ユーザーごと)|ユーザーごとの設定]] にモードを切り替える。
# Required files
 
  +
* {{ic|mpd}} ユーザーをユーザーのグループに追加し、グループにユーザーディレクトリへの実行権限を付与します。このようにして、{{ic|mpd}} ユーザーはユーザーディレクトリを開く権限を持ちます。
db_file "~/.config/mpd/database"
 
  +
# gpasswd -a mpd ''user_group''
log_file "~/.config/mpd/log"
 
  +
$ chmod 710 /home/''user_directory''
  +
* 音楽コレクションを次のいずれかの別のパスに保存します。:
  +
** 全体を動かすことで、
  +
** バインドマウントで、
  +
** または [[Btrfs#サブボリューム]] で変更できます (この変更は {{ic|/etc/fstab}} へのエントリで永続化する必要があります。))
   
  +
MPD設定ファイルでは、ミュージックディレクトリを1つだけ定義する必要があります。もし、音楽ディレクトリが複数ある場合は、main music ディレクトリの下に {{ic|/var/lib/mpd}} というシンボリックリンクを作成します。このとき、リンク先のディレクトリのパーミッションを適切に設定することを忘れないでください。
# Optional
 
music_directory "~/Music"
 
playlist_directory "~/.config/mpd/playlists"
 
pid_file "~/.config/mpd/pid"
 
state_file "~/.config/mpd/state"
 
sticker_file "~/.config/mpd/sticker.sql"
 
}}
 
   
  +
あるファイル (複数可) を更新対象から除外するには、その親ディレクトリに {{ic|.mpdignore}} という名前のファイルを作成します。このファイルの各行には、シェル ワイルドカードのリストを含めることができます。現在のディレクトリとすべてのサブディレクトリにあるファイルにマッチすると、それ以降の更新から除外されます。
上で設定したファイルとディレクトリを全て作成してください:
 
   
  +
{{Note|MPD は、いくつかのアーカイブファイル形式内の音楽ファイルを読み取ることができ、音楽ディレクトリにある場合は更新中にそれらを追加します。tar は例外であることが知られています。}}
$ mkdir ~/.config/mpd/playlists
 
$ touch ~/.config/mpd/{database,log,pid,state,sticker.sql}
 
   
  +
==== 音声の設定 ====
必要なファイルのパスを設定したら、MPD を起動できます。設定ファイルの場所を指定するには:
 
   
  +
[[Advanced Linux Sound Architecture|ALSA]] ユーザーは以下のデバイス定義を使うことで、MPD クライアントで他のアプリケーションとは独立してボリュームを操作することができます:
$ mpd ''config_file''
 
  +
{{hc|/etc/mpd.conf|2=
  +
audio_output {
  +
type "alsa"
  +
name "My Sound Card"
  +
mixer_type "software" # optional
  +
}
  +
}}
   
  +
{{ic|My Sound Card}} はサウンドカードや pcm の名前に置き換えてください ({{ic|aplay --list-pcms}} で確認できます)。
==== tty ログイン時に自動起動 ====
 
   
  +
[[PulseAudio]] ユーザーは以下の修正をする必要があるかもしれません:
ログイン時に MPD を起動するには {{ic|~/.profile}} (もしくは他の [[Autostarting#シェル|Autostart ファイル]]) に以下を追加してください:
 
  +
{{hc|/etc/mpd.conf|2=
  +
audio_output {
  +
type "pulse"
  +
name "pulse audio"
  +
}
  +
}}
   
  +
PulseAudio は複数の高度な操作 (例: 音声を他のマシンへ転送する) をサポートしています。MPD で高度な設定を使うには [http://mpd.wikia.com/wiki/PulseAudio Music Player Daemon Community Wiki] を見て下さい。
# MPD daemon start (if no other user instance exists)
 
[ ! -s ~/.config/mpd/pid ] && mpd
 
   
==== X で自動起動 ====
+
==== systemd で自動起動 ====
   
  +
MPD は {{ic|mpd.service}} [[systemd#ユニットを使う|ユニット]] で制御できます。MPD が音楽ディレクトリをスキャンするため、最初の起動には時間がかかる場合があります。
[[Desktop Environment|デスクトップ環境]]を使っている場合は、以下のファイルを {{ic|~/.config/autostart/}} に配置してください:
 
{{hc|~/.config/autostart/mpd.desktop|<nowiki>
 
[Desktop Entry]
 
Encoding=UTF-8
 
Type=Application
 
Name=Music Player Daemon
 
Comment=Server for playing audio files
 
Exec=mpd
 
StartupNotify=false
 
Terminal=false
 
Hidden=false
 
X-GNOME-Autostart-enabled=false
 
</nowiki>}}
 
   
  +
クライアントアプリケーション ({{Pkg|ncmpc}} は軽量で使いやすいクライアントです) を起動してすべてをテストし、音楽を再生します。
DE を使っていない場合は、[[#tty ログイン時に自動起動]] の行を [[Autostarting#グラフィカル|autostart ファイル]]に追加してください。
 
   
  +
===== ソケットのアクティベーション =====
==== systemd による自動起動 ====
 
   
  +
{{Pkg|mpd}} は {{ic|mpd.socket}} ユニットを提供します。{{ic|mpd.socket}} が有効になっている (そして {{ic|mpd.service}} が無効になっている) 場合、systemd はすぐに MPD を開始せず、適切なソケットをリッスンするだけです。次に、MPD クライアントがこれらのソケットの 1つに接続しようとするたびに、systemd が {{ic|mpd.service}} を開始し、これらのポートの制御を透過的に MPD プロセスに引き渡します。
{{Note|ここでは systemd のユーザーセッションマネージャを既に動かしていることを前提にしています。詳しくは [[systemd/User|systemd/ユーザー]] を見て下さい。}}
 
   
  +
異なる UNIX ソケットまたはネットワークポート (各タイプの複数のソケットであっても) をリッスンしたい場合、またはネットワーク ポートをまったくリッスンしたくない場合は、{{ic|mpd.socket}} ユニット {{ic|/etc/mpd.conf}} を構成に合わせて適切に [[編集]] します (詳細については、{{man|5|mpd.conf}} を参照してください。)
パッケージ {{Pkg|mpd}} はユーザーサービスファイルを {{ic|/usr/lib/systemd/user/mpd.service}} に提供しています。設定ファイルは {{ic|~/.mpdconf}} か {{ic|~/.config/mpd/mpd.conf}} のどちらかにあるとして想定されています。他のパスを使う場合は [[systemd#ユニットファイルの編集]] を見て下さい。プロセスは root で実行されないため、MPD の設定ファイルで {{ic|user}} と {{ic|group}} 変数は使ってはいけません。既にユーザーパーティションがありこれ以上変更する必要がないからです。
 
   
  +
==== ユーザー ID の起動ワークフロー ====
必要なことは {{ic|mpd}} [[systemd/User#ユーザーサービス|ユーザーサービス]]を有効にして起動するだけです。
 
   
  +
MPD は ''root'' として実行しないでください。構成で {{ic|user}} オプションを使用して、初期化後に MPD にユーザー ID を変更させることができます。非特権ユーザーとして MPD を開始する場合は、このオプションを使用しないでください。
{{Note|
 
  +
MPD がスーパーユーザー権限を削除し、構成で設定されたユーザーの権限に切り替える方法を説明するために、通常の MPD 起動の手順を次に示します。
* {{Pkg|mpd}} は {{ic|/usr/lib/systemd/system/mpd.service}} にもシステムサービスファイルを提供しますが、プロセスは root として実行されるので、ユーザー設定ファイルは読み込まれず {{ic|/etc/mpd.conf}} が使われます。[[#グローバル設定|グローバル設定]]で説明しています。
 
* mpd を起動する他の方法はすべて無効にしてください。
 
}}
 
 
==== スクリプトによる設定 ====
 
   
  +
# MPD は systemd によって ''root'' として起動されるため、まず {{ic|/etc/mpd.conf}} ファイルを読みます。
Rasi によって、正しいディレクトリ構造・設定ファイルを作成してユーザーの音楽ディレクトリをたずねるスクリプトが書かれています。スクリプトは [http://53280.de/dl/mpdsetup.sh ここ] からダウンロードできます。
 
  +
# MPD は設定ファイル中の {{ic|user}} 変数を読み、''root'' からこのユーザへ変更します。
  +
# MPD は設定ファイルの残りの部分を読み込んで、それに従って設定を行います。設定ファイル中の {{ic|~}} は、root のディレクトリではなく、ホームユーザの ディレクトリを指しています。
   
 
=== mpd のマルチ設定 ===
 
=== mpd のマルチ設定 ===
   
'''icecast サーバーを動かす場合に便利です。'''
+
==== icecast サーバーを実行 ====
   
 
二番目の MPD (例: ネットワークを介して音楽を共有するための icecast 出力) で上で示しているのと同じ音楽・プレイリストを使うには、上記の設定ファイルをコピーして新しいファイルを作って下さい (例: {{ic|/home/username/.mpd/config-icecast}}) そして log_file, error_file, pid_file, state_file パラメータを変更してください (例: {{ic|mpd-icecast.log}}, {{ic|mpd-icecast.error}} など); 音楽やプレイリストのディレクトリに同じディレクトリのパスを使うことで二番目の mpd も一番目の mpd と同じ音楽コレクションを使うようになります。例えば、一番目のデーモンがでプレイリストを作成・編集すれば二番目のデーモンにも同じく影響を与えます。ユーザーは二番目のデーモンのために同じプレイリストを作る必要はありません。二番目のデーモンは {{ic|~/.xinitrc}} から同じ方法で呼び出して下さい (ポート番号は変えておく必要があります、そうしないと一番目の mpd デーモンと衝突がおこります)。
 
二番目の MPD (例: ネットワークを介して音楽を共有するための icecast 出力) で上で示しているのと同じ音楽・プレイリストを使うには、上記の設定ファイルをコピーして新しいファイルを作って下さい (例: {{ic|/home/username/.mpd/config-icecast}}) そして log_file, error_file, pid_file, state_file パラメータを変更してください (例: {{ic|mpd-icecast.log}}, {{ic|mpd-icecast.error}} など); 音楽やプレイリストのディレクトリに同じディレクトリのパスを使うことで二番目の mpd も一番目の mpd と同じ音楽コレクションを使うようになります。例えば、一番目のデーモンがでプレイリストを作成・編集すれば二番目のデーモンにも同じく影響を与えます。ユーザーは二番目のデーモンのために同じプレイリストを作る必要はありません。二番目のデーモンは {{ic|~/.xinitrc}} から同じ方法で呼び出して下さい (ポート番号は変えておく必要があります、そうしないと一番目の mpd デーモンと衝突がおこります)。
  +
  +
==== Satellite セットアップ ====
  +
  +
上記の方法でも動作しますが、理論的に、両方の mpd インスタンスが同じデータベースファイルに書き込みを行おうとしたときに、データベースに問題が発生する可能性があります。MPD には [http://www.musicpd.org/doc/user/advanced_config.html#satellite satellite モード] があり、動作中の mpd インスタンスから他のインスタンスにデータベースを受け渡すことができます。
  +
  +
config-icecast に以下を追加してください、host と port はプライマリの mpd サーバーに合わせて置き換えてください:
  +
  +
{{bc|
  +
database {
  +
plugin "proxy"
  +
host "localhost"
  +
port "6600"
  +
}
  +
}}
   
 
== クライアント ==
 
== クライアント ==
233行目: 278行目:
 
*{{App|ncmpc|mpd の ncurses クライアント。|http://www.musicpd.org/clients/ncmpc/|{{Pkg|ncmpc}}}}
 
*{{App|ncmpc|mpd の ncurses クライアント。|http://www.musicpd.org/clients/ncmpc/|{{Pkg|ncmpc}}}}
 
*{{App|[[ncmpcpp]]|新しい機能が加わった C++ で書かれている ncmpc の正確なクローン (タグエディタ、検索エンジン)。|http://ncmpcpp.rybczak.net/|{{Pkg|ncmpcpp}}}}
 
*{{App|[[ncmpcpp]]|新しい機能が加わった C++ で書かれている ncmpc の正確なクローン (タグエディタ、検索エンジン)。|http://ncmpcpp.rybczak.net/|{{Pkg|ncmpcpp}}}}
*{{App|pms|細かく設定・アクセスができる ncurses クライアント。|http://pms.sourceforge.net/|{{AUR|pmus}}}}
+
*{{App|pms|細かく設定・アクセスができる ncurses クライアント。|https://ambientsound.github.io/pms/|{{AUR|pmus-git}}}}
*{{App|vimpc|ncurses ベースの MPD クライアント、vi ライクなキーバインド。|http://sourceforge.net/projects/vimpc/|{{AUR|vimpc}}}}
+
*{{App|vimpc|ncurses ベースの MPD クライアント、vi ライクなキーバインド。|https://github.com/boysetsfrog/vimpc|{{AUR|vimpc-git}}}}
  +
*{{App|vimus|[[Haskell]] で書かれた vim ライクなキーバインドを備えた MPD クライアント。|https://github.com/vimus/vimus|{{AUR|vimus-git}}{{Broken package link|パッケージが存在しません}}}}
   
 
=== グラフィカル ===
 
=== グラフィカル ===
   
 
*{{App|Ario|Rhythmbox にインスパイアされた、mpd 用の機能豊富な GTK2 の GUI クライアント。|http://ario-player.sourceforge.net/|{{Pkg|ario}}}}
 
*{{App|Ario|Rhythmbox にインスパイアされた、mpd 用の機能豊富な GTK2 の GUI クライアント。|http://ario-player.sourceforge.net/|{{Pkg|ario}}}}
*{{App|QmpdClient|Qt 4.x で書かれた GUI クライアント。|http://bitcheese.net/wiki/QMPDClient|{{Pkg|qmpdclient}}}}
+
*{{App|QmpdClient|Qt 4.x で書かれた GUI クライアント。|http://bitcheese.net/wiki/QMPDClient|{{AUR|qmpdclient}}}}
*{{App|Sonata|エレガントな Python GTK+ クライアント。|http://sonata.berlios.de/|{{Pkg|sonata}}}}
+
*{{App|Sonata|エレガントな Python GTK+ クライアント。|https://www.nongnu.org/sonata/|{{AUR|sonata}}}}
*{{App|gmpc|Music Player Daemon の GTK2 フロントエンド。軽量で使いやすいように設計されており、MPD の機能全てに完全にアクセスすることが可能。ユーザーは複数の方法で音楽をブラウズできるようになっています。多数のプラグインで拡張もできます。|http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client|{{Pkg|gmpc}}}}
+
*{{App|gmpc|Music Player Daemon の GTK2 フロントエンド。軽量で使いやすいように設計されており、MPD の機能全てに完全にアクセスすることが可能。ユーザーは複数の方法で音楽をブラウズできるようになっています。多数のプラグインで拡張もできます。|http://gmpclient.org/|{{AUR|gmpc}}}}
*{{App|Cantata|多数の機能があり、インターフェイスが細かく設定できる MPD の Qt4/Qt5/KDE4 クライアント。|https://code.google.com/p/cantata/|{{Pkg|cantata}}}}
+
*{{App|Cantata|多数の機能があり、インターフェイスが細かく設定できる MPD の Qt4/Qt5/KDE クライアント。|https://github.com/CDrummond/cantata|{{Pkg|cantata}}}}
  +
*{{App|Xfmpc|リソースの消費力が少ないグラフィカルな GTK+ の MPD クライアント。|https://goodies.xfce.org/projects/applications/xfmpc|{{Pkg|xfmpc}}}}
 
  +
*{{App|pymp'd|MPD の GTK+ フロントエンドクライアント。|http://pympd.sourceforge.net|{{AUR|pympd}}}}
=== ウェブ ===
 
  +
*{{App|Quimup|C++ と Qt3 で書かれた MPD のクライアント。|https://goodies.xfce.org/projects/applications/xfmpc|{{Aur|quimup}}}}
 
*{{App|Patchfork|PHP と Ajax で書かれた MPD のウェブクライアント。|http://mpd.wikia.com/wiki/Client:Pitchfork|{{AUR|patchfork-git}}}}.
+
*{{App|SkyMPC|Qt5 ベースのシンプルな MPD クライアント。|https://github.com/soramimi/SkyMPC|{{Aur|skympc-git}}}}
   
 
== 参照 ==
 
== 参照 ==
   
* [http://forum.musicpd.org/ MPD Forum]
+
* [http://forum.musicpd.org/ MPD フォーラム]
* [http://www.musicpd.org/doc/user/ MPD User Manual]
+
* [http://www.musicpd.org/doc/user/ MPD ユーザーマニュアル]

2023年2月1日 (水) 20:29時点における最新版

関連記事

MPD (music player daemon) はサーバー・クライアントアーキテクチャを持った音声プレイヤーです。ほとんど資源を消費しないで音声ファイルを再生したり、プレイリスト・音楽データベースを管理することができます。インターフェイスで接続するには、クライアントが必要になります。

インストール

mpd パッケージを インストール または開発版の mpd-gitAUR

設定

MPD は ユーザーごとの設定 または システム全体の設定 (設定がすべてのユーザーに適用される) モードで実行することができます。また、#マルチMPD設定 で複数の MPD インスタンスを動作させることも可能です。 MPD の設定方法は、使用目的によって異なります: ユーザーごとのローカルな設定は簡単で、デスクトップシステムにはより適しています。システム全体の設定は、複数のユーザがいる常時接続のオーディオサーバで、MPDインスタンスを共有する場合に適しているかもしれません。

MPD がオーディオを再生できるようにするには、ALSA、オプションで PulseAudio または PipeWire をセットアップして動作させる必要があります。その後の オーディオ設定 セクションでは、ALSAPulseAudio、または PipeWire に必要なパラメーターについて説明します。

MPD は mpd.conf(5) ファイルで構成され、選択したセットアップ (システム全体またはユーザーごと) に応じてさまざまなパスに配置できます。つまり、使用される一般的な場所は次の 2 つです。

  1. ~/.config/mpd/mpd.conf ユーザーごとの設定モードでは、これが最初に検索される場所です。
  2. /etc/mpd.conf システム全体の設定。

これらは、最も一般的に使用される設定オプションの一部です。

  • pid_file - mpd がプロセス ID を保存するファイル
  • db_file - 音楽データベース
  • state_file - MPD の現在の状態
  • playlist_directory - プレイリストが保存されるフォルダ
  • music_directory - MPD が音楽を探すフォルダ
  • sticker_file - sticker データベース

ローカル設定 (ユーザーごと)

MPD はユーザーごとに設定することが可能です (基本的に MPD はグローバルに設定します)。通常ユーザーとして MPD を実行するメリットは:

  • ひとつのディレクトリ ~/.config/mpd/ (もしくは $HOME 下の他のディレクトリ) に MPD の設定ファイル全てが入ります。
  • 予期できない読み書きのパーミッションエラーを避けやすくなります。

必要なファイルとプレイリストを集めた一つのディレクトリを作成すると良いでしょう。読み書きができるディレクトリならどれでも結構です (例: ~/.config/mpd/ もしくは ~/.mpd/)。このセクションでは ~/.config/mpd/ を使うことを前提にしています。これは $XDG_CONFIG_HOME のデフォルトの値に一致しています (XDG Base Directory Specification)。

MPD は $XDG_CONFIG_HOME/mpd/mpd.conf~/.mpdconf で設定ファイルを検索します。他のパスをコマンドラインの引数で指定することも可能です。

設定ファイルのサンプルを好きな場所にコピーしてください、例えば:

$ mkdir -p ~/.config/mpd
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf

~/.config/mpd/mpd.conf を編集して必要なファイルを指定してください:

~/.config/mpd/mpd.conf
# Required files
db_file            "~/.config/mpd/database"
log_file           "~/.config/mpd/log"

# Optional
music_directory    "~/Music"
playlist_directory "~/.config/mpd/playlists"
pid_file           "~/.config/mpd/pid"
state_file         "~/.config/mpd/state"
sticker_file       "~/.config/mpd/sticker.sql"

上で設定したプレイリストディレクトリを作成してください:

$ mkdir ~/.config/mpd/playlists

必要なファイルのパスを設定したら、MPD を起動できます。設定ファイルの場所を指定するには:

$ mpd config_file

ファイルとディレクトリの場所を設定する

ユーザーモードでは、設定は $XDG_CONFIG_HOME/mpd/mpd.conf から読み取られます。

ここでは、$XDG_CONFIG_HOME~/.configデフォルト に等しいと仮定します。

ユーザー設定を構築するには、パッケージに含まれている MPD 構成の例 が出発点として適切です。次の行を使用してコピーします。

$ mkdir ~/.config/mpd
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf

この新しく作成された ~/.config/mpd/ ディレクトリを使用して、設定ファイルと共に、データベースやプレイリストなどの他の MPD 関連ファイルを保存することをお勧めします。ユーザーは、このディレクトリへの読み取り/書き込みアクセス権を持っている必要があります。

次に、設定ファイルを編集して、必須オプションのファイルとディレクトリを指定します。

~/.config/mpd/mpd.conf
# Recommended location for database
db_file            "~/.config/mpd/database"

# If running mpd using systemd, delete this line to log directly to systemd.
log_file           "syslog"

# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
#music_directory    "~/music"

# Uncomment to refresh the database whenever files in the music_directory are changed
#auto_update "yes"

# Uncomment to enable the functionalities
#playlist_directory "~/.config/mpd/playlists"
#pid_file           "~/.config/mpd/pid"
#state_file         "~/.config/mpd/state"
#sticker_file       "~/.config/mpd/sticker.sql"

構成でプレイリストが有効になっている場合は、指定されたプレイリストディレクトリを作成する必要があります。

$ mkdir ~/.config/mpd/playlists

MPD を開始できるようになりました (設定ファイルのオプションのカスタムパスを指定します。)

$ mpd [config_file]

データベースファイルを構築するために、MPD は上で定義した music_directory をスキャンする必要があります。このタスクを要求するには、MPD クライアント のいずれかを使用する必要があります。たとえば、mpc の場合、コマンドは次のようになります。

$ mpc update

または、オプション auto_update"yes" に設定して、music_directory でファイルが変更されるたびにデータベースを更新することもできます。

オーディオ設定

ALSA が使われている場合、デフォルトのデバイスの 自動検出 は特に設定しなくてもすぐに動作するはずです。そうでない場合、ALSA オーディオ出力定義のシンタックスはこの後に提供されます: 必須の name パラメータはオーディオ出力に一意な名前を指定します。 alsa-utils パッケージの aplay --list-pcm を使って表示される正確なデバイスは、device オプションで指定することができます。

~/.config/mpd/mpd.conf
audio_output {
        type          "alsa"
        name          "ALSA sound card"
        # Optional
        #device        "iec958:CARD=Intel,DEV=0"
        #mixer_control "PCM"
}

PulseAudio のユーザーは、次の変更を行う必要があります。

~/.config/mpd/mpd.conf
audio_output {
        type            "pulse"
        name            "pulse audio"
}

PipeWire を使用した出力も設定できます。

~/.config/mpd/mpd.conf
audio_output {
        type            "pipewire"
        name            "PipeWire Sound Server"
}

systemd で自動起動

mpd パッケージは user サービス ファイルを提供します。このサービスはユーザとしてプロセスを起動するので、MPD 設定ファイル中の usergroup 変数を使用したりパーミッションを変更する必要はありません。

ユーザーユニット mpd.service起動/有効化 します。(すなわち、--userフラグを使用)

ノート: 設定ファイルは ~/.config/mpd/mpd.conf から読み込まれます。カスタム設定ファイルのパスを指定したい場合は systemd#ユニットファイルの編集 を参照して下さい。

tty ログイン時の自動起動

ログイン時に MPD を開始するには、次を ~/.profile または別の 自動起動ファイル に追加します。

# MPD daemon start (if no other user instance exists)
[ ! -s ~/.config/mpd/pid ] && mpd

スクリプトによる設定

こちら に正しいディレクトリ構造・設定ファイルを作成してユーザーの音楽ディレクトリをたずねるスクリプトが存在します。

グローバル設定

警告: グローバルな mpd を使う PulseAudio のユーザーは mpd をユーザーで動かすために処置をする必要があります。

デフォルトの /etc/mpd.conf では /var/lib/mpd に設定が保存され mpd をデフォルトグループとして使います。

Music ディレクトリ

音楽ディレクトリは、設定ファイル /etc/mpd.conf のオプション music_directory によって定義されます。

MPD は、音楽コレクションの all 親ディレクトリに対する実行権限と、音楽ファイルを含むすべてのディレクトリに対する読み込み権限が必要です。これは、音楽が格納されている ~/Music のようなユーザディレクトリのデフォルト設定と衝突する可能性があります。

この問題にはいくつかの解決策がありますが、これらのうちの1つが最も実用的なはずです。

  • ユーザーごとの設定 にモードを切り替える。
  • mpd ユーザーをユーザーのグループに追加し、グループにユーザーディレクトリへの実行権限を付与します。このようにして、mpd ユーザーはユーザーディレクトリを開く権限を持ちます。
# gpasswd -a mpd user_group
$ chmod 710 /home/user_directory
  • 音楽コレクションを次のいずれかの別のパスに保存します。:
    • 全体を動かすことで、
    • バインドマウントで、
    • または Btrfs#サブボリューム で変更できます (この変更は /etc/fstab へのエントリで永続化する必要があります。))

MPD設定ファイルでは、ミュージックディレクトリを1つだけ定義する必要があります。もし、音楽ディレクトリが複数ある場合は、main music ディレクトリの下に /var/lib/mpd というシンボリックリンクを作成します。このとき、リンク先のディレクトリのパーミッションを適切に設定することを忘れないでください。

あるファイル (複数可) を更新対象から除外するには、その親ディレクトリに .mpdignore という名前のファイルを作成します。このファイルの各行には、シェル ワイルドカードのリストを含めることができます。現在のディレクトリとすべてのサブディレクトリにあるファイルにマッチすると、それ以降の更新から除外されます。

ノート: MPD は、いくつかのアーカイブファイル形式内の音楽ファイルを読み取ることができ、音楽ディレクトリにある場合は更新中にそれらを追加します。tar は例外であることが知られています。

音声の設定

ALSA ユーザーは以下のデバイス定義を使うことで、MPD クライアントで他のアプリケーションとは独立してボリュームを操作することができます:

/etc/mpd.conf
audio_output {
        type            "alsa"
        name            "My Sound Card"
        mixer_type      "software"      # optional
}

My Sound Card はサウンドカードや pcm の名前に置き換えてください (aplay --list-pcms で確認できます)。

PulseAudio ユーザーは以下の修正をする必要があるかもしれません:

/etc/mpd.conf
audio_output {
        type            "pulse"
        name            "pulse audio"
}

PulseAudio は複数の高度な操作 (例: 音声を他のマシンへ転送する) をサポートしています。MPD で高度な設定を使うには Music Player Daemon Community Wiki を見て下さい。

systemd で自動起動

MPD は mpd.service ユニット で制御できます。MPD が音楽ディレクトリをスキャンするため、最初の起動には時間がかかる場合があります。

クライアントアプリケーション (ncmpc は軽量で使いやすいクライアントです) を起動してすべてをテストし、音楽を再生します。

ソケットのアクティベーション

mpdmpd.socket ユニットを提供します。mpd.socket が有効になっている (そして mpd.service が無効になっている) 場合、systemd はすぐに MPD を開始せず、適切なソケットをリッスンするだけです。次に、MPD クライアントがこれらのソケットの 1つに接続しようとするたびに、systemd が mpd.service を開始し、これらのポートの制御を透過的に MPD プロセスに引き渡します。

異なる UNIX ソケットまたはネットワークポート (各タイプの複数のソケットであっても) をリッスンしたい場合、またはネットワーク ポートをまったくリッスンしたくない場合は、mpd.socket ユニット /etc/mpd.conf を構成に合わせて適切に 編集 します (詳細については、mpd.conf(5) を参照してください。)

ユーザー ID の起動ワークフロー

MPD は root として実行しないでください。構成で user オプションを使用して、初期化後に MPD にユーザー ID を変更させることができます。非特権ユーザーとして MPD を開始する場合は、このオプションを使用しないでください。 MPD がスーパーユーザー権限を削除し、構成で設定されたユーザーの権限に切り替える方法を説明するために、通常の MPD 起動の手順を次に示します。

  1. MPD は systemd によって root として起動されるため、まず /etc/mpd.conf ファイルを読みます。
  2. MPD は設定ファイル中の user 変数を読み、root からこのユーザへ変更します。
  3. MPD は設定ファイルの残りの部分を読み込んで、それに従って設定を行います。設定ファイル中の ~ は、root のディレクトリではなく、ホームユーザの ディレクトリを指しています。

mpd のマルチ設定

icecast サーバーを実行

二番目の MPD (例: ネットワークを介して音楽を共有するための icecast 出力) で上で示しているのと同じ音楽・プレイリストを使うには、上記の設定ファイルをコピーして新しいファイルを作って下さい (例: /home/username/.mpd/config-icecast) そして log_file, error_file, pid_file, state_file パラメータを変更してください (例: mpd-icecast.log, mpd-icecast.error など); 音楽やプレイリストのディレクトリに同じディレクトリのパスを使うことで二番目の mpd も一番目の mpd と同じ音楽コレクションを使うようになります。例えば、一番目のデーモンがでプレイリストを作成・編集すれば二番目のデーモンにも同じく影響を与えます。ユーザーは二番目のデーモンのために同じプレイリストを作る必要はありません。二番目のデーモンは ~/.xinitrc から同じ方法で呼び出して下さい (ポート番号は変えておく必要があります、そうしないと一番目の mpd デーモンと衝突がおこります)。

Satellite セットアップ

上記の方法でも動作しますが、理論的に、両方の mpd インスタンスが同じデータベースファイルに書き込みを行おうとしたときに、データベースに問題が発生する可能性があります。MPD には satellite モード があり、動作中の mpd インスタンスから他のインスタンスにデータベースを受け渡すことができます。

config-icecast に以下を追加してください、host と port はプライマリの mpd サーバーに合わせて置き換えてください:

database {
    plugin "proxy"
    host "localhost"
    port "6600"
}

クライアント

mpd を操作するには別にクライアントが必要です。mpd wiki にあるクライアントのリストを見て下さい。人気のあるクライアントは以下の通りです:

コンソール

  • mpc — MPD サーバーのコマンドラインインターフェイス。
http://www.musicpd.org/clients/mpc/ || mpc
  • ncmpc — mpd の ncurses クライアント。
http://www.musicpd.org/clients/ncmpc/ || ncmpc
  • ncmpcpp — 新しい機能が加わった C++ で書かれている ncmpc の正確なクローン (タグエディタ、検索エンジン)。
http://ncmpcpp.rybczak.net/ || ncmpcpp
  • pms — 細かく設定・アクセスができる ncurses クライアント。
https://ambientsound.github.io/pms/ || pmus-gitAUR
  • vimpc — ncurses ベースの MPD クライアント、vi ライクなキーバインド。
https://github.com/boysetsfrog/vimpc || vimpc-gitAUR
  • vimusHaskell で書かれた vim ライクなキーバインドを備えた MPD クライアント。
https://github.com/vimus/vimus || vimus-gitAUR[リンク切れ: パッケージが存在しません]

グラフィカル

  • Ario — Rhythmbox にインスパイアされた、mpd 用の機能豊富な GTK2 の GUI クライアント。
http://ario-player.sourceforge.net/ || ario
  • QmpdClient — Qt 4.x で書かれた GUI クライアント。
http://bitcheese.net/wiki/QMPDClient || qmpdclientAUR
  • Sonata — エレガントな Python GTK+ クライアント。
https://www.nongnu.org/sonata/ || sonataAUR
  • gmpc — Music Player Daemon の GTK2 フロントエンド。軽量で使いやすいように設計されており、MPD の機能全てに完全にアクセスすることが可能。ユーザーは複数の方法で音楽をブラウズできるようになっています。多数のプラグインで拡張もできます。
http://gmpclient.org/ || gmpcAUR
  • Cantata — 多数の機能があり、インターフェイスが細かく設定できる MPD の Qt4/Qt5/KDE クライアント。
https://github.com/CDrummond/cantata || cantata
  • Xfmpc — リソースの消費力が少ないグラフィカルな GTK+ の MPD クライアント。
https://goodies.xfce.org/projects/applications/xfmpc || xfmpc
  • pymp'd — MPD の GTK+ フロントエンドクライアント。
http://pympd.sourceforge.net || pympdAUR
  • Quimup — C++ と Qt3 で書かれた MPD のクライアント。
https://goodies.xfce.org/projects/applications/xfmpc || quimupAUR
  • SkyMPC — Qt5 ベースのシンプルな MPD クライアント。
https://github.com/soramimi/SkyMPC || skympc-gitAUR

参照