Recent Posts

2012年11月13日火曜日

MPDの設定 (デスクトップ用途)




ubuntu studioとMPDで音楽を聴く



MPDはデフォルトではすべてのユーザーが利用できるデーモンとして動きます。

また、設定により普通のアプリケーションのようにローカルに起動させることもできます。

今回はローカルにユーザーホームから運用する方法について書いてみました。
(記事作成時の環境:ubuntu studio 12.10 / MPD16.5)


  • インストール
  • 運用方法を決める
  • 基本設定
  • Sonataで音を出してみる
  • さらに好みで設定
  • mpcの活用
  • 起こり得るエラーと対処
  • 参考サイト


    インストール


    sudo apt-get install mpd mpc sonata

    MPD本体とクライアントを2つインストールします。

    mpc = コマンドラインから便利に操作できるプレイヤーソフト。
    Sonata = シンプルなGUIのプレイヤーソフト。


    • 補足:
    最新の開発版はgitで提供されています。
    最新の安定版はtar.bz2形式で提供されています。




      運用方法を決める


      インストール後の設定を始める前に、どちらの方法で運用するのかを決めた方が無駄やトラブルが少ないと思います。


      1.デーモンとしてグローバルに起動させる

      設定ファイルなどは /etc/ や /var/ に保存されているので基本的に sudo を使う必要があります。

      起動方法:
      sudo /etc/init.d/mpd start

      設定ファイルの保管場所:
      /etc/mpd.conf

      利点:
      別のPCやiPadなどの端末に置かれたクライアント(プレイヤーソフト)から操作する場合に便利です。
      また、1台のPCで使う場合でもデフォルト設定をあまり変えなくて済むというメリットがあります。


      2.通常のアプリのようにローカルに起動させる
       
      必要なディレクトリやファイルを /home/user/ 以下に作成して運用します。

      起動方法
      mpd

      設定ファイルの場所
      /home/user/.mpd/mpd.conf

      利点:
      設定ファイルなどをユーザーの手元に置けるので安心感があります。
      普段使うものにsudoするのはいやだ、という心の持ち主向け。


      個人的にはローカルで運用する場合にエラー表示に出会うことが多いです。
      これも知識の無さから、嗚呼。





        設定



        sudoでグローバルに起動させる場合はほとんど設定の変更がありませんので、今回はローカルに起動させる方法です。


        <ローカルな場合の設定>


        1.動いている(かもしれない)MPDを停止させ、さらに自動ロードを不可にする。
        sudo service mpd stop

        sudo update-rc.d mpd disable


        2.ローカルにMPD用のディレクトリ /home/user/.mpd とプレイリストフォルダを設置する。
        mkdir -p ~/.mpd/playlists


        3.デフォルトの設定ファイルを /home/user/.mpd に抽出して、ファイル名を 'mpd.conf' とする。
        gunzip -c /usr/share/doc/mpd/examples/mpd.conf.gz > ~/.mpd/mpd.conf

        • 補足:
        ここは好みで ~/.mpdconf にするのも可。
        MPDが起動時に読み込む設定ファイルの優先順位は次のようになっています。
        ~/.mpdconf >> ~/.mpd/mpd.conf >> /etc/mpd.conf


        4.設定ファイル'mpd.conf'で定義する必要なファイルを4つ /home/user/.mpd/ に作成する。
        touch ~/.mpd/{mpd.db,mpd.log,mpd.pid,mpdstate}


        5.ローカル設定ファイル'mpd.conf'をテキストエディタで開く。
        gedit ~/.mpd/mpd.conf


        6.'mpd.conf'を編集する。

        Files and directories の欄の下記の項目を自分のディレクトリ名に変更する。

        • 注意:
        ・ "~/" は使えないようですので、省略せずに "/home/" から記述します。
        ・ ディレクトリだけではなくファイル名も変更します。
        playlist_directory   "/home/user/.mpd/playlists"
        db_file       "/home/user/.mpd/mpd.db"
        log_file       "/home/user/.mpd/mpd.log"
        pid_file       "/home/user/.mpd/mpd.pid"
        state_file      "/home/user/.mpd/mpdstate"


        次にmusic_directory に音楽データを保存しているディレクトリを記入する。
        music_directory        "/ongaku/no/basho/koko"

        • 補足:
        /home/user/Music を使う場合は自動的に認識されるので # でコメントアウトしておく。
        #music_directory        "/var/lib/mpd/music"

        (音楽データディレクトリへのリンクを設置することもできます。複数の場所に音楽データを置いている場合に便利です。リンクを使う場合は Symbolic link behavior の項目をコメントアウトして有効にします)


        ユーザーを指定する項目を # でコメントします(システムサービスとして使わないので無効にします)。
        #user       "mpd"


        出力設定

        alsaの例(デフォルト)
        audio_output audio_output{
        type "alsa"
        name "My ALSA
        Device" device "hw:0,0"
        format "44100:16:2"
        mixer_device "default"
        mixer_control "PCM"
        mixer_index "0"
        }







          Sonataで音を出してみる


          起動
          mpd

          終了
          mpd --kill

          ヘルプ
          mpd --help

          設定が終わったらMPDとSonataを起動して音を確認。

          Sonataの設定
          ウィンドウの適当な所で右クリックして「設定」を選択。
          「音楽ディレクトリ」で先ほど設定した音楽データが入っているディレクトリを指定する。




         さらに好みで設定


        ubuntuログイン時にMPDが自動的にロードする設定
        テキストエディタでデスクトップファイルを作成する。
        gedit ~/.config/autostart/mpd.desktop
        下記を記入して保存する。
        [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


        mpd.confのその他の設定
        MPDの起動時に音楽ライブラリを更新する。(クライアントに自動更新機能があることが多いのであまり使いませんが…)
        auto_update    "yes"

        ソフトウェアボリュームを有効にする。
        mixer_type            "software"

        リプレイゲインを有効にする。
        replaygain            "track"

        mp3をギャップレス再生する。
        gapless_mp3_playback            "yes"

        音楽ライブラリへのシンボリックリンクを有効にする。上でも述べましたが /home/user/Music/ にリンクを置くととても便利です。
        follow_inside_symlinks        "yes"

        バッファに予め読み込んでおくサイズをパーセントで指定する。スキップエラーなど誤作動が少なくなるようです。
        ※追記 2013/02/09 v.0.17.3
        "100%"に指定するとシーク時にmpdがハングアップする現象を確認。
        buffer_before_play        "50%"

        MPDがオーディオファイルから引き出すタグのリストを定義する。(ここは有効にしても無効にしても違いがわかりませんでした…)
        metadata_to_use    "artist,album,title,track,name,genre,date,composer,performer,disc"

        再生中にMPDを終了しても次回起動時に音を鳴らさないようにする。
        下記を mpd.conf に追記。
        restore_paused "yes"




        mpcの活用


        mpcはコマンドラインで操作することができるプレイヤーソフトです。
        他のクライアントをメインに使っている場合でもインストールしておくと便利です。
        キーボードから手を離したくないという人に特におすすめです。

        現在の曲目や状態について表示する。
        mpc

        MPDのバージョンを表示する。
        mpc version

        音楽ライブラリをアップデートする。
        mpc update

        プレイヤー操作
        mpc play        再生
        mpc next        次を再生
        mpc prev        前を再生
        mpc pause     一時停止
        mpc stop        停止
        mpc clear       プレイリストをクリア
        mpc playlist   現在のプレイリストを表示
         
        mpcのヘルプ
        mpc help






        起こり得るエラーと対処

        (調査・加筆訂正中)
        エラーについて最終更新日:2012/11/14

         
        • 注意:
        ・初回の起動時には端末にエラーが表示されることが多いです。まずはMPDやシステムを再起動することをおすすめします。

        ・この対処法は自分が困った時に書籍で調べたりネット上で見つけたもので、これで直ったり直らなかったり、といったものです。

        ・linuxの使い方の基本的な誤りが含まれている可能性があります。



         エラーや不具合のほとんどはパーミッションの問題だと公式サイトにあります。


        音楽ライブラリがクライアントから見られない場合 

        MPDがファイルを変更できるようにする。
        sudo chown -R mpd /var/lib/mpd

        音楽ディレクトリの属性を変えてみる。
        sudo chmod -R 777 /home/user/Music/

        MPDがグループ'audio'に入っているか確認する。
        groups mpd

        入っていなかったら追加する。
        sudo gpasswd -a mpd audio




        エラー表示1:

        listen: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded

        表示が出ても実際にはクライアントと接続されていることが多いと思います。
         MPDやシステムの再起動を試してみてください。
        しばらく経ってから表示されなくなることもあります。

        再起動などで改善されなかった場合、mpd.conf のアドレスの部分を変えると直るかもしれません。
        # For network #bind_to_address "localhost"
        # For network bind_to_address "127.0.0.1"




        エラー表示2:

        Failed to load database: Failed to open database file "/home/user/.mpd/tag_cache": No such file or directory
        WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-**********: No such file or directory

        gnome-keyringがなんたらかんたら…。
        /.mpd/mpd.log を見てもエラーは残っていませんので、実害はないと思われますが邪魔ですね。

        どうやらこれはMPDの設定の問題ではなくて、Xfceなどの非gnome系デスクトップで起こるバグのようです。
        http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653011

        /etc/xdg/autostart/ にある4つのファイルを編集すると改善されました。

        下記の4つのファイルをテキストエディタで開き編集します。

        /etc/xdg/autostart/gnome-keyring-gpg.desktop
        /etc/xdg/autostart/gnome-keyring-pkcs11.desktop
        /etc/xdg/autostart/gnome-keyring-secrets.desktop
        /etc/xdg/autostart/gnome-keyring-ssh.desktop
        各ファイルの次の行に自分のデスクトップの名前を追加してシステムを再起動。
        OnlyShowIn=GNOME;Unity;
              ↓
        OnlyShowIn=GNOME;Unity; XFCE;

        この修正の仕方は下記のサイトとubuntuフォーラムのおかげで知りました。
        ありがとうございます。

        あまたたび備忘録
        Ubuntuのデスクトップ環境をデフォルトから変更した場合に注意する点

        Ubuntu日本語フォーラム
        WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-5HPsbp/pkcs







        参考サイト



        Install - Music Player Daemon Community Wiki
        http://mpd.wikia.com/wiki/Install

        Permission problems - Music Player Daemon Community Wiki
        http://mpd.wikia.com/wiki/Permission_problems

        MPD - Community Ubuntu Documentation
        https://help.ubuntu.com/community/MPD

        Music Player Daemon - ArchWiki
        https://wiki.archlinux.org/index.php/Music_Player_Daemon

        The ultimate MPD guide (Page 1) / Tips, Tricks & Scripts / CrunchBang Linux Forums
        http://crunchbang.org/forums/viewtopic.php?id=17386

        ubuntu studio
        http://ubuntustudio.org/ 

        Related Posts Plugin for WordPress, Blogger...
        Twitter Delicious Facebook Digg Stumbleupon Favorites More