C02 MPDの設定

室長:前回はインストールしたままで再生してみたが、さすがにBruteFIRと連携させるには設定ファイルの変更が必要だ。今回はmpd側の設定をするぞ。

助手:mpdは設定例がネット上に数多くあるので楽ですね♪

室長:そういうわけで詳しいことは他のサイトを参照してもらうことにして重要ポイントだけいうぞ。あと今回もubuntu12.04前提で話を進める。まず設定ファイルだが/etc/mpd.confだ。ただubuntuでインストールするとユーザー:mpd、グループ:audio、パーミッションが640になってるのでaudioグループに所属してないユーザーは見ることも出来ん。編集はルート権限で行ってくれ。

ではさっそく出力の設定だ。Audio Outputセクションをみてくれ。

助手:デフォルトではalsaになってますね。


audio_output {
  type            "alsa"
  name            "My ALSA Device"
  device          "hw:0,0"        # optional
  format          "44100:16:2"    # optional
  mixer_device    "default"       # optional
  mixer_control   "PCM"           # optional
  mixer_index     "0"             # optional
}

室長:これは全部コメントアウトしてくれ。そして下の方にあるExample “pipe” outputを参考にしてパイプに出力する。


audio_output {
  type "pipe"
  name "brutefir-4432"
  format "44100:32:2"
  command "brutefir -nodefault /home/user1/bruteconf1 2>/var/log/mpd/err.log"
}

助手:formatが44.1k32bitになってます。なぜですか?

室長:formatを設定しないと入力ファイルそのままのサンプリング周波数、ビット数で出力されてしまう。フィルタ係数はサンプリング周波数によって違うので都合が悪い。そこでformatで出力を指定するとmpdはそれにあわせてサンプリングレートコンバーターを使ってくれるのだ。この場合は元の音楽ファイルのサンプリング周波数とビット数がなんであれ、44.1kHz、32bitで出力することになる。

助手:フィルタ係数を96kで作ったならばformat ”96000:32:2”とすれば良いのですね。ビット数を32にする意味は何ですか?

室長:サンプリングレートコンバーターで変換したときのビット落ちやクリッピングノイズを避けるためだ。brutefirは32bitでデータを受けられるのでこの方が良い。

助手:commandの解説をお願いします。

室長:brutefirはnodefaultオプションをつけて起動する必要がある。なぜならbrutefirはmpdから起動するのでユーザーがmpdになる。brutefirはホームディレクトリのデフォルトファイルを読み込もうとするがユーザーmpdにはホームディレクトリがないから読み込むことが出来ないのだ。設定ファイルの場所は絶対パスで記述する。ユーザーmpdが読める場所ならどこでも良い。後ろの 2>/var/log/mpd/err.log はbrutefirのエラー出力をファイルにリダイレクトしている。追記したければ 2>>/var/log/mpd/err.logだ。これもユーザーmpdが書き込み権限のあるフォルダを指定しなければいけない。安定動作して必要なくなったら2>/dev/nullとすれば良いだろう。

助手:これでばっちりbrutefirから再生できますね!

室長:CPUパワーに余裕があればサンプルレート変換を一番高品質の設定にしておこう。

samplerate_converter   "Best Sinc Interpolator"

安定して出力されないならばバッファを増やしてみよう。

audio_buffer_size    "65536"
buffer_before_play   "20%"

こんなにバッファを増やすと再生するまでの待ち時間が長くなってしまうがな。

では次回はBruteFIRのほうの設定をするぞ。

2013年2月22日

次ページへ

目次へ