Recent Posts

2012年11月6日火曜日

ubuntu studio 12.10 MPDの導入がうまくいかないよ その1



ゴミのようなメモ その1


MPD + Sonata




重要な警告:
けっして真似をしないでください!上手くいかなかったことの記録なので...



いわゆるubuntuのMPD化ですが、やり方を変えて何度もインストール&アンインストールを繰り返してきましたがなかなかうまくいかず。

Linux初心者には理解しがたい不思議な挙動に見舞われて凹む毎日。

なんとか原因を特定して気持よく音楽を楽しみたい。

そのために試行錯誤を記録して解決に近づきたい。





海外のフォーラムなどで見かけたお仲間の意見:

「なんでlinuxはこんなに複雑なんだ(笑)」
「MPDを機能させるのに1年以上かけているが、まだ...」
「もうrhythmboxでいいんだ。これで自分の目的は果たせるもん」




自分で最近気がついたこと:

・ネットは古い情報が残ったままだなぁ。
・同じLinuxでもディストリもいろいろ、環境もいろいろなので真似してうまくいかなくても逆上して音楽データを初期化してはいけない。
・知らないコマンドやLinux用語などは曖昧にせずひと呼吸おいて学習すべき。




目的:
ubuntu studio 12.10にMPDを導入し、ntfsで作ったパーティションの中にある音楽データをalsa経由で再生する。
再生するファイルはwav、ogg、mp3、ネットラジオのストリーミングURL。




環境:
ubuntu studio 12.10 (WindowsXPとのデュアルブート、フォーマットはext4、デスクトップはubuntu studio session)

ubuntu studioは公式サイトからダウンロードしてイメージDVDからインストールしたlowlatencyカーネルで、デフォルト状態のもの

MPD version 0.18-git (適当に最新版をmakeしたもの)

音楽データの入っているパーティション(/media/M)のfstab上の記述
UUID=01CDA39A366F7E60    /media/M    ntfs-3g    defaults,locale=ja_JP.UTF-8   0   0

再生するクライアントはシンプルな機能とGUIのSonataを使用。
念のためのサブとしてGMPCを用意した。

この環境で通常の(?)Audacious、aplay、alsaplayer、guayadeque、Audour、Deadbeef等々のソフトでは再生/書き込みができています。






今回の挑戦

今回は問題が明確になるのを期待して最小限の設定変更でMPDを動かします。
そのためローカルに ~/.mpd/ を作成しないでグローバルなまま、sudoで起動します。


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


設定ファイル:
/etc/mpd.conf




1.デフォルトのmpd.confのうち下記を変更した。

コメントした項目(無効にした項目)
# user "mpd"

コメントアウトした項目(有効にした項目)
port "6600"
auto_update "yes"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"


上記の変更後、最終的にmpd.confで有効になっている項目:

music_directory        "/var/lib/mpd/music"
playlist_directory        "/var/lib/mpd/playlists"
db_file            "/var/lib/mpd/tag_cache"
log_file            "/var/log/mpd/mpd.log"
pid_file            "/var/run/mpd/pid"
state_file            "/var/lib/mpd/state"
sticker_file                   "/var/lib/mpd/sticker.sql"

bind_to_address        "localhost"
port                "6600"

follow_outside_symlinks    "yes"
follow_inside_symlinks        "yes"

input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}

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
}

filesystem_charset        "UTF-8"
id3v1_encoding            "UTF-8"




2.音楽データの入っているディレクトリのシンボリックリンクを作成し、/var/lib/mpd/music に置いた。

/var/lib/mpd/music/Ongakuへのリンク/
/var/lib/mpd/music/Musicへのリンク/

Ongaku = /media/M/Ongaku utfsパーティションに置いてある音楽データのディレクトリ
Music = /home/user/Music ローカルなディレクトリでの挙動を確認するために設置




3.Sonataの設定

「音楽ディレクトリ」を /var/lib/mpd/music に設定。






【今回の結果】

〈音楽データファイルへのアクセス〉


〈再生〉

ファイルによって不可

シンボリックリンクから音楽データへアクセス



【不具合】

特定のファイルで再生がスタートしない。


【症状】

ダメなファイルの場合、シークが0:00のままになり再生が始まらない。


ストップボタンや「現在のリスト」を右クリックでクリアをするとクライアントがフリーズし、MPDとの接続が切れる。

MPDをリスタートすると接続が再開し、異常のなかった前回の「現在のリスト」が再生される。

再生できずに固まるのは「特定のフォルダ」ではなく「特定のファイル」。

CDのアルバム単位でフォルダを作成しているが、同じフォルダの中でも再生できるものとできないものがある。

この症状はntfsパーティションだけでなくローカルな/home/user/Musicでも同じだった。

また、Windowsでリッピングしたものでもubuntuでリッピングしたものでも同様の症状が出る。

ファイル名に原因があると考えるも、track1.wav, track2.wav... という単純なものでさえ再生ができるものとできないものがある。

このアルバム(フォルダ)は1曲目から再生不可。0:00で停止している状態。


【エラーログ】

/var/log/mpd/mpd.log

Audio File Library: unable to position file handle at beginning of sound data [error 7]
Nov 06 15:57 : audiofile: failed to input stream
Nov 06 15:57 : ffmpeg/wav: max_analyze_duration reached
Home directory /home/atm not ours.


端末上ではエラー表示は出ない。




【原因の推測】

推測1.

MPDの設定ではなくディレクトリやユーザーのパーミッションに問題があるのか?
しかし、そういった問題ならディレクトリごとアクセスできないはずのような気が...。

現在の設定
/var/lib/mpd/music
drwxr-xr-x


/home/atm/Music
drwxr-xr-x


/media/M/Ongaku
drwxrwxrwx



推測2.

曲の頭でひっかかるということはリッピング時に音楽ファイルに設定したギャップ周りが原因か?
ギャップをファイルの頭ではなく最後に設定しなくてはいけない、とかだったら嫌だなぁ。


試しにネットでダウンロードしてwavやmp3に変換したものを集めたフォルダを再生リストに突っ込んでみた。
 これらは当然ギャップが付加されていない。




...う、動くぞ!

こいつら全部動く!!!!!!!!!




この推測は正しいのか!?

「既知の問題」だったら恥ずかしいなぁ。

今日はここまで。

シンプル+αで音がいいSonata。アルバム情報の詳細が見れるのがお気に入り。



【感想】

文章にする前までは、100万したAccuphaseのパワーアンプが工場出荷状態でモノラルにスイッチが入っていたのに気づかなかった悪夢の30分間と同じくらいに胃が痛かった。

書くことによって少し問題の切り分けができたような気がする。

最終的にはローカルに設定して端末で mpd だけして動かしたい。

少しずつ試行錯誤して次回のメモに続く。

いっぺんにガチャガチャやると調べる要素が増えてしまうので...


→ ゴミのようなメモ その2


おまけ
【緊急脱出用TIPS】

デフォルトのmpdconfを復活させる(コピーする)
# gunzip -c /usr/share/doc/mpd/examples/mpd.conf.gz > ~/場所/mpd.conf

プレイリストに曲が残ったり、前回の状態がクリアできないとき
state_fileにプレイリストなどの現在の状態が保存されているので、原因となるものを削除する。
デフォルトの場所:/var/lib/mpd/state




 〈今回お世話になった主なサイト〉

Special Thanks !

MPD - User's Manual
(難しいので挫折中)
http://www.musicpd.org/doc/user/

MPD Community Wiki
設定のページ
http://mpd.wikia.com/wiki/Configuration
パーミッションについてのページ
http://mpd.wikia.com/wiki/Permission_problems

Arch LinuxのMusic Player Daemonのページ
https://wiki.archlinux.org/index.php/Music_Player_Daemon

ubuntu manualsのMPDについてのページ
http://manpages.ubuntu.com/manpages/hardy/man5/mpd.conf.5.html

ubuntu Community WikiのMPDについてのページ
https://help.ubuntu.com/community/MPD

ubuntu forumsのMPD + Sonataで同じような問題について書かれた記事
(この方法はまだ試していません)
http://ubuntuforums.org/showthread.php?t=2037383&goto=nextoldest

ubuntu studio公式
http://ubuntustudio.org/

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