Raspberry Piをハイレゾ対応ネットワークオーディオっぽくするHiFi DAC PiCobberとRuneAudio

Raspberry Piをハイレゾ対応ネットワークオーディオっぽくするHiFi DAC PiCobberとRuneAudio

タイトル長いですね。オーダーしていたRaspberryPi用DACモジュールがようやく中国から届いたのでRuneAudioと組み合わせてリモコンまで動かしてみました。

HiFi DAC PiCobber

Raspberry PiにはGPIO+I²Sポートに接続するタイプのDACモジュールが多数販売されています。といっても小売店の販売ではなく、国内頒布や海外オーダーで入手する事ができます。

中でも周辺パーツが少なくて済むTIのPCM5102Aは人気。大まかなスペックは

  1. I²Sインターフェイス
  2. 最大サンプリング周波数:384kHz
  3. ビットレート:32bit
  4. ダイナミックレンジ:112dB
  5. 出力デカップリング不要、ポップ音抑制機能

今回選んだGeekroo HiFi DAC PiCobberもこのチップを使用する他、以下のポイントがあります。

  • Raspberry Pi上に直接乗り、ケーブルの引き回しや追加電源が不要
  • いいパーツ使ってるアピール。RCAジャックが直結。
  • IR remote interface (You will receive IR receiver and remote controller for free in the packet)
  • VOLUMIO をサポート。

なおこの手の製品の注意として、I²Sコネクタ用ピンをRaspberry Piに半田付けする必要あり。難しくはないけれど、未経験のひとには壁となるかもしれません。

開封

11月頭にGEEKROOからPayPal支払いでオーダーして届いたのは丸一ヶ月後。決済はすぐ行われたので関税で引っかかってたんでしょうか。

20141211-01いかにも中国から来た感じのビニールテープ巻きの梱包。中を開けるとカンケースと謎のステッカー。他には”Car MP3″と書かれたリモコンがひとつ。

20141211-02

パーツを確認

20141211-03使われているパーツはWebに書いてありました。

VISHAY resister (made in Czech)
ELNA RBP2 capacitor (made in Japan)
WIMA MKS2 capacitor (made in Germany)
ERO KP1830 capacitor (made in Germany)
Nichicon FG series capacitor (made in Japan)

音質に直接影響ありそうなのはフィルタに使われているビシェイとEROくらいでしょうか。上の黒い四角はB0505というチャージポンプ。4.6Vしか出ないラズパイのVccを5Vに昇圧しています。自分好みのWIMAを使っている部分はあまり音に関係はなさそうなのが残念です。ケミコンはオーディオグレードより低ESR品では?と思いつつも自分が釣れた訳だから効果はばつぐんだと言わざるをえない。

出力は金ピカのRCAプラグの他、3.5mmジャックも有り。ただしこれは(Not for your earphones, it’s for audio power amplifiers only!)との事。

オマケっぽいIRモジュールはGPIO18に直結されています。

RuneAudio

VOLUMIOサポートのPiCobberですが、自分はRuneAudioを選びました。

20141211-07これもVolumioと同型のオーディオパッケージ(MPD+フロントエンド)Raspberry Piの他、BeagleBone BlackUDOOをサポートしていて現在のバージョンは0.3-betaです。画面デザインもVolumioに類似していますが、より完成度が高くGUIで設定可能な項目も増えています。DebianベースのVolumioに対し、軽量なArchLinuxをよりオーディオ向けに最適化して使っているそうな。

VOLUMIOでは認識しなかったあまりもの「CG-WLUSB300GNM」も認識。

20141211-04RuneAudioでPiCobberを使う場合、[Setting]メニュー→[I²S kernel modules]から「HiFiBerryDAC」を選択。

20141211-05「MPD」メニュー→[Audio output interface]にて増えた「HiFiBerryDAC-I2S」を選択します。

20141211-06

試聴

Raspberry Pi + PiCobber + RuneAudio + Tripath TA2020の組み合わせで聞いてみました。

音に潰れが無くソースのディテールを聞き取れます。音色に過剰な脚色は無いけれど中域に張りがあって華やか。音の切れ間には確かな静寂があってダイナミックレンジの高さも感じました。コントラストが高い音、とでも言えばいいんでしょうか。小音量やニアフィールドで聞こえがいいです。
ただ音像は少し遠くで鳴っているイメージを受けました。音場の広がりというか臨場感は今ひとつですが、これはTA2020の特色だった気もします。

ともかくPCM2704を使ったiTunes+LUXMAN LXU-OT2 – Google 検索(雑誌付録)と比べたら圧勝の音質である事は確か。

ハイレゾ再生

宇多田ヒカルのRemaster音源(24bit96kHz FLAC)や、24bit192kHz音源、Apple Losslessフォーマットをテストし、みんな綺麗に鳴る事を確認。

当然ですが2.8MHz DSFデータは再生できず。RuneAudio自体はDSDサポートの設定があるのでDACを選べば鳴るのかもしれません。。

赤外線リモコンで操作

オマケっぽく付いてくるIRモジュールとリモコンを使ってRuneAudioを操作できるようにしました。

参考にしたのは発売元のBlogに載っていた下記記事。

DebianのVOLUMIO向けに書いてあるので、デーモンの起動方法などが違います。

SSHにて接続。rootのパスワードはruneです。

1

# pacman -Syu
# pacman -S lirc

Archのパッケージ管理はaptではなくpacmanだそう。最初に全体のアップデートと赤外線を使うモジュールlircのインストール。

2

# vi /etc/lirc/hardware.conf

LIRCD_ARGS="--uinput"
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

上記ファイルを作成

3

# modprobe lirc_rpi gpio_in_pin=18

lirc_devは依存関係で勝手に読み込まれるっぽい?

4

ls /dev/l*

などして、/dev/lirc0ができてる事を確認。このデバイスファイルはlirc_rpiがロードされている間しか表示されません(リブートで消える)。

5

設定ファイルlircd.confを作成します

irrecord -n -d /dev/lirc0 /etc/lirc/lircd.conf

これはRaspberry Pi で赤外線リモコン – 猫ぱーんち!を参考にさせていただきました。名前の入力のところで”pause”,”nextsong”,”prevsong”,”stop”をそれぞれ入力し、リモコンの好きなボタンを押します。

以下中身

begin remote

  name  lircd.conf
  bits           16
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       8938  4527
  one           531  1712
  zero          531   591
  ptrail        522
  repeat       8942  2296
  pre_data_bits   16
  pre_data       0xFF
  gap          107748
  toggle_bit_mask 0x0

      begin codes
          pause                    0xC23D
          nextsong                 0x02FD
          prevsong                 0x22DD
          stop                     0x906F
      end codes

end remote

GEEKROOのやり方だと全然違うファイルが出来るんだが大丈夫か。

6

mpd用の設定ファイルを作成します。

# vi ~/.lircrc

begin
        prog = irexec
        button = pause
        config = mpc toggle
end
begin
        prog = irexec
        button = nextsong
        config = mpc next;mpc play
end
begin
        prog = irexec
        button = prevsong
        config = mpc prev;mpc play
end
begin
        prog = irexec
        button = stop
        config = mpc stop
end

7

# /usr/bin/lircd
# irexec -d

lircdの実行。irexecがリモコンの入力をフックしてmpdに投げてくれる模様。

8

irwコマンドで動作テスト。うまく動けば押したキーに合わせて記録した名前が表示されます。

# /usr/bin/irw

0000000000ff22dd 00 prevsong lircd.conf
0000000000ff22dd 01 prevsong lircd.conf
0000000000ff22dd 02 prevsong lircd.conf
0000000000ff02fd 00 nextsong lircd.conf
0000000000ff02fd 01 nextsong lircd.conf
0000000000ff02fd 02 nextsong lircd.conf
0000000000ff22dd 00 prevsong lircd.conf
0000000000ff22dd 01 prevsong lircd.conf
0000000000ff22dd 02 prevsong lircd.conf
0000000000ff22dd 03 prevsong lircd.conf
0000000000ffc23d 00 pause lircd.conf
0000000000ffc23d 01 pause lircd.conf
0000000000ffc23d 02 pause lircd.conf
0000000000ff02fd 00 nextsong lircd.conf
0000000000ff02fd 01 nextsong lircd.conf
0000000000ff02fd 02 nextsong lircd.conf

Archでは参考になる記事が少なく、結構苦労しました。

残すは

  1. .serviceファイルを書いてsystemctlで自動起動
  2. リモコンでRuneAudio=Raspberry Piのパワーオフ

をやりたいと思いますが師走で立て込んできたのでひとまずここまで。

オーディオカテゴリの最新記事