「Music Player Daemon/ヒントとテクニック」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:プレイヤー メインの記事は Music Player Daemon。 == ライブラリの管理 == MPD does not manage your library. Check out {{Pkg|beets}} o...」)
 
 
(3人の利用者による、間の8版が非表示)
1行目: 1行目:
[[Category:プレイヤー]]
+
[[Category:音楽]]
  +
[[en:Music Player Daemon/Tips and tricks]]
 
メインの記事は [[Music Player Daemon]]。
 
メインの記事は [[Music Player Daemon]]。
   
 
== ライブラリの管理 ==
 
== ライブラリの管理 ==
   
MPD does not manage your library. Check out {{Pkg|beets}} or {{Pkg|picard}} in the [[official repositories]].
+
MPD はライブラリの管理は行いません。[[公式リポジトリ]]の {{Pkg|beets}} {{Pkg|picard}} などを使うようにしてください。
   
 
== Last.fm/Libre.fm scrobbling ==
 
== Last.fm/Libre.fm scrobbling ==
   
{{Note|mpd release 0.18 removed Last.fm [http://git.musicpd.org/cgit/master/mpd.git/tree/NEWS support]. However, some clients offer scrobbling independent of mpd.}}
+
{{Note|mpd リリース 0.18 から Last.fm [http://git.musicpd.org/cgit/master/mpd.git/tree/NEWS サポート] は削除されましたが、mpd とは独立して scrobbling ができるクライアントが存在します。}}
To scrobble your songs to [http://www.last.fm Last.fm] or [http://libre.fm Libre.fm] when using MPD, there are several possibilities.
+
MPD を使って曲を [http://www.last.fm Last.fm] [http://libre.fm Libre.fm] scrobble したい場合、いくつかの選択肢があります。
   
 
=== mpdas ===
 
=== mpdas ===
   
[http://50hz.ws/mpdas/ mpdas] is an AudioScrobbler client for MPD written in C++. It uses {{Pkg|curl}} and {{Pkg|libmpd}}. mpdas supports the latest AudioScrobbler protocol (2.0) and will also cache unscrobbled plays in ~/.mpdascache if there's no network connectivity.
+
[http://50hz.ws/mpdas/ mpdas] C++ で書かれた MPD AudioScrobbler クライアントです。{{Pkg|curl}} {{Pkg|libmpd}} を使っています。mpdas は最新の AudioScrobbler プロトコル (2.0) をサポートしており、ネットワークに接続していない場合 unscrobble した再生ファイルを {{ic|~/.mpdascache}} にキャッシュします。
   
{{AUR|mpdas}} is available in the [[AUR]].
+
{{AUR|mpdas}} [[AUR]] からインストールすることができます。
   
Configuration of mpdas is very simple, see the official [https://github.com/hrkfdn/mpdas/blob/master/README README]. A very basic example of {{ic|/etc/mpdasrc}} is also available as {{ic|/etc/mpdasrc}}.
+
mpdas の設定はとてもシンプルです。公式の [https://github.com/hrkfdn/mpdas/blob/master/README README] を見て下さい。{{ic|/etc/mpdasrc}} のベーシックな例として {{ic|/etc/mpdasrc}} が使えます。
   
  +
''mpdas'' と ''mpd'' を一緒に自動起動するには、''mpd'' を起動しているファイルに ''mpdas'' のエントリを追加してください (例: [[xinitrc]]):
Your password can also be in the form of an md5hash:
 
echo -n 'PASSWORD' | md5sum | cut -f 1 -d " "
 
 
To autostart ''mpdas'' along with ''mpd'', add an entry for it into the file in which you start ''mpd'' (e.g. [[xinitrc]]):
 
   
 
{{bc|<nowiki>
 
{{bc|<nowiki>
28行目: 26行目:
 
</nowiki>}}
 
</nowiki>}}
   
  +
''mpd'' を [[Music_Player_Daemon#systemd による自動起動|systemd ユーザーサービス]]で起動している場合、''mpdas'' も同じ方法で起動するほうが良いでしょう:
=== mpdcron ===
 
   
  +
$ systemctl --user start mpdas.service
[http://alip.github.io/mpdcron/ mpdcron] is a cron-like daemon for MPD that listens for events and executes user defined actions. It can be extended via modules to show notifications, submit songs to Last.fm or Libre.fm (''scrobbling''), or to collect statistics about played songs.
 
   
  +
{{Tip|システムの起動時に {{ic|mpdas.service}} が起動できない場合、{{ic|mpd.socket}} による[[Music_Player_Daemon#ソケットアクティベーション|ソケットアクティベーション]]を使ってください。}}
{{AUR|mpdcron-git}} is available in the [[AUR]].
 
   
  +
=== mpdscribble ===
See the official page for information about configuration and modules.
 
   
  +
{{AUR|mpdscribble}} は [[AUR]] からインストールできるデーモンです。半公式の MPD scrobbler であり MPD の新しい "idle" 機能を使用して正確な scrobble を実現します。また、{{ic|/etc}} に変更を加えないため設定に root 権限が必要ありません。詳しくは [https://www.musicpd.org/clients/mpdscribble/ 公式ウェブサイト] を見てください。
To autostart ''mpdcron'' along with ''mpd'', add an entry for it into the file in which you start ''mpd'' (e.g. [[xinitrc]]):
 
   
  +
設定のサンプルは {{ic|/usr/share/mpdscribble/mpdscribble.conf.example}}にあります。{{ic|~/.mpdscribble/mpdscribble.conf}} にコピーして用途に応じて編集してください。
  +
{{Note|設定ファイルにコメントを書く場合は行を分けてください。パーサは同行にあるコメントは認識できません。}}
  +
  +
パスワードは md5hash の形式にすることができます:
  +
$ echo -n "''password''" | md5sum | cut -f 1 -d " "
  +
  +
自動起動するには systemd ユーザーインスタンスで {{ic|mpdscribble.service}} を使ってください。詳しくは [[systemd/ユーザー]]を参照。
  +
  +
もしくは ''mpd'' と共に自動起動したい場合は、 ''mpd'' を起動しているファイルに ''mpdscribble'' のエントリを追加してください (例: [[xinitrc]]):
 
{{bc|<nowiki>
 
{{bc|<nowiki>
[[ -z $(pgrep -xU $UID mpdcron) ]] && mpdcron &
+
[[ -z $(pgrep -xU $UID mpdscribble) ]] && mpdscribble &
 
</nowiki>}}
 
</nowiki>}}
   
  +
{{Note|1={{ic|[last.fm] handshake failed, username or password incorrect (BADAUTH)}} というエラーが表示される場合、ユーザー名とパスワードが正しいことを確認してください。パスワードが [http://bugs.musicpd.org/view.php?id=3836 32文字] ではないことも確認してください。}}
=== mpdscribble ===
 
   
  +
=== Sonata ===
{{AUR|mpdscribble}} is a daemon available in the [[AUR]] (if you prefer, {{AUR|mpdscribble-git}} is also available). This is arguably the best alternative, because it is the semi-official MPD scrobbler and uses the new "idle" feature in MPD for more accurate scrobbling. Also, you do not need root access to configure it, because it does not need any changes to {{ic|/etc}} at all. Visit [http://mpd.wikia.com/wiki/Client:Mpdscribble the official website] for more information.
 
   
  +
Sonata は scrobble をサポートしていますが、プログラムをずっと実行する必要があります。さらに、Sonata は曲をキャッシュしないため、再生中に Last.fm に転送できなくなった場合、統計に曲が追加されません。
After you have installed mpdscribble, do the following (not as root):
 
   
  +
=== YAMS ===
{{bc|$ mkdir ~/.mpdscribble}}
 
* Create the file {{ic|~/.mpdscribble/mpdscribble.conf}} and add the following:
 
{{hc|~/.mpdscribble/mpdscribble.conf|2=
 
[mpdscribble]
 
host = ''your mpd host'' # optional, defaults to $MPD_HOST or localhost
 
port = ''your mpd port'' # optional, defaults to $MPD_PORT or 6600
 
log = /home/''YOUR_USERNAME''/.mpdscribble/mpdscribble.log
 
verbose = 2
 
proxy = ''your proxy'' # optional, e. g. http://your.proxy:8080, defaults to none
 
   
  +
[https://github.com/Berulacks/yams/ YAMS] は Python で書かれた MPD のための FM scrobbling デーモンです。
[last.fm]
 
# last.fm section, comment if you do not use last.fm
 
url = http://post.audioscrobbler.com/
 
username = ''your last.fm username''
 
password = ''your last.fm password''
 
journal = /home/''YOUR_USERNAME''/.mpdscribble/lastfm.journal
 
   
  +
Last.FM の [https://www.last.fm/api/scrobbling scrobbling API] の v2.0 に向けて書かれているため、YAMS はユーザネームやパスワードをローカルには保存しません。代わりにクッキーを利用します。他の scrobblers と同様に、YAMS は失敗した scrobbles を保存して後からそれらをアップードできます。例えば一行で複数回再生されたトラックなど重複した scrobbles を無視することなど、YAMS は scrobble がどう行われるか何を行うかを設定するための項目を十分備えています。
[libre.fm]
 
# libre.fm section, comment if you do not use libre.fm
 
url = http://turtle.libre.fm/
 
username = ''your libre.fm username''
 
password = ''your libre.fm password''
 
journal = /home/''YOUR_USERNAME''/.mpdscribble/librefm.journal
 
}}
 
Your password can also be in the form of an md5hash:
 
echo -n 'PASSWORD' | md5sum | cut -f 1 -d " "
 
   
  +
[[AUR]] から {{AUR|python-yams}} がインストール可能です。
* Add {{ic|mpdscribble}} to the file in which you start {{ic|mpd}} as well (e.g. {{ic|~/.xinitrc}}):
 
{{bc|
 
pidof mpdscribble >& /dev/null
 
if [ $? -ne 0 ]; then
 
mpdscribble &
 
fi
 
}}
 
   
  +
認証するために、ユーザは少くとも一度は {{ic|yams}} コマンドをターミナル上で実行する必要があります。説明が出力されるのでそれに従って下さい。
==== systemd ユーザーサービス ====
 
   
  +
その後、YAMS は次の様にして実行できます:
以下のサービスを使うことで systemd のユーザーインスタンスで ''mpdscribble'' を起動することができます。詳しくは [[systemd/ユーザー]] を見て下さい。
 
   
  +
{{ic|yams}}: デフォルトのデーモンとして実行します。({{ic|yams -N}} とするとフォアグラウンドで実行できます。)
{{hc|~/.config/systemd/user/mpdscribble.service|<nowiki>
 
[Unit]
 
Description=MPD Scribbler
 
Requires=mpd.service
 
After=mpd.service
 
   
  +
{{ic|yams -k}}: 実行中のインスタンスをキルします。
[Service]
 
ExecStart=/usr/bin/mpdscribble --no-daemon
 
   
  +
{{ic|yams -a}}: 実行中インスタンスのログファイルに接続します。デーモンの出力が見られます。
[Install]
 
WantedBy=default.target
 
</nowiki>}}
 
   
  +
{{ic|yams -h}}: 全てのコマンドラインオプションを出力します。
=== Sonata ===
 
   
  +
YAMS は [[systemd]] のサービスファイルも提供します。認証された後であれば、{{ic|systemctl --user start yams}} としてスタートできます。
Sonata has built-in support for scrobbling, although that requires the program to run the whole time. Additionally, Sonata does not cache the songs if they cannot be forwarded to Last.fm at the time of playing, meaning they will not be added to the statistics.
 
   
 
== 起動時のレジューム再生を無効化 ==
 
== 起動時のレジューム再生を無効化 ==
   
  +
この機能は ''mpd'' バージョン 0.16.2 から追加されました。この機能を有効にすると、たとえ mpd を停止したときに曲を再生していても、''mpd'' は "paused" 状態で起動します。以下の行を {{ic|mpd.conf}} に追加すれば機能が有効になります:
This feature is present in ''mpd'' after version 0.16.2. When this feature is enabled, ''mpd'' will always start in the "paused" state, even if a song was playing when mpd was stopped. Add the line below to your {{ic|mpd.conf}} to enable this feature.
 
 
restore_paused "yes"
 
restore_paused "yes"
   
== サンプル設定: Output with 44.1 KHz at e. g. 16 bit depth, multiple programs at once ==
+
== サンプル設定: 44.1KHz、16ビットでの出力、複数のプログラムを同時に出力する場合など ==
   
  +
''なぜこれらのフォーマットなのか?'' なぜなら、これらのフォーマットが CD オーディオの標準フォーマットであるためです。また、ALSA は、複数のプログラムが dmix (デフォルトで劣ったリサンプリング アルゴリズムを使用する) でのみ ''音を出す'' ことを許可しているためです。 48KHz までの低いもの (またはその時点で再生されているより高いフォーマット) をリサンプリングします。また、少なくとも {{ic|mpd.conf}} をこのように変更しないと、クリック音がするものもあります。
''Why these formats?'' Because they are the standard format for CD audio, because ALSA on its own allows more than one program "to sound" only with dmix — which uses an inferior resampling algorithm by default — and because dmix by default resamples anything lower to 48 KHz (or whatever higher format is playing at the time). Also, some get clicking sounds if at least {{ic|mpd.conf}} is not changed this way.
 
   
  +
''マイナス面は何ですか?'' これらの設定により、通常 48KHz である DVD や TV の素材など、''すべて'' (必要な場合) がこの形式にリサンプリングされます。しかし、ALSA で動的にフォーマットを変更する既知の方法はありません。特に、他の何よりもはるかに多くの CD を聴いている場合、時折 48 から 44.1 になることはそれほど大きな損失ではありません。
''What is the downside?'' These settings cause ''everything'' (if necessary) to be resampled to this format, such as material from DVD or TV which usually is at 48 KHz. But there is no known way to have ALSA dynamically change the format, and particularly if you listen to far more CDs than anything else the occasional 48 → 44.1 is not too great a loss.
 
   
  +
以下は、競合する他の設定が既に存在しないことを前提に、上書きしています。これは特に、現在のユーザの潜在的な {{ic|~/.asoundrc}} に当てはまります。- MPD を無視するので、以下は {{ic|/etc/asound.conf}} に記述してください。
The following assumes that there are not already other settings which conflict resp. overwrite it. This applies especially to the current user's potential {{ic|~/.asoundrc}} — which MPD as its own user ignores, therefore the following should go to {{ic|/etc/asound.conf}}:
 
   
 
{{hc|/etc/asound.conf|
 
{{hc|/etc/asound.conf|
133行目: 106行目:
 
}}
 
}}
   
  +
{{Note|MPD は、デコード時に mp3 形式に特別な処理を行います。常に 24ビットとして出力されます。(''format'' 行によって強制される変換は、その後に行われます。)}}
{{Note|MPD gives the mp3 format a special treatment at decoding: it is always put out as 24 bit. (The conversion as forced by the ''format'' line only comes after that.)}}
 
   
If one wants to leave the bit depth decision to ALSA resp. MPD, comment out resp. omit the ''dmix.format'' line and change the one for mpd with ''format'' to "44100:*:2".
+
ビット深度の決定を ALSA MPD に任せたい場合は、''dmix.format'' 行をコメントアウトして、mpd ''format'' 行を "44100:*:2" に変更してください。
   
  +
{{Note|異なるビット深度でデコードされた 2 つのファイル(例えば、1つの mp3 と 1つの 16ビット flac)間の ''クロスフェード'' は、変換がアクティブでない限り機能しません。}}
{{Note|''Crossfading'' between files decoded at two different bit depths (say, one mp3 and one 16 bit flac) does not work unless conversion is active.}}
 
   
 
== lirc で MPD をコントロール ==
 
== lirc で MPD をコントロール ==
   
  +
lircd と MPD の間を取り持つように作られたクライアントは既にいくつか存在しますが、実用レベルでは、機能が限られているためにあまり使い物になりません。
There are already some clients designed for communications between lircd and MPD, however, as far as the practical use, they are not very useful since their functions are limited.
 
   
  +
mpc と irexec を使用することが推奨されます。mpc はコマンドラインプレイヤーであり、コマンドを MPD に送信してすぐに終了するので (lirc に含まれているコマンド実行プログラムである) irexec にはうってつけです。irexec はリモコンのボタンが押されたのを受信すると指定されたコマンドを実行します。
It is recommended to use mpc with irexec. mpc is a command line player which only sends the command to MPD and exits immediately, which is perfect for irexec, the command runner included in lirc. What irexec does is that it runs a specified command once received a remote control button.
 
   
  +
まず最初に [[LIRC]] の記事を参照してリモコンをセットアップしてください。
First of all, please setup your remotes as referred to the '''[[Lirc]]''' article.
 
   
  +
lirc のスタートアップ設定ファイルを編集して下さい、デフォルトの設定ファイルの場所は {{ic|~/.lircrc}} です。
Edit your favored lirc startup configuration file, default location is {{ic|~/.lircrc}}.
 
   
  +
以下のパターンをファイルに記述します:
Fill the file with the following pattern:
 
 
begin
 
begin
 
prog = irexec
 
prog = irexec
157行目: 130行目:
 
end
 
end
   
  +
例:
An example:
 
 
## irexec
 
## irexec
 
begin
 
begin
233行目: 206行目:
 
end
 
end
   
  +
mpc には複数の機能が存在します。詳しくは {{man|1|mpc}} を実行してください。
There are more functions for mpc, run {{ic|man mpc}} for more info.
 
   
 
== PulseAudio ==
 
== PulseAudio ==
239行目: 212行目:
 
=== ローカル (通常のユーザーを使用) ===
 
=== ローカル (通常のユーザーを使用) ===
   
  +
特殊なオプションは必要ありません。mpd の設定ファイルのコメントに書かれているように pulse アウトプットを追加するだけです。
No special options are required; just add a pulse output as described in the comments of mpd's config file.
 
   
 
=== ローカル (特別な mpd ユーザーを使用) ===
 
=== ローカル (特別な mpd ユーザーを使用) ===
   
  +
mpd 用のユーザーを使って mpd を実行している場合、他のユーザーの pulseaudio サーバーに音声を送信することができません。pulseaudio をシステム全体のデーモンとして設定するのではなく、pulseaudio の tcp モジュールを使ってローカルホストに音声を送信するよう mpd を設定することができます:
When run as its own user as per the wiki instructions, mpd will be unable to send sound to another user's pulseaudio server. Rather than setting up pulseaudio as a system-wide daemon, a practice strongly discouraged by upstream, you can instead configure mpd to use pulseaudio's tcp module to send sound to localhost:
 
   
First, uncomment the tcp module in {{ic|/etc/pulse/default.pa}} or {{ic|$XDG_CONFIG_HOME/default.pa}} (typically {{ic|~/.config/pulse/default.pa}}) and set 127.0.0.1 as an allowed IP address; the home directory takes precedence:
+
まず {{ic|/etc/pulse/default.pa}} または {{ic|$XDG_CONFIG_HOME/pulse/default.pa}} (通常は {{ic|~/.config/pulse/default.pa}}) tcp モジュールをアンコメントして許可する IP アドレスとして 127.0.0.1 を設定してください。ホームディレクトリの設定のほうが優先されます:
   
 
### Network access (may be configured with paprefs, so leave this commented
 
### Network access (may be configured with paprefs, so leave this commented
253行目: 226行目:
 
#load-module module-zeroconf-publish
 
#load-module module-zeroconf-publish
   
  +
{{ic|;}} で区切って cidr 表記の IP アドレスを追加することもできます。設定できたら、pulseaudio を再起動してください:
Additional IP ranges in cidr notation may be added using {{ic|;}} as the separator. Once this is complete, restart pulseaudio:
 
 
$ pulseaudio --kill
 
$ pulseaudio --kill
$ pulseaudio --start -or- start-pulseaudio-x11/kde
+
$ pulseaudio --start # または start-pulseaudio-x11/kde
   
Next, edit {{ic|/etc/mpd.conf}} and add a new pulse output pointing to 127.0.0.1 as a "remote" server:
+
次に {{ic|/etc/mpd.conf}} を編集してリモートサーバーとして pulse を新しく 127.0.0.1 に出力するように設定を追加してください:
 
audio_output {
 
audio_output {
 
type "pulse"
 
type "pulse"
264行目: 237行目:
 
}
 
}
   
  +
追加できたら mpd を再起動してください。
Once this is added, restart mpd.
 
   
  +
mpd で出力を有効にすれば、全てのユーザーからローカルの mpd が使えるようになります。
Enable the output in mpd; you should now have a working local mpd, usable by all users whose pulseaudio servers allow sound from 127.0.0.1.
 
   
 
=== リモート ===
 
=== リモート ===
   
  +
PulseAudio を使用するプログラムと同じように、mpd はネットワーク経由で音声を送信できます。mpd を動作させているサーバーに完全な PulseAudio システムは必要ありません。ソースとして使う場合に必要なのは {{Pkg|libpulse}} だけであり、mpd の依存パッケージとしてインストールされます。
As with any PulseAudio-enabled program, mpd can send sound over the network. The complete PulseAudio system is not required on the server running mpd; {{Pkg|libpulse}} is the only requirement to act as a source and is already a dependency of mpd.
 
   
In order to send audio from mpd to another computer follow the directions above, editing {{ic|/etc/mpd.conf}} on the server running mpd using the IP address of the target computer and {{ic|/etc/pulse/default.pa}} or {{ic|$XDG_CONFIG_HOME/default.pa}} (typically {{ic|~/.config/pulse/default.pa}}) on the target computer using the IP address of the server.
+
mpd から他のコンピュータに音声を送信するには、mpd が稼働しているサーバーの {{ic|/etc/mpd.conf}} を編集して送信先のコンピュータの IP アドレスを使うように上記の設定を行ってください。また、送信先のコンピュータの {{ic|/etc/pulse/default.pa}} または {{ic|$XDG_CONFIG_HOME/default.pa}} (通常は {{ic|~/.config/pulse/default.pa}}) を編集してサーバーの IP アドレスを使ってください。
   
  +
設定すると、再生中または一時停止中の場合、サーバーの mpd ソースが送信先のコンピュータに表示され、通常のソースと同じように制御することができます。mpd を停止すると送信先のマシンにはソースが表示されなくなります。
Once this is done, the server's mpd source should show up on the target computer while playing or paused as a normal source able to be rerouted and controlled as usual; there will be no visible source on the target while mpd is stopped.
 
   
 
== Cue ファイル ==
 
== Cue ファイル ==
   
  +
mpd 0.17 から cue のサポートに特別な設定は必要なくなりました。MPD にはパーサーが組み込まれており、外部の cue シートも、埋め込まれている cue シートも使うことができます。例えば、{{ic|mpc load albumx/x.cue}} コマンドで {{ic|''music_directory''/albumx/x.cue}} ファイルがプレイリストとしてロードされます。CUESHEET タグの場合、{{ic|mpc load albumx/x.flac}}。
No additional steps are needed for cue support in mpd since 0.17. MPD has its own integrated parser which works with both external and embedded cuesheets.
 
  +
For example, the command {{ic|mpc load albumx/x.cue}} loads the file {{ic|''music_directory''/albumx/x.cue}} as playlist; or in the case of an CUESHEET tag, {{ic|mpc load albumx/x.flac}}.
 
  +
CUE ファイルのクライアントサポートはやや制限があります。CUE ファイルをサポートしているプログラムとして {{Pkg|cantata}} と [[ncmpcpp]] があります。
   
 
== HTTP ストリーミング ==
 
== HTTP ストリーミング ==
   
  +
バージョン 0.15 から MPD には HTTP ストリーミングデーモン/サーバーが付属するようになりました。
Since version 0.15 there is a built-in HTTP streaming daemon/server that comes with MPD. To activate this server simply set it as output device in mpd.conf:
 
  +
  +
=== 設定 ===
  +
  +
ストリーミングサーバーを有効にするには {{ic|mpd.conf}} で以下のアウトプットデバイスを設定してください:
   
 
audio_output {
 
audio_output {
 
type "httpd"
 
type "httpd"
 
name "My HTTP Stream"
 
name "My HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
+
encoder "vorbis" # optional
 
port "8000"
 
port "8000"
 
# quality "5.0" # do not define if bitrate is defined
 
# quality "5.0" # do not define if bitrate is defined
 
bitrate "128" # do not define if quality is defined
 
bitrate "128" # do not define if quality is defined
 
format "44100:16:1"
 
format "44100:16:1"
  +
always_on "yes" # prevent MPD from disconnecting all listeners when playback is stopped.
  +
tags "yes" # httpd supports sending tags to listening streams.
 
}
 
}
   
  +
==== フォーマット ====
Then to listen to this stream simply open the URL of your mpd server (along with the specified port) in your favorite music player. Note: You may have to specify the file format of the stream using an appropriate file extension in the URL. For example, using Winamp 5.5, You would use http://192.168.1.2:8000/mpd.ogg rather than http://192.168.1.2:8000/.
 
   
  +
MPD は複数のエンコードフォーマットに対応しています。以下のコマンドで MPD が対応しているフォーマットを確認できます:
To use mpd to connect to the stream from another computer.
 
  +
$ mpd --version
  +
  +
=== 使用 ===
  +
  +
好きな音楽プレイヤーで mpd サーバーの URL (と指定のポート) を開くことでストリームを試聴することができます。
  +
  +
{{Note|URL に適切なファイル拡張子を含めて、ストリームのファイル形式を指定する必要がある場合があります。例えば、Winamp 5.5 を使用する場合、http://192.168.1.2:8000/ の代わりに http://192.168.1.2:8000/mpd.ogg を使います。}}
  +
  +
mpd を使って他のコンピューターのストリームに接続するには:
   
 
mpc add http://192.168.1.2:8000
 
mpc add http://192.168.1.2:8000
  +
  +
== MPRIS2 のサポート ==
  +
  +
{{AUR|mpDris2}} パッケージをインストールしてください。ユーザーセッションで動作し mpd サーバーを監視します。
  +
  +
デフォルト設定ファイルを {{ic|/usr/share/doc/mpdris2/mpDris2.conf}} から {{ic|~/.config/mpDris2/mpDris2.conf}} にコピーして必要に応じて編集してください。
  +
  +
mpDris2 には {{ic|.desktop}} ファイルが存在しますが、デフォルトでは表示されません。ログイン時に自動起動するように設定できます。デスクトップ環境で自動起動できない場合、{{ic|~/.config/autostart/}} にシンボリックリンクを作成することで手動で設定できます:
  +
  +
$ ln -s /usr/share/applications/mpdris2.desktop ~/.config/autostart/

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

メインの記事は Music Player Daemon

ライブラリの管理

MPD はライブラリの管理は行いません。公式リポジトリbeetspicard などを使うようにしてください。

Last.fm/Libre.fm scrobbling

ノート: mpd リリース 0.18 から Last.fm の サポート は削除されましたが、mpd とは独立して scrobbling ができるクライアントが存在します。

MPD を使って曲を Last.fmLibre.fm に scrobble したい場合、いくつかの選択肢があります。

mpdas

mpdas は C++ で書かれた MPD の AudioScrobbler クライアントです。curllibmpd を使っています。mpdas は最新の AudioScrobbler プロトコル (2.0) をサポートしており、ネットワークに接続していない場合 unscrobble した再生ファイルを ~/.mpdascache にキャッシュします。

mpdasAURAUR からインストールすることができます。

mpdas の設定はとてもシンプルです。公式の README を見て下さい。/etc/mpdasrc のベーシックな例として /etc/mpdasrc が使えます。

mpdasmpd を一緒に自動起動するには、mpd を起動しているファイルに mpdas のエントリを追加してください (例: xinitrc):

[[ -z $(pgrep -xU $UID mpdas) ]] && mpdas &

mpdsystemd ユーザーサービスで起動している場合、mpdas も同じ方法で起動するほうが良いでしょう:

$ systemctl --user start mpdas.service
ヒント: システムの起動時に mpdas.service が起動できない場合、mpd.socket によるソケットアクティベーションを使ってください。

mpdscribble

mpdscribbleAURAUR からインストールできるデーモンです。半公式の MPD scrobbler であり MPD の新しい "idle" 機能を使用して正確な scrobble を実現します。また、/etc に変更を加えないため設定に root 権限が必要ありません。詳しくは 公式ウェブサイト を見てください。

設定のサンプルは /usr/share/mpdscribble/mpdscribble.conf.exampleにあります。~/.mpdscribble/mpdscribble.conf にコピーして用途に応じて編集してください。

ノート: 設定ファイルにコメントを書く場合は行を分けてください。パーサは同行にあるコメントは認識できません。

パスワードは md5hash の形式にすることができます:

$ echo -n "password" | md5sum | cut -f 1 -d " "

自動起動するには systemd ユーザーインスタンスで mpdscribble.service を使ってください。詳しくは systemd/ユーザーを参照。

もしくは mpd と共に自動起動したい場合は、 mpd を起動しているファイルに mpdscribble のエントリを追加してください (例: xinitrc):

[[ -z $(pgrep -xU $UID mpdscribble) ]] && mpdscribble &
ノート: [last.fm] handshake failed, username or password incorrect (BADAUTH) というエラーが表示される場合、ユーザー名とパスワードが正しいことを確認してください。パスワードが 32文字 ではないことも確認してください。

Sonata

Sonata は scrobble をサポートしていますが、プログラムをずっと実行する必要があります。さらに、Sonata は曲をキャッシュしないため、再生中に Last.fm に転送できなくなった場合、統計に曲が追加されません。

YAMS

YAMS は Python で書かれた MPD のための FM scrobbling デーモンです。

Last.FM の scrobbling API の v2.0 に向けて書かれているため、YAMS はユーザネームやパスワードをローカルには保存しません。代わりにクッキーを利用します。他の scrobblers と同様に、YAMS は失敗した scrobbles を保存して後からそれらをアップードできます。例えば一行で複数回再生されたトラックなど重複した scrobbles を無視することなど、YAMS は scrobble がどう行われるか何を行うかを設定するための項目を十分備えています。

AUR から python-yamsAUR がインストール可能です。

認証するために、ユーザは少くとも一度は yams コマンドをターミナル上で実行する必要があります。説明が出力されるのでそれに従って下さい。

その後、YAMS は次の様にして実行できます:

yams: デフォルトのデーモンとして実行します。(yams -N とするとフォアグラウンドで実行できます。)

yams -k: 実行中のインスタンスをキルします。

yams -a: 実行中インスタンスのログファイルに接続します。デーモンの出力が見られます。

yams -h: 全てのコマンドラインオプションを出力します。

YAMS は systemd のサービスファイルも提供します。認証された後であれば、systemctl --user start yams としてスタートできます。

起動時のレジューム再生を無効化

この機能は mpd バージョン 0.16.2 から追加されました。この機能を有効にすると、たとえ mpd を停止したときに曲を再生していても、mpd は "paused" 状態で起動します。以下の行を mpd.conf に追加すれば機能が有効になります:

restore_paused "yes"

サンプル設定: 44.1KHz、16ビットでの出力、複数のプログラムを同時に出力する場合など

なぜこれらのフォーマットなのか? なぜなら、これらのフォーマットが CD オーディオの標準フォーマットであるためです。また、ALSA は、複数のプログラムが dmix (デフォルトで劣ったリサンプリング アルゴリズムを使用する) でのみ 音を出す ことを許可しているためです。 48KHz までの低いもの (またはその時点で再生されているより高いフォーマット) をリサンプリングします。また、少なくとも mpd.conf をこのように変更しないと、クリック音がするものもあります。

マイナス面は何ですか? これらの設定により、通常 48KHz である DVD や TV の素材など、すべて (必要な場合) がこの形式にリサンプリングされます。しかし、ALSA で動的にフォーマットを変更する既知の方法はありません。特に、他の何よりもはるかに多くの CD を聴いている場合、時折 48 から 44.1 になることはそれほど大きな損失ではありません。

以下は、競合する他の設定が既に存在しないことを前提に、上書きしています。これは特に、現在のユーザの潜在的な ~/.asoundrc に当てはまります。- MPD を無視するので、以下は /etc/asound.conf に記述してください。

/etc/asound.conf
defaults.pcm.dmix.rate 44100 # Force 44.1 KHz
defaults.pcm.dmix.format S16_LE # Force 16 bits
/etc/mpd.conf
audio_output {
        type                    "alsa" # Use the ALSA output plugin.
	name			"your_custom_name" # Must be present and does not have to match the actual card name , e.g. what you have in /etc/asound.conf
        options                 "dev=dmixer"
        device                  "plug:dmix" # Both lines cause MPD to output to dmix
	format	        	"44100:16:2" # the actual format
	auto_resample		"no" # This bypasses ALSA's own algorithms, which generally are inferior. See below how to choose a different one.
}
ノート: MPD は、デコード時に mp3 形式に特別な処理を行います。常に 24ビットとして出力されます。(format 行によって強制される変換は、その後に行われます。)

ビット深度の決定を ALSA と MPD に任せたい場合は、dmix.format 行をコメントアウトして、mpd の format 行を "44100:*:2" に変更してください。

ノート: 異なるビット深度でデコードされた 2 つのファイル(例えば、1つの mp3 と 1つの 16ビット flac)間の クロスフェード は、変換がアクティブでない限り機能しません。

lirc で MPD をコントロール

lircd と MPD の間を取り持つように作られたクライアントは既にいくつか存在しますが、実用レベルでは、機能が限られているためにあまり使い物になりません。

mpc と irexec を使用することが推奨されます。mpc はコマンドラインプレイヤーであり、コマンドを MPD に送信してすぐに終了するので (lirc に含まれているコマンド実行プログラムである) irexec にはうってつけです。irexec はリモコンのボタンが押されたのを受信すると指定されたコマンドを実行します。

まず最初に LIRC の記事を参照してリモコンをセットアップしてください。

lirc のスタートアップ設定ファイルを編集して下さい、デフォルトの設定ファイルの場所は ~/.lircrc です。

以下のパターンをファイルに記述します:

begin
     prog = irexec
     button = <button_name>
     config = <command_to_run>
     repeat = <0 or 1>
end

例:

## irexec
begin
     prog = irexec
     button = play_pause
     config = mpc toggle
     repeat = 0
end

begin
     prog = irexec
     button = stop
     config = mpc stop
     repeat = 0
end
begin
     prog = irexec
     button = previous
     config = mpc prev
     repeat = 0
end
begin
     prog = irexec
     button = next
     config = mpc next
     repeat = 0
end
begin
     prog = irexec
     button = volup
     config = mpc volume +2
     repeat = 1
end
begin
     prog = irexec
     button = voldown
     config = mpc volume -2
     repeat = 1
end
begin
     prog = irexec
     button = pbc
     config = mpc random
     repeat = 0
end
begin
     prog = irexec
     button = pdvd
     config = mpc update
     repeat = 0
end
begin
     prog = irexec
     button = right
     config = mpc seek +00:00:05
     repeat = 0
end
begin
     prog = irexec
     button = left
     config = mpc seek -00:00:05
     repeat = 0
end
begin
     prog = irexec
     button = up
     config = mpc seek +1%
     repeat = 0
end
begin
     prog = irexec
     button = down
     config = mpc seek -1%
     repeat = 0
end

mpc には複数の機能が存在します。詳しくは mpc(1) を実行してください。

PulseAudio

ローカル (通常のユーザーを使用)

特殊なオプションは必要ありません。mpd の設定ファイルのコメントに書かれているように pulse アウトプットを追加するだけです。

ローカル (特別な mpd ユーザーを使用)

mpd 用のユーザーを使って mpd を実行している場合、他のユーザーの pulseaudio サーバーに音声を送信することができません。pulseaudio をシステム全体のデーモンとして設定するのではなく、pulseaudio の tcp モジュールを使ってローカルホストに音声を送信するよう mpd を設定することができます:

まず /etc/pulse/default.pa または $XDG_CONFIG_HOME/pulse/default.pa (通常は ~/.config/pulse/default.pa) の tcp モジュールをアンコメントして許可する IP アドレスとして 127.0.0.1 を設定してください。ホームディレクトリの設定のほうが優先されます:

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
#load-module module-zeroconf-publish

; で区切って cidr 表記の IP アドレスを追加することもできます。設定できたら、pulseaudio を再起動してください:

$ pulseaudio --kill
$ pulseaudio --start # または start-pulseaudio-x11/kde

次に /etc/mpd.conf を編集してリモートサーバーとして pulse を新しく 127.0.0.1 に出力するように設定を追加してください:

audio_output {
       type		"pulse"
       name		"Local Music Player Daemon"
       server		"127.0.0.1"
}

追加できたら mpd を再起動してください。

mpd で出力を有効にすれば、全てのユーザーからローカルの mpd が使えるようになります。

リモート

PulseAudio を使用するプログラムと同じように、mpd はネットワーク経由で音声を送信できます。mpd を動作させているサーバーに完全な PulseAudio システムは必要ありません。ソースとして使う場合に必要なのは libpulse だけであり、mpd の依存パッケージとしてインストールされます。

mpd から他のコンピュータに音声を送信するには、mpd が稼働しているサーバーの /etc/mpd.conf を編集して送信先のコンピュータの IP アドレスを使うように上記の設定を行ってください。また、送信先のコンピュータの /etc/pulse/default.pa または $XDG_CONFIG_HOME/default.pa (通常は ~/.config/pulse/default.pa) を編集してサーバーの IP アドレスを使ってください。

設定すると、再生中または一時停止中の場合、サーバーの mpd ソースが送信先のコンピュータに表示され、通常のソースと同じように制御することができます。mpd を停止すると送信先のマシンにはソースが表示されなくなります。

Cue ファイル

mpd 0.17 から cue のサポートに特別な設定は必要なくなりました。MPD にはパーサーが組み込まれており、外部の cue シートも、埋め込まれている cue シートも使うことができます。例えば、mpc load albumx/x.cue コマンドで music_directory/albumx/x.cue ファイルがプレイリストとしてロードされます。CUESHEET タグの場合、mpc load albumx/x.flac

CUE ファイルのクライアントサポートはやや制限があります。CUE ファイルをサポートしているプログラムとして cantatancmpcpp があります。

HTTP ストリーミング

バージョン 0.15 から MPD には HTTP ストリーミングデーモン/サーバーが付属するようになりました。

設定

ストリーミングサーバーを有効にするには mpd.conf で以下のアウトプットデバイスを設定してください:

audio_output {    
	type		"httpd"    
	name		"My HTTP Stream"
	encoder		"vorbis"		# optional
	port		"8000"
#	quality		"5.0"			# do not define if bitrate is defined
	bitrate		"128"			# do not define if quality is defined
	format		"44100:16:1"
	always_on      "yes" # prevent MPD from disconnecting all listeners when playback is stopped.
	tags            "yes" # httpd supports sending tags to listening streams.
}

フォーマット

MPD は複数のエンコードフォーマットに対応しています。以下のコマンドで MPD が対応しているフォーマットを確認できます:

$ mpd --version

使用

好きな音楽プレイヤーで mpd サーバーの URL (と指定のポート) を開くことでストリームを試聴することができます。

ノート: URL に適切なファイル拡張子を含めて、ストリームのファイル形式を指定する必要がある場合があります。例えば、Winamp 5.5 を使用する場合、http://192.168.1.2:8000/ の代わりに http://192.168.1.2:8000/mpd.ogg を使います。

mpd を使って他のコンピューターのストリームに接続するには:

mpc add http://192.168.1.2:8000

MPRIS2 のサポート

mpDris2AUR パッケージをインストールしてください。ユーザーセッションで動作し mpd サーバーを監視します。

デフォルト設定ファイルを /usr/share/doc/mpdris2/mpDris2.conf から ~/.config/mpDris2/mpDris2.conf にコピーして必要に応じて編集してください。

mpDris2 には .desktop ファイルが存在しますが、デフォルトでは表示されません。ログイン時に自動起動するように設定できます。デスクトップ環境で自動起動できない場合、~/.config/autostart/ にシンボリックリンクを作成することで手動で設定できます:

$ ln -s /usr/share/applications/mpdris2.desktop ~/.config/autostart/