« BeagleBone Black で USB Camera | トップページ | Syntax Highlighter の導入 »

2013.10.20

BeagleBone Black でインターネットラジオ

BBB + Ubuntu 13.04 8/24版 + Wi-Fi USB アダプタの環境に、秋月の USB DAC を繋げて、インターネットラジオにしてみた。

秋月の USB DAC は PCM2704 で、年末に遊んでいた LUXMAN LXU-OT2 と同じなので、比較してみようかと思ってこれにした。
Windows でドライバが要らない USB DAC ならどれでもいいと思う。

アンプは、aitendo の 低電圧パワーアンプキット[AKIT-34119] を使ってみた。
低電圧で動きそうだったので。
どうせ BBB から 5V 取るので、なんでもいいんだけど。

USB DAC を挿して起動すると、

ubuntu@arm:~$ cat /proc/asound/cards 
0 [Black          ]: TI_BeagleBone_B - TI BeagleBone Black 
                      TI BeagleBone Black 
1 [DAC            ]: USB-Audio - USB Audio DAC 
                      Burr-Brown from TI USB Audio DAC at usb-musb-hdrc.1.auto-1.3, full speed

と、DAC という名前で認識された。

mplayer が有名っぽいので、

sudo apt-get install mplayer

としてインストールして、

mplayer -ao alsa:device=sysdefault=DAC -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=106750

みたいに起動すれば、ストリーミング再生された。
すごい簡単!

DAC の部分は、cat /proc/asound/cards で確認した名前にする。
Black にすると、HDMI 側に出力される。
LUXMAN LXU-OT2 の場合は LXUOT2 を指定する。
URL の部分は、SHOUTcast で、再生ボタンで右クリックしてショートカットをコピーして、それを使った。

Wi-Fi 接続だから、USB 1本挿すだけで動くので、お手軽。
でも、USB の bus power だけだと、ちょっと音を大きくしたとたんに、USB DAC の電力が不足して死ぬ。。
自動でログイン&再生するようにすれば、AC Adapter 1本で動かせるけど、自動ログインする方法がわからず。。
→/etc/init で自動起動できて、AC Adapter 1本で起動できた。↓の追記2のところ。

追記:
SHOUTcast 以外で、日本のラジオ局も探してみた。
ねとらじのも play ボタンを右クリックしてリンクをコピーすれば再生できた。 -playlist は付けずに、直接指定する。

mplayer -ao alsa:device=sysdefault=DAC http://std1.ladio.net:8080/namage

こんな感じ。
あと、NHK も「らじる★らじる」というのをやってて、以下で聴けた。

ラジオ第一

mplayer -ao alsa:device=sysdefault=DAC -playlist http://mfile.akamai.com/129931/live/reflector:46032.asx

ラジオ第二

mplayer -ao alsa:device=sysdefault=DAC -playlist http://mfile.akamai.com/129932/live/reflector:46056.asx

NHK-FM

mplayer -ao alsa:device=sysdefault=DAC -playlist http://mfile.akamai.com/129933/live/reflector:46051.asx

あと、バックグラウンドで動作させるには、& を付けるだけじゃダメで、 < /dev/null > /dev/null 2>&1 & を付ける必要があった。

mplayer -ao alsa:device=sysdefault=DAC -playlist http://mfile.akamai.com/129931/live/reflector:46032.asx < /dev/null > /dev/null 2>&1 &

こんな感じ。

追記2:
別に自動ログインしなくても、wlan0 経由で ssh でログインすればいいから、AC Adapter のみで起動出来た。
最大音量にしても USB DAC は落ちなくなったが、ブチブチとノイズが入ってちょっと聴きづらい感じ。LXU-OT2 に変えてもノイズは入るので原因がよくわからず。。元々のデータにノイズが入ってる?? →直った。下↓の追記3。
あと、/etc/init/mplayer.conf とかに

start on net-device-up IFACE=wlan0 
chdir /home/ubuntu 
exec mplayer -ao alsa:device=sysdefault=DAC -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=170421 < /dev/null > /dev/null 2>&1 &

みたいなのを書いておけば、wlan0 が up した時に、mplayer を自動起動してくれるようになった。
これで、AC Adapter 挿すだけで、再生してくれるので、とりあえず、固定局なインターネットラジオとして使える。
いろんなサイトに書かれてる start on runlevel [2345] とかすると、3回ぐらい起動されてエコーがかかる感じで再生されて、ダメだった^^;;

追記3:
ブチブチノイズが入るのは、44100Hz→48000Hz へのサンプリング周波数の変換が入るからだった。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663239
バグレポート上がってるけど、ALSA dmix の仕様でどれかのサンプリング周波数に統一されるみたいで、バグではなさそう。
なので、ALSA dmix の設定を探してみたら、
/usr/share/alsa/alsa.conf に

defaults.pcm.dmix.rate 48000

という設定があった。
ので、これを 44100 にすれば、44100Hz のラジオ局ではノイズは入らなくなった。
けど、48000Hz の局ではノイズが入るのだと思われる。まだ試してない。

|

« BeagleBone Black で USB Camera | トップページ | Syntax Highlighter の導入 »

Beaglebone Black」カテゴリの記事

「H/W」カテゴリの記事

「パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/20208/58421269

この記事へのトラックバック一覧です: BeagleBone Black でインターネットラジオ:

« BeagleBone Black で USB Camera | トップページ | Syntax Highlighter の導入 »