Recent Posts

リッピングの戦略と方法論 - 1

CDのリッピングをする前に自分だけのメソッドを考えてみませんか?高音質かつ将来性のあるリッピング戦略。

MPD - 0.17.2 (stable) をビルド

mpd-0.17.2をソースからコンパイルしてみました。この記事のおかげでPC再インストールの時に助かってしまった。

パイオニア DVR-XD10Jでリッピング

信頼できるドライブと出会えてよかった。Pioneerのピュアリード機能でリッピングしています。

これで決まりか! J River Media Center / Jukubox

Windowsで愛用しているプレイヤーソフトです。多機能でいて高音質。初めて使った時は感動しました。

2012年11月22日木曜日

Google Blogger 固定ページのコメントを隠す


Bloggerの固定ページのコメントを非表示にする。




Bloggerには固定ページを設置する機能があります。

いろいろな用途に使えて便利ですが、デフォルトではなぜかブログ読者からのコメントを受け付ける設定になっています。

固定ページでサイトの紹介文やリンク集などを置いている場合には、この埋め込み式のコメント欄が邪魔だと思います。

設定する場所が隠れているので気づきにくいのですが、固定ページのコメント機能はBloggerの設定画面で簡単に隠すことができます。




1.Bloggerにログインして自分のブログのタイトルをクリックします。

2.画面左のリストから「ページ」をクリックします。

3.コメントを消したいページの「編集」をクリックします。

4.マウスでカーソルを画面の右にもっていきます。

5.「ページ設定」がポップアップしたら「オプション」をクリックします。




6.「許可しない(既存のバックリンクを表示する)」を選択すると、下記のような表示になります。




7.「許可しない(既存のバックリンクを表示しない)」を選択すると、下記のような表示になります。




8.「更新」ボタンを押してブログをアップデートして完了です。



お疲れ様でした。

2012年11月19日月曜日

MPD - 0.17.2(stable)をビルド




ubuntu studio 12.10 にMPDの最新安定版をインストールしたときのメモ。

開発中のものではなく stable なものが好みなので mpd-0.17.2.tar.bz2 のアーカイブからソースをコンパイルしてみました。



今回のコンセプトは、対応フォーマットてんこ盛り(一生使わないようなものは除く)、各種出力に対応、Icecast2を使わないでネットラジオ、豊富なプロトコル対応、といったところです。

タグ周りについては個人的に安心したいため、一部をソースからビルドしてインストールしました。

試行錯誤を繰り返してこれで安定しています。



  • ubuntu studioの環境を整える
  • 依存するライブラリの確認
  • ライブラリのインストール
  • MPDのインストール
  • MPDのアンインストール
  • alsamixerのイコライザを使う(※現在挫折中)
  • <資料1> 今回インストールしたMPD-0.17.2の概要/共有ライブラリ
  • <資料2>MPD-0.16.5 debパッケージの概要/共有ライブラリ





ubuntu studioの環境を整える


コンパイルできるように環境を整える
sudo apt-get install build-essential checkinstall automake

プログラム管理のためにsubversionとgitをインストール
sudo apt-get install cvs subversion git-core mercurial






依存するライブラリを確認


下記を参考
http://mpd.wikia.com/wiki/Dependencies

試しに「MPD」だけをインストールしてみたところ、ubuntu studio 12.10はデフォルトで要件を満たしていました。
なにも再生はできませんが...。

下記は公式サイトに載っていた最小限のシステム構成。alsa出力でmp3とflacの再生が可能。
sudo aptitude update
sudo aptitude install libasound2-dev libmad0-dev libid3tag0-dev libflac-dev libflac++-dev
./configure
make
sudo make install


必須 - INSTALLファイルで指定されているもの

gcc
ubuntu studio 12.10には下記のバージョンが入っていた。
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2

Glib - ver.2.16が必要
http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.16/





ライブラリのインストール


以下、いろいろ重複しつつライブラリをインストール。
devファイルがないとダメなので探すのが面倒です。


# 念のためubuntu用のプラグインをインストール
sudo apt-get install ubuntu-restricted-extras

# avフォーマットライブラリ
sudo apt-get install libavformat53 libavformat-dev libavcodec-dev libavcodec53 libavutil51 libavutil-dev

# libmad
sudo apt-get install libmad0 libmad0-dev libmadlib libmadlib-dev

# flac
sudo apt-get install libflac-dev libflac8

# ogg
sudo apt-get install libogg0 libogg-dev libfishsound1 libogg-dev liboggz2 liboggz2-dev

# vorvbis
sudo apt-get install libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3

# オーディオファイルを読み書き
sudo apt-get install libsndfile-dev libsndfile1 libaudiofile1 libaudiofile-dev

# faac
sudo apt-get install faac libfaac-dev libfaac0

# faad
sudo apt-get install faad libfaad-dev libfaad2

# mp4
sudo apt-get install libmp4v2-2 libmp4v2-dev

# avahi Zeroconf機能
sudo apt-get install libavahi-common-dev libavahi-common3 libavahi-glib-dev libavahi-glib1

# curl プロトコルサポート
sudo apt-get install libcurl4-gnutls-dev libcurl3

# サンプルレート変換
sudo apt-get install libsamplerate0 libsamplerate0-dev libresample1 libresample1-dev

# gccサポート
sudo apt-get install libgcc1 libgccxml-dev

# lameコーデック
sudo apt-get install libmp3lame-dev libmp3lame0

# wavpack
sudo apt-get install libwavpack1 libwavpack-dev

# mpcコーデック
sudo apt-get install libmpcdec-dev libmpcdec6

# mms系プロトコル
sudo apt-get install libmms-dev libmms0

# alsa出力
sudo apt-get install libasound2 libasound2-dev libasound2-plugins libasound2-plugins-extra

# jack出力
sudo apt-get install libjack-jackd2-0 libjack-jackd2-dev

# pulseaudio出力
sudo apt-get install libpulse-dev libpulse0

# id3タグ
sudo apt-get install libid3tag0-dev libid3tag0 libid3-3.8.3-dev libid3-3.8.3c2a libid3-tools

# zlibをコンパイル/インストール
http://www.zlib.net/

# madplayをコンパイル/インストール
http://www.underbit.com/products/mad/





MPDのインストール


最新の安定版をダウンロード/コンパイル/インストール

MPD - 0.17.2 (stable)
http://mpd.wikia.com/wiki/Server 

mv ./Download/mpd-0.17.2.tar.bz2 /usr/local/src

cd /usr/local/src

tar -xjvf mpd-0.17.2.tar.bz2

cd mpd-0.17.2

./configure

make

sudo checkinstall

make install ではなく checkinstall を使用。
debパッケージ化してくれるのでソフトウェアセンターからクリーンにアンインストールできます。

checkinstallが終了。




MPDのアンインストール


MPDのアンインストール
sudo dpkg -r mpd


またはソフトウェアセンターから削除。

実行コマンドもちゃんと表示されています。ここから簡単にアンインストール。





alsamixerのイコライザを使う

※現在、設定で挫折中

# alsaイコライザー
sudo apt-get install libasound2-plugin-equal

参考:
Debian User Forums • View topic - HOWTO systemwide eq with alsaequal





<資料1>

今回ビルドしたMPD-0.17.2の概要とライブラリ表示

概要:

mpd (MPD: Music Player Daemon) 0.17.2

Copyright (C) 2003-2007 Warren Dukes <warren.dukes@gmail.com>
Copyright (C) 2008-2012 Max Kellermann <max@duempel.org>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Decoders plugins:
 [mad] mp3 mp2
 [vorbis] ogg oga
 [oggflac] ogg oga
 [flac] flac
 [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
 [audiofile] wav au aiff aif
 [dsdiff] dff
 [dsf] dsf
 [faad] aac
 [mp4ff] m4a m4b mp4
 [mpcdec] mpc
 [wavpack] wv
 [ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve
 [pcm]

Output plugins:
 null fifo alsa oss pulse jack httpd recorder

Encoder plugins:
 null vorbis lame wave flac

Input plugins:
 file curl ffmpeg mms

Playlist plugins:
 extm3u m3u xspf pls asx rss cue cue

Protocols:
 file:// http:// mms:// mmsh:// mmst:// mmsu:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://


ライブラリの表示:

linux-gate.so.1 =>  (0xb76f1000)
libavahi-common.so.3 => /usr/lib/i386-linux-gnu/libavahi-common.so.3 (0xb76c9000)
libavahi-client.so.3 => /usr/lib/i386-linux-gnu/libavahi-client.so.3 (0xb76b7000)
libavahi-glib.so.1 => /usr/lib/i386-linux-gnu/libavahi-glib.so.1 (0xb76b1000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb75b6000)
libvorbisfile.so.3 => /usr/lib/i386-linux-gnu/libvorbisfile.so.3 (0xb75ac000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7580000)
libFLAC.so.8 => /usr/lib/i386-linux-gnu/libFLAC.so.8 (0xb7530000)
libsndfile.so.1 => /usr/lib/i386-linux-gnu/libsndfile.so.1 (0xb74bb000)
libaudiofile.so.1 => /usr/lib/i386-linux-gnu/libaudiofile.so.1 (0xb748e000)
libwavpack.so.1 => /usr/lib/i386-linux-gnu/libwavpack.so.1 (0xb7463000)
libmad.so.0 => /usr/lib/i386-linux-gnu/libmad.so.0 (0xb744b000)
libavformat.so.53 => /usr/lib/i386-linux-gnu/i686/cmov/libavformat.so.53 (0xb7327000)
libavcodec.so.53 => /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.53 (0xb665e000)
libavutil.so.51 => /usr/lib/i386-linux-gnu/i686/cmov/libavutil.so.51 (0xb663b000)
libmpcdec.so.6 => /usr/lib/libmpcdec.so.6 (0xb662b000)
libfaad.so.2 => /usr/lib/i386-linux-gnu/libfaad.so.2 (0xb65ea000)
libcurl-gnutls.so.4 => /usr/lib/i386-linux-gnu/libcurl-gnutls.so.4 (0xb658c000)
libmms.so.0 => /usr/lib/i386-linux-gnu/libmms.so.0 (0xb657a000)
libid3tag.so.0 => /usr/lib/libid3tag.so.0 (0xb6566000)
libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 (0xb6474000)
libjack.so.0 => /usr/lib/i386-linux-gnu/libjack.so.0 (0xb6423000)
libpulse.so.0 => /usr/lib/i386-linux-gnu/libpulse.so.0 (0xb63d5000)
libsamplerate.so.0 => /usr/lib/i386-linux-gnu/libsamplerate.so.0 (0xb6268000)
libmp3lame.so.0 => /usr/lib/i386-linux-gnu/libmp3lame.so.0 (0xb61e4000)
libvorbisenc.so.2 => /usr/lib/i386-linux-gnu/libvorbisenc.so.2 (0xb606c000)
libvorbis.so.0 => /usr/lib/i386-linux-gnu/libvorbis.so.0 (0xb6040000)
libogg.so.0 => /usr/lib/i386-linux-gnu/libogg.so.0 (0xb6038000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb6034000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb602b000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb600d000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb5ff2000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb5e48000)
libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xb5dfd000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5df8000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb5db8000)
/lib/ld-linux.so.2 (0xb76f2000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb5ccf000)
libgnutls.so.26 => /usr/lib/i386-linux-gnu/libgnutls.so.26 (0xb5c0b000)
libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xb5bf9000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb5be0000)
libvpx.so.1 => /usr/lib/i386-linux-gnu/libvpx.so.1 (0xb5b3a000)
libtheoraenc.so.1 => /usr/lib/i386-linux-gnu/libtheoraenc.so.1 (0xb5af3000)
libtheoradec.so.1 => /usr/lib/i386-linux-gnu/libtheoradec.so.1 (0xb5ad6000)
libspeex.so.1 => /usr/lib/i386-linux-gnu/sse2/libspeex.so.1 (0xb5ab4000)
libschroedinger-1.0.so.0 => /usr/lib/i386-linux-gnu/libschroedinger-1.0.so.0 (0xb59e4000)
libgsm.so.1 => /usr/lib/i386-linux-gnu/libgsm.so.1 (0xb59d3000)
libva.so.1 => /usr/lib/i386-linux-gnu/libva.so.1 (0xb59bc000)
libidn.so.11 => /usr/lib/i386-linux-gnu/libidn.so.11 (0xb5989000)
liblber-2.4.so.2 => /usr/lib/i386-linux-gnu/liblber-2.4.so.2 (0xb5979000)
libldap_r-2.4.so.2 => /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2 (0xb5928000)
libgssapi_krb5.so.2 => /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2 (0xb58eb000)
libgcrypt.so.11 => /lib/i386-linux-gnu/libgcrypt.so.11 (0xb5867000)
librtmp.so.0 => /usr/lib/i386-linux-gnu/librtmp.so.0 (0xb584c000)
libjson.so.0 => /usr/lib/i386-linux-gnu/libjson.so.0 (0xb5841000)
libpulsecommon-2.1.so => /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-2.1.so (0xb57dd000)
libtasn1.so.3 => /usr/lib/i386-linux-gnu/libtasn1.so.3 (0xb57cb000)
libp11-kit.so.0 => /usr/lib/i386-linux-gnu/libp11-kit.so.0 (0xb57b7000)
liborc-0.4.so.0 => /usr/lib/i386-linux-gnu/liborc-0.4.so.0 (0xb5727000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb5710000)
libsasl2.so.2 => /usr/lib/i386-linux-gnu/libsasl2.so.2 (0xb56f5000)
libgssapi.so.3 => /usr/lib/i386-linux-gnu/libgssapi.so.3 (0xb56b9000)
libkrb5.so.3 => /usr/lib/i386-linux-gnu/libkrb5.so.3 (0xb55eb000)
libk5crypto.so.3 => /usr/lib/i386-linux-gnu/libk5crypto.so.3 (0xb55c2000)
libcom_err.so.2 => /lib/i386-linux-gnu/libcom_err.so.2 (0xb55bd000)
libkrb5support.so.0 => /usr/lib/i386-linux-gnu/libkrb5support.so.0 (0xb55b4000)
libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xb55af000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb558d000)
libwrap.so.0 => /lib/i386-linux-gnu/libwrap.so.0 (0xb5582000)
libasyncns.so.0 => /usr/lib/i386-linux-gnu/libasyncns.so.0 (0xb557b000)
libheimntlm.so.0 => /usr/lib/i386-linux-gnu/libheimntlm.so.0 (0xb5573000)
libkrb5.so.26 => /usr/lib/i386-linux-gnu/libkrb5.so.26 (0xb54f2000)
libasn1.so.8 => /usr/lib/i386-linux-gnu/libasn1.so.8 (0xb5453000)
libhcrypto.so.4 => /usr/lib/i386-linux-gnu/libhcrypto.so.4 (0xb541e000)
libroken.so.18 => /usr/lib/i386-linux-gnu/libroken.so.18 (0xb5409000)
libkeyutils.so.1 => /lib/i386-linux-gnu/libkeyutils.so.1 (0xb5405000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb5401000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb53fa000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xb53df000)
libwind.so.0 => /usr/lib/i386-linux-gnu/libwind.so.0 (0xb53b6000)
libheimbase.so.1 => /usr/lib/i386-linux-gnu/libheimbase.so.1 (0xb53a7000)
libhx509.so.5 => /usr/lib/i386-linux-gnu/libhx509.so.5 (0xb5362000)
libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0xb52b4000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xb5282000)






<資料2>

MPD-016.5 debianパッケージの概要とライブラリ表示

概要:

mpd (MPD: Music Player Daemon) 0.16.5

Copyright (C) 2003-2007 Warren Dukes <warren.dukes@gmail.com>
Copyright (C) 2008-2010 Max Kellermann <max@duempel.org>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Supported decoders:

[mad] mp3 mp2
[vorbis] ogg oga
[oggflac] ogg oga
[flac] flac
[audiofile] wav au aiff aif
[faad] aac
[mpcdec] mpc
[wavpack] wv
[mikmod] amf dsm far gdm imf it med mod mtm s3m stm stx ult uni xm
[ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav wma wmv wsaud wsvga wv wve

Supported outputs:

shout null fifo pipe alsa ao oss pulse jack httpd recorder

Supported encoders:

null vorbis lame wave flac

Supported protocols:

file:// http:// mms:// mmsh:// mmst:// mmsu:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://


ライブラリの表示:

linux-gate.so.1 =>  (0xb77df000)
libfaad.so.2 => /usr/lib/i386-linux-gnu/libfaad.so.2 (0xb7785000)
libmpcdec.so.6 => /usr/lib/libmpcdec.so.6 (0xb7775000)
libavahi-common.so.3 => /usr/lib/i386-linux-gnu/libavahi-common.so.3 (0xb7766000)
libavahi-client.so.3 => /usr/lib/i386-linux-gnu/libavahi-client.so.3 (0xb7754000)
libavahi-glib.so.1 => /usr/lib/i386-linux-gnu/libavahi-glib.so.1 (0xb774f000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb7654000)
libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0xb75a6000)
libcurl-gnutls.so.4 => /usr/lib/i386-linux-gnu/libcurl-gnutls.so.4 (0xb7547000)
libavformat.so.53 => /usr/lib/i386-linux-gnu/i686/cmov/libavformat.so.53 (0xb7423000)
libavcodec.so.53 => /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.53 (0xb675b000)
libavutil.so.51 => /usr/lib/i386-linux-gnu/i686/cmov/libavutil.so.51 (0xb6738000)
libmms.so.0 => /usr/lib/i386-linux-gnu/libmms.so.0 (0xb6727000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb66fa000)
libid3tag.so.0 => /usr/lib/libid3tag.so.0 (0xb66e6000)
libvorbisfile.so.3 => /usr/lib/i386-linux-gnu/libvorbisfile.so.3 (0xb66dc000)
libvorbis.so.0 => /usr/lib/i386-linux-gnu/libvorbis.so.0 (0xb66b0000)
libogg.so.0 => /usr/lib/i386-linux-gnu/libogg.so.0 (0xb66a8000)
libFLAC.so.8 => /usr/lib/i386-linux-gnu/libFLAC.so.8 (0xb6657000)
libaudiofile.so.1 => /usr/lib/i386-linux-gnu/libaudiofile.so.1 (0xb662a000)
libmikmod.so.2 => /usr/lib/i386-linux-gnu/libmikmod.so.2 (0xb65dc000)
libwavpack.so.1 => /usr/lib/i386-linux-gnu/libwavpack.so.1 (0xb65b1000)
libmad.so.0 => /usr/lib/i386-linux-gnu/libmad.so.0 (0xb6599000)
libmp3lame.so.0 => /usr/lib/i386-linux-gnu/libmp3lame.so.0 (0xb6514000)
libvorbisenc.so.2 => /usr/lib/i386-linux-gnu/libvorbisenc.so.2 (0xb639c000)
libao.so.4 => /usr/lib/i386-linux-gnu/libao.so.4 (0xb6393000)
libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 (0xb62a1000)
libjack.so.0 => /usr/lib/i386-linux-gnu/libjack.so.0 (0xb6250000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6234000)
libpulse.so.0 => /usr/lib/i386-linux-gnu/libpulse.so.0 (0xb61e6000)
libshout.so.3 => /usr/lib/i386-linux-gnu/libshout.so.3 (0xb61d4000)
libsamplerate.so.0 => /usr/lib/i386-linux-gnu/libsamplerate.so.0 (0xb6068000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb6065000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6046000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb5e9c000)
libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xb5e52000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5e4d000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb5e0d000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb5e03000)
libidn.so.11 => /usr/lib/i386-linux-gnu/libidn.so.11 (0xb5dd0000)
liblber-2.4.so.2 => /usr/lib/i386-linux-gnu/liblber-2.4.so.2 (0xb5dc1000)
libldap_r-2.4.so.2 => /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2 (0xb5d70000)
libgssapi_krb5.so.2 => /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2 (0xb5d33000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb5d19000)
libgnutls.so.26 => /usr/lib/i386-linux-gnu/libgnutls.so.26 (0xb5c55000)
libgcrypt.so.11 => /lib/i386-linux-gnu/libgcrypt.so.11 (0xb5bd1000)
librtmp.so.0 => /usr/lib/i386-linux-gnu/librtmp.so.0 (0xb5bb6000)
libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xb5ba5000)
libvpx.so.1 => /usr/lib/i386-linux-gnu/libvpx.so.1 (0xb5afe000)
libtheoraenc.so.1 => /usr/lib/i386-linux-gnu/libtheoraenc.so.1 (0xb5ab7000)
libtheoradec.so.1 => /usr/lib/i386-linux-gnu/libtheoradec.so.1 (0xb5a9a000)
libspeex.so.1 => /usr/lib/i386-linux-gnu/sse2/libspeex.so.1 (0xb5a79000)
libschroedinger-1.0.so.0 => /usr/lib/i386-linux-gnu/libschroedinger-1.0.so.0 (0xb59a9000)
libgsm.so.1 => /usr/lib/i386-linux-gnu/libgsm.so.1 (0xb5997000)
libva.so.1 => /usr/lib/i386-linux-gnu/libva.so.1 (0xb5980000)
/lib/ld-linux.so.2 (0xb77e0000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb5897000)
libjson.so.0 => /usr/lib/i386-linux-gnu/libjson.so.0 (0xb588d000)
libpulsecommon-2.1.so => /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-2.1.so (0xb5828000)
libtheora.so.0 => /usr/lib/i386-linux-gnu/libtheora.so.0 (0xb57d1000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb57ba000)
libsasl2.so.2 => /usr/lib/i386-linux-gnu/libsasl2.so.2 (0xb579f000)
libgssapi.so.3 => /usr/lib/i386-linux-gnu/libgssapi.so.3 (0xb5763000)
libkrb5.so.3 => /usr/lib/i386-linux-gnu/libkrb5.so.3 (0xb5694000)
libk5crypto.so.3 => /usr/lib/i386-linux-gnu/libk5crypto.so.3 (0xb566c000)
libcom_err.so.2 => /lib/i386-linux-gnu/libcom_err.so.2 (0xb5667000)
libkrb5support.so.0 => /usr/lib/i386-linux-gnu/libkrb5support.so.0 (0xb565e000)
libtasn1.so.3 => /usr/lib/i386-linux-gnu/libtasn1.so.3 (0xb564c000)
libp11-kit.so.0 => /usr/lib/i386-linux-gnu/libp11-kit.so.0 (0xb5637000)
libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xb5632000)
liborc-0.4.so.0 => /usr/lib/i386-linux-gnu/liborc-0.4.so.0 (0xb55a3000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb5581000)
libwrap.so.0 => /lib/i386-linux-gnu/libwrap.so.0 (0xb5577000)
libsndfile.so.1 => /usr/lib/i386-linux-gnu/libsndfile.so.1 (0xb5502000)
libasyncns.so.0 => /usr/lib/i386-linux-gnu/libasyncns.so.0 (0xb54fb000)
libheimntlm.so.0 => /usr/lib/i386-linux-gnu/libheimntlm.so.0 (0xb54f3000)
libkrb5.so.26 => /usr/lib/i386-linux-gnu/libkrb5.so.26 (0xb5472000)
libasn1.so.8 => /usr/lib/i386-linux-gnu/libasn1.so.8 (0xb53d3000)
libhcrypto.so.4 => /usr/lib/i386-linux-gnu/libhcrypto.so.4 (0xb539e000)
libroken.so.18 => /usr/lib/i386-linux-gnu/libroken.so.18 (0xb5389000)
libkeyutils.so.1 => /lib/i386-linux-gnu/libkeyutils.so.1 (0xb5385000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb5381000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb537a000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xb535f000)
libwind.so.0 => /usr/lib/i386-linux-gnu/libwind.so.0 (0xb5336000)
libheimbase.so.1 => /usr/lib/i386-linux-gnu/libheimbase.so.1 (0xb5327000)
libhx509.so.5 => /usr/lib/i386-linux-gnu/libhx509.so.5 (0xb52e2000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xb52b1000)

2012年11月14日水曜日

音楽データの管理 その2




音楽データの管理 バージョン2





ubuntu studioで遊んでいるうちに逆上してWindowsで作った音楽ライブラリを初期化しました!
またゼロからリッピングし直しです。



前回はパイオニアの外付けドライブがあまりに結果がいいのでそれまでのデータを消去。
それからCD数百枚はHDDにストックしたのですが、今回またスッキリさせてしまいました。


音楽ファイルの管理は最初が肝心、というわけでディレクトリ構成を見直してみました。


今回のコンセプト:
1.多くのプレイヤーで標準になっている artist/album/song の形式に従う。
2.上記の形式が困難なクラシック音楽その他については親ディレクトリを別にしておく。



<構成>
親ディレクトリ1: クラシック音楽を保管
親ディレクトリ2: ロックやジャズなどアルバム形式のものを保管
親ディレクトリ3: ダウンロードしたファイルなどアルバム形式ではないものを保管



<親ディレクトリ1>
第2階層は基本的にジャンル名に設定。
「1年中バッハばかり聴く」「フルトヴェングラーを聴かないと出勤できない」など、好みに合わせてよく聴く作曲家やアーティストも第2階層に設けておく。
最終的には /artist/album/song/ になるようにする。

Ongaku1--
     |
     Baroque
     |
     Bach
     |
     Bruno Walter
     |
     Classic
     |
     Mozart--
         |
         Symphony
         |
         Opera
         |
         Concerto--
              |
              Piano Concerto
              |
              Violin Concerto--
                      |
                      Violin Concert no.3--
                                |
                                artist--
                                   |
                                   album--
                                       |
                                       song-file



<親ディレクトリ2>
クラシック音楽以外でアルバム形式のものを /artist/album/song/ で保管する。

Ongaku2--
      |
     artist--
        |
        album--
            |
            song-file



<親ディレクトリ3>
アルバム形式ではないファイルの置き場所。

Ongaku3--
     |
     artist--
        |
        song-file



現在使っているファイル名

[track] [title] - [artist] [[composer]]
     ↓
03 Symphony no.7 - Klemperer [Mahler].wav




クラシック音楽のディレクトリが深すぎるような気がしますが、ゴチャゴチャの中から検索するのは好みではないので仕方がない。

しばらくこれでいってみよう。

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/ 

        2012年11月11日日曜日

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




        ゴミのようなメモ その2





        不具合

        CDからリッピングした特定のファイルがMPDで再生できない。


        前回の記事の時点ではトラックに埋め込まれたプリギャップが原因か、と考えました。

        リッピングソフトはEACとCE Rripperを使っています。
        試してみた結果、再生できないトラックが生じるのはCD Ripperでリッピングしたデータでした。

        CD Ripperで作成したものでもアルバムを全曲再生できるものがあり、なかなか原因がわかりません。

        CD Ripperにはギャップについては特に設定がなく、1曲目(0曲目?)の隠しトラックを検出する/しない、くらいです。


        と、ここで閃きました。

        私は音楽データをwavファイルに抽出していますが、CD Ripperはデフォルトでwavファイルでもタグを付ける仕様になっています。

        試しにタグを作らない設定にしてみると...見事にどれもMPDで再生することができました!

        でもこれではせっかくの便利なタグ機能を捨てなくてはいけないので、付加するタグの項目をあれこれ変更して実験をしてみました。

        (同じCDを10回ほどリップしました...疲れた)

        アルバム全曲が再生可能になるセッティングがありましたが、他のCDで通用するとは限りません。

        もしかするとCDに合わない項目、例えばロックバンドのCDに対して「指揮者」というタグを付けるとダメなのでは?と考えました。

        でも項目を「アルバムアーティスト」「アルバムジャケット」だけにしても再生できないファイルがありましたのでお手上げです。

        OSはubuntu studio 12.10です。
        MPDは自分でビルドした0.17とdebパッケージの0.16.5で同じ症状でした。
        また、OSも何度かクリーンインストールして試しました。





        結論

        CD Ripperでリッピングしたタグ付きwavファイルの中にはMDPで再生できないものがある。

        原因はいろいろな要素があるので不明。





        むむむ、今後どうやってリッピングしようか。

        やっぱり wav + tag は邪道なのかなぁ...


        追記 2012/11/14

         なぜかタグの項目 # catalog のチェックを外す、チェックを入れるの動作をしたところすべてのファイルが再生可能になりました。

         わけがわかりませんが、これまでリッピングしたデータの半分はMPDでは聴けないので削除しました…

        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/

        2012年11月2日金曜日

        alsaplayer 日本語マニュアル







        alsaplayer ver.0.99.80 (deb)でman aplayして表示されるマニュアルを抄訳してみました。


        (当方の環境はUbuntu Studio 12.10です)






        -------------------------------------------------------------------------------------
          alsaplayer マニュアル
        -------------------------------------------------------------------------------------


        名称
        alsaplayer - plays various sound files

        シノプシス
        alsaplayer [options] [ filename ...]

        説明
        このマニュアルはalsaplayerのコマンドを簡潔にまとめたものです。オリジナルのプログラムにはマニュアルがありません。本ページはDebian  GNU/Linux向けです。

        alsaplayerは様々なフォーマットのファイルを再生することができる汎用性の高い音楽プレイヤーです。

        コマンドラインで指定されたファイルを再生します。指定のない場合は前回終了時のプレイリストを再生します。




        FILENAME
        指定されたファイル(複数も可)を再生します。音楽ファイルやURLなど。

        CD.cdda
        CDを再生するためのファイル名です。デフォルトでは/dev/cdromを使用します。
        また、configファイルで指定されたデバイスを使用します(~/.alsaplayer/config)




        OPTIONS:
        オプション設定:
        ダッシュ2つで始まるロングオプションを含めて、一般的なGNUコマンドラインシンタックスで記述します。

        -c, --config <file>
        設定されているconfigファイルを利用します。

        -h, --help
        このヘルプを出力します。

        -i, --interface <interface>
        デフォルトではなく指定されたインターフェイスを使います。

        -I, --script <file>
        インターフェイスのプラグインに渡すスクリプトを指定します。

        -l, --startvolume <vol>
        指定された音量でスタートします[デフォルト=1.0]

        -p, --path <path>
        alsaplayerが参照するアドオンのパスを設定します。

        -q, --quiet
        端末に出力せずに動作します。

        -s, --session-name name
        現在のセッションに名前 "name" をつけます。

        -v, --version
        バージョンを表示します。

        --verbose
        メッセージ出力を詳細にします。

        --nosave
        終了するときにプレイリストを保存しない。




        Player control:
        プレイヤーのコントロール:

        -n, --session #
        セッション # を選択します [デフォルト=0]

        -e, --enqueue file(s)
        動作中のalsaplayerにファイルをエンキューします。

        -E, --replace file(s)
        動作中のalsaplayerのプレイリストをクリアしてファイルをキューします。

        --status
        セッションやトラックの情報を表示します。

        --volume #
        ソフトウェアボリュームを設定します [0.0-1.0]。

        --start
        再生スタート

        --stop Stop playing.
        再生ストップ

        --pause
        一時停止/再生

        --prev Jump to the previous track.
        ひとつ前のトラックを再生します。

        --next Jump to the next track.
        次のトラックを再生します。

        --seek <second>
        再生中のトラックの指定された秒にジャンプします。

        --relative <second>
        現在のポジションから <secondo> 秒ジャンプします。

        --speed #
        再生スピードを設定します。1.0 = ノーマルスピード、-1.0 = ノーマルスピード逆再生

        --jump #
        プレイリスト内の指定されたトラックにジャンプします。

        --clear
        プレイリストを削除します。

        --quit Quit the session.
        セッションを終了します。




        Sound driver options:
        サウンドドライバのオプション:

        -d, --device string
        デバイスのための出力プラグインを選択します。
        ALSA pluginのデフォルト = "default"
        JACK pluginのデフォルト = "alsa_pcm:playback_1,alsa_pcm:playback_2"

        -f, --fragsize #
        フラグメントサイズをバイト単位で指定します。[デフォルト=4096]

        -F, --frequency #
        出力のサンプリング周波数を設定します。[デフォルト=44100]

        -g, --fragcount #
        フラグメントカウント。[デフォルト8]

        -r, --realtime
        リアルタイムスケジューリングを利用可能にします。一般ユーザーとして使うためにはalsaplayerをSUID属性にする必要があります。

        -o, --output [alsa|esound|jack|nas|null|oss|sgi|sparc]
        出力ドライバを指定します。




        Experimental options:
        試験的なオプション:

        -S,--loopsong
        ファイルをループします。

        -P,--looplist
        プレイリストをループします。

        -x,--crossfade
        プレイリストの冒頭をクロスフェードします。


        JACK OUTPUT PLUGIN
        Jack出力プラグイン

        JACKを使ってベストの結果を得るためには -F <sample_rate> が必要です。
        サンプルレートの値はjackdで使われているものと同じにしてください。
        -F のパラメータを付け忘れると再生音がとても悪くなる可能性があります。
        この状態を修復する唯一の方法はjackdとAlsaPlayerを再起動させることです。


        DAEMON INTERFACE
        デーモン・インターフェース

        デーモン・インターフェースを使うには -s option が必要です。
        音を出すために2つのステップを進めてください。

        1.デーモンを立ち上げる
        alsaplayer -i daemon -s <name>
        2.曲を追加する
        alsaplayer -e <some.song>


        GTK INTERFACE
        GTKインターフェース

        gtkインターフェースでは基本操作のショートカットを利用することができます。

        v      Stop

        x      Play

        c      Pause

        b      Next Song

        z      Previous Song

        g      Seek Forward

        a      Seek Backward

        f      Forward Play

        s      Reverse Play

        t      半音までスピードアップします(再生された曲のキーを変えるときに便利です)。

        q      半音までスピードダウンします。

        h      1コンマ分スピードアップします(聴きながら演奏しているときに、ギターの代わりに曲をチュー
          ニングするのに便利です)。

        i      1コンマ分スピードダウンします。

        r      Volume Up

        w      Volume Down

        l      Loop




        PREFERENCES
        設定

        AlsaPlayerの設定ファイルは in ~/.alsaplayer/config です。
        プログラムを閉じてからファイルを編集してください。
        デフォルト値は下記のように割り当てられています。


        General settings
        一般設定

        main.default_interface=gtk2
        デフォルトのインターフェースを指定。

        main.default_output=alsa
        デフォルトのサウンドサーバーを指定。

        main.multiopen=true
        AlsaPlayerの同時起動を許可するかどうかを指定します。

        main.period_count=8
        サウンドバッファのピリオドの数。

        main.period_size=4096
        サウンドバッファのピリオドごとのフレーム。


        Output settings
        出力設定

        jack.output1=alsa_pcm:playback_1
        JACKサウンドサーバーを使う時のOutput device 1

        jack.output2=alsa_pcm:playback_2
        JACKサウンドサーバーを使う時のOutput device 2


        Input settings
        入力設定

        cdda.cddb_servername=freedb.freedb.org
        cddaインプットモジュールがcddb情報を取得するために利用するサーバー。

        cdda.cddb_serverport=80
        cddaインプットモジュールがcddb情報を取得するために利用するポート。

        cdda.device=/dev/cdrom
        cddaインプットモジュールがCDを読み取るデバイス。

        cdda.do_cddb_lookup=true
        cdda情報を読み取る/読み取らない。

        http.buffer_size=1048576
        ファイルネームがURLである場合の入力バッファのサイズ

        mad.parse_id3=true
        Id3タグを解析する/しない。




        GTK interface settings
        GTKインターフェースの設定

        gtk_interface.default_play_path=~/
        ファイル追加機能で使うデフォルトのパス。

        gtk_interface.default_playlist_add_path=/
        プレイリストでのファイル追加機能で使うデフォルトのパス。

        gtk_interface.default_playlist_load_path=/
        プレイリストのロード用に使うデフォルトのパス。

        gtk_interface.default_playlist_save_path=/
        プレイリストの保存用に使われるデフォルトのパス。

        gtk_interface.playlist_active=false
        起動時にプレイリストウィンドウを開く/開かない。

        gtk_interface.sopeswindow_active=false
        起動時にscopeセレクターウィンドウを開く/開かない。

        gtk_interface.smooth_transition=false
        一時停止をするようなときにsmooth speed transitionを使う/使わない。




        GTK2 interface settings
        GTK2インターフェースの設定

        GTKインターフェースのオプションとまったく同じです。"gtk"の代わりに"gtk2_"を接頭にしています。




        XOSD interface settings
        XOSDインターフェースの設定

        xosd_interface.color=#55ff55
        XOSDインターフェースのカラーを指定。

        xosd_interface.font=-adobe-helvetica-medium-r-normal-*-24-*-*-*-*-*-*-*
        XOSDインターフェースのフォントを指定。

        xosd_interface.h_offset=20
        スクリーン左からの水平オフセット。

        xosd_interface.timeout=5
        xosdを表示する時間。

        xosd_interface.v_offset=20
        スクリーン上部からの垂直オフセット。




        Scopes settings
        scopeの設定

        blurscope.active=false
        起動時にblurscopeを表示する/しない。

        fftscope.active=false
        起動時にfftscopeを表示する/しない。

        levelmeter.active=false
        起動時にlevelmeterを表示する/しない。

        logbarfft.active=false
        起動時にlogbarを表示する/しない。

        opengl_spectrum.active=false
        起動時にspectrumglを表示する/しない。

        opengl_spectrum.height=480
        spectrumglの高さを指定。

        opengl_spectrum.width=640
        spectrumglの幅を指定。

        spacescope.active=false
        起動時にspacescopeを表示する/しない。

        synaescope.active=false
        起動時にsynaescopeを表示する/しない。




        SEE ALSO
        mikmod(1), mpg123(1).

        AUTHOR
               This manual page was written by Ivo  Timmermans  <ivo@debian.org>,  for
               the  Debian  GNU/Linux  system  (but may be used by others).  FILENAME,
               GTK, DAEMON INTERFACE  and  PREFERENCES  sections  added  by  Dominique
               Michel <dominique_libre@sourceforge.net> from the Alsaplayer team.




                                       8 September 2007                  ALSAPLAYER(1)

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