スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Raspberry Pi をジュークボックスに(その1)

音楽再生用にSDメモリカード・トランスポートを作って結構月日がたった。作成当初はSDメモリカードの値段が安くなってきていたこともあり、CD感覚で入れ替えればいいや的に思っていたが、何かと不便になってきていた。ぶっちゃけるとSDメモリカードの入れ替えがめんどくさいのと、どのSDメモリカードにどの曲を入れたか忘れちゃうんですね。

PCで再生すれば入れ替え作業がなくなり良い感じになりそうな気もするのですが、音楽を聞くためにPCを起ち上げないといけないという煩わしさがネックとなるのです。それと、PCを使う場所が複数ある(ノートPCを使っているので)、というのもあります。

ふとした時、2つ買ってしまっていた Raspberry Pi の1つを何かに有効活用出来ないかとググっていると、いくつかの記事で「MPDで音楽再生」という内容が書かれていました。「MPD」って何だ? と思ったが「Music Player Daemon」のことで、ようは音楽プレーヤ(サーバ)なのです。「Daemon」なので実際に使う時はフロントエンドとなる「client」ソフトが必要となります。client側はネット経由でも操作できるので、スマートフォンからも操作できたりするみたいです(MPDriud, DroidMPD…等)。

MPDriud と DroidMPD (クリックでそれぞれのHPへ飛びます)

Screenshot_2013-06-24-20-15-46.png  Screenshot_2013-06-24-20-14-34.png

今更気がついのだけれども、巷で流行っている「Voyage Linux」の根幹は結局 MPD なのです。音楽再生に不要な要素を極力なくしたLinuxディストリビューションって事なんですね~。

Raspberry Pi で実現するには、USB-DAC、USB-HDD(NASでも可)があれば良く、clientはスマートフォンを使う事で簡素化するという構成でいけそうと判断しました。USB-DACはちょうど持て余し気味だった「トランス式USB-DAC」があります。USB-HDDは持ってないので購入する事にしました。欲張って2TBのHDD(HD-LBF2.0TU2)をポチりましたが、もっと減らせば一式丸々新規購入したとしても手頃な値段でそろえられます。

3点セットです。
構成としてはこれだけです。もちろん、電源とケーブル類はいりますが。

RIMG0472.jpg

Raspberry Pi には 公式ページからRaspbian(2013-05-25-wheezy-raspbian.zip)を取ってきてSDメモリカード(4GB)へ書き込みました。最低限の設定をしておきます。GUI何て眼中にないのでSSHから入って設定しています。

// アップグレード
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo raspi-config

// ユーザ追加
$ sudo adduser jujurou
$ sudo visudo
jujurou ALL=(ALL) NOPASSWD:ALL

// 初期ユーザ(pi)の停止
$ sudo userdel -r pi

// NTP設定
$ sudo vi /etc/ntp.conf
$ sudo /etc/init.d/ntpd restart

// ホスト名の変更
$ sudo vi /etc/hostname
$ sudo vi /etc/hosts

次に、USB-DAC(PCM2704)を認識させます。
先ずは何も繋いでいない現状を確認。

$ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.

$ lsmod
Module Size Used by
snd_bcm2835 16304 0
snd_pcm 77560 1 snd_bcm2835
snd_seq 53329 0
snd_timer 19998 2 snd_pcm,snd_seq
snd_seq_device 6438 1 snd_seq
snd 58447 5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc 5145 1 snd_pcm
leds_gpio 2235 0
led_class 3562 1 leds_gpio

$ aplay -l
aplay: device_list:252: no soundcards found...

$ cat /proc/asound/cards
0 [ALSA ]: BRCM bcm2835 ALSbcm2835 ALSA - bcm2835 ALSA
bcm2835 ALSA

一度電源を落としてUSB-DAC(PCM2704)を繋いで電源ONしました(無線LANのドングルを電源を落とさずに刺すと Raspberry Pi 自体がリセットされるというのに遭遇してからホットプラグを充てにしてません)。

$ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 08bb:2704 Texas Instruments Japan

$ lsmod
Module Size Used by
snd_bcm2835 16304 0
snd_usb_audio 104097 0
snd_pcm 77560 2 snd_bcm2835,snd_usb_audio
snd_page_alloc 5145 1 snd_pcm
snd_hwdep 5929 1 snd_usb_audio
snd_usbmidi_lib 18067 1 snd_usb_audio
snd_seq_midi 4591 0
snd_seq_midi_event 6544 1 snd_seq_midi
snd_rawmidi 21160 2 snd_usbmidi_lib,snd_seq_midi
snd_seq 53329 2 snd_seq_midi_event,snd_seq_midi
snd_timer 19998 2 snd_pcm,snd_seq
snd_seq_device 6438 3 snd_seq,snd_rawmidi,snd_seq_midi
snd 58447 9 snd_bcm2835,snd_usb_audio,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_usbmidi_lib,snd_seq_device
evdev 9426 1
leds_gpio 2235 0
led_class 3562 1 leds_gpio

$ aplay -l
aplay: device_list:252: no soundcards found...

$ cat /proc/asound/cards
0 [ALSA ]: BRCM bcm2835 ALSbcm2835 ALSA - bcm2835 ALSA
bcm2835 ALSA
1 [DAC ]: USB-Audio - USB Audio DAC
Burr-Brown from TI USB Audio DAC at usb-bcm2708_usb-1.2, full speed

何か、自動で認識して色々と起動してくれたみたいです。サウンドカード(?)としては1番が割り振られたみたいです。ただ、今まで Raspberry Pi にはSSHからしか繋いだことがなく、音出し確認の方法が分かりません。どうせMPDで再生する事になるのだし、わざわざ他のソフトで試してあげくにそれが原因で何かが起こるってのも嫌だったので、この段階での音出し確認はパスする事にしました。

$sudo apt-get install mpd mpc

[....] Starting Music Player Daemon: mpdlisten: bind to '[::1]:6600' failed: Failed to create socket: Address family not supported by protocol (continuing anyway, because binding to '127.0.0.1:6600' succeeded)
Failed to load database: Failed to open database file "/var/lib/mpd/tag_cache": No such file or directory
. ok

MPDをインストールすると自動的にサーバを起動するみたいなのだが、何かさりげなく、ほんとさりげなく上記メッセージを吐いてくれました。それも、最終的には"ok"と表示されるのがいやらしいです。ま~、何も設定してませんしね。

MPDの設定をしていきます。

$ sudo vi /etc/mpd.conf

// コメントアウト
#bind_to_address "localhost"

// デフォルトの出力はMPDでは使わないのでコメントアウト
#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
#}

// 追加
audio_output {
type "alsa"
name "PCM2704 analog"
device "hw:1,0"
}

// コメントアウトしてあったのを復活させた
auto_update "yes"

audio_output は何個書いてもいいみたいだけど、MPDとして使用する場合はUSB-DAC(アナログ出力)からしか出力させないので、1つ分しか書いてないです。複数書いておくとクライアントソフト側で選択する事ができるので、そういった使い方をする人は使うデバイス全て列挙しておくと良いかもです。

"hw:1,0" の部分は左の数字が /proc/asound/cards にあった数字で、右の数字は…PCM2704の場合、0がアナログ出力、1がSPDIF出力みたいです。

サービス(デーモン)の開始と音出し確認(ようやく)をします。
USB-DACの先にオーディオアンプを繋いで…。

$ sudo service mpd start
$ sudo cp /usr/share/sounds/alsa/Front_Center.wav /var/lib/mpd/music/
$ mpc clear
$ mpc update
$ mpc ls | mpc add
$ mpc play

音声が再生されました。
音がでるとホッとしますね。

MPDはデフォルトで /var/lib/mpd/music 配下にあるファイルを検索するので、そこにテスト用にraspbianに入っている音声データをコピーしてみました。検索先は /etc/mpd.conf で変更が出来ます。

MPDの対応フォーマットは以下のコマンドで調べられます。
WAVとApple Lossless(.m4a)は対応しているみたいです(その他もインパイ)。

$ mpd -V
mpd (MPD: Music Player Daemon) 0.16.7

Copyright (C) 2003-2007 Warren Dukes
Copyright (C) 2008-2010 Max Kellermann
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://

音出しまで出来ましたが、もっと利便性を良するために色々と設定していきます。USB-HDDをまだ繋いでないですしね。
スポンサーサイト

tag : RaspberryPi

tag : MPD

コメントの投稿

非公開コメント

黒ねこ時計 くろック D02
プロフィール

jujurou

Author:jujurou
運営HP:チャコの部屋
Twitter:jujurou

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
最新記事
最新コメント
カテゴリ
ユーザタグ

ぺるけ RaspberryPi Linux トランジスタ式ミニワッター TRminiWatterPart4 MPD OpenOCD イーサネットコンバータ FON2405E DAC buildroot FM3ペリフェラル BeagleBoneBlack FM3評価ボード library OpenGL mingw ODROID-U2 TL-WR700N Edison bitbake KiCad 計測 VMware シングル FM4 ミニワッター 6N6P プリアンプ 

月別アーカイブ
ランキング

FC2 Blog Ranking

カウンター
検索フォーム
リンク
RSSリンクの表示
QRコード
QRコード
ライセンス
クリエイティブ・コモンズ・ライセンス
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。