おそらくコアなオーディオファンからすればRaspberry Piが素晴らしいオーディオプレーヤーとなり得る素質を持っていることをご存知でしょう。

なぜなら、Raspberry Pi内部で音声のデータの通信に使われているI2S信号(Inter-IC Sound)は、オーディオ通信でスタンダードなS/PDIFよりもダイレクトなデータであるから、だそうです。詳しいことは正直筆者にはよくわかっていないのですが、今回使っているSabre Berry+というI2S DACを制作されているサイトの方の書いている解説を読むに、ジッターが悪さをしているようです。(new_western_elecより)

ジッターはオーディオ界隈では諸悪の根源のようです。
DACが動作するには同期クロックを入力する必要があるが、このクロックはS/PDIFによって生成されるようです。
I2S信号ではクロックは別個に生成しているためこのジッターの影響は受けない、ピュアな音楽を奏でるそうです。

そういう訳あって、オーディオ専門WebサイトPhile-webにてラズパイを使った連載がなされるまでになりました。(Phile-web Raspberry Piの記事)

Sabre Berry+とは

上にも書きましたが、new_western_elecさんの制作されているRaspberry Pi用のDAC基盤で、基本的にはラズパイのPIN部分に差し込んで対応OSをインストールし、かんたんな基本設定をGUI上で設定すればI2Sでの音楽再生を愉しめるものとなっています。
購入はSwitch Scienceなどで販売委託されているようです。

OSMC on Raspberry Pi

Raspberry Piには様々な種類のOSを搭載することができるが、通常オーディオ再生に使うOSはVolumioやArchPhileなどでしょう。これらのOSはインストールと同時にI2S DACをRaspberry Piの基盤に装着すれば使用できます。

今回使うのはOSMCというOSです。
OSMCはメディアに特化したOSで音楽だけでなく動画にも対応しています。AirPlayなどの再生にも対応しています。つまり、TVに接続して据え置きコンポにハイレゾを出力再生できるわけです。

しかし、ここからが本題です。

OSMCでは標準で今回使うSabre Berry+を使用できません。
OSインストール後、設定をいじっても出力先にDACを選べません。
しかも、Google先生に検索かけてもあまり参考になるサイトが見つかリませんでした。(あっても各所に散見され、海外のサイトも多い)

したがって、試行錯誤しながらとりあえず音が鳴るようになったので、ご紹介したいと思います。

必要な知識

LinuxのVIMやemacsを使って設定ファイルを書き換えられる程度の知識。

用意するもの

今回使用している環境です。
Raspberry PiはTOSHIBAの32型のTVにHDMIで接続しています。

プレーヤー本体に必要なもの
  • Raspberry Pi B+と周辺機器一式(SDカードは16GBのもの)
  • Sabre Berry+
設定に必要なもの
  • Raspberry Piの接続するネットワークに参加しているPC
  • Tera Term(sshで接続する)

OSMCのインストール

この項目は他のサイトに譲ります。
私が参考にしたサイトはこちらです。徒労日記
日本語化に関しても上記のサイトを参考にさせていただいているのですが、私はTera Term上からviでこのシェルを叩くのが嫌だったので、以下のようにやっています。

1.Windowsなどでテキストエディタを開き以下のコードをコピーアンドペーストする
2.保存時に注意するべきことは、改行コードをLF(UNIX)などにしておくことです。(わりと忘れる)
3.Tera TermにてOSMCにsshログイン(ログインユーザー名は初期設定でosmc,パスワードもosmc)
4.Tera Termのターミナル上に作成したスクリプトをドラッグアンドドロップ
5.SCP転送のウィンドウが立ち上がる。このままSCPボタンを押せば/home/osmc直下に転送される
6.あとは「chmod 700 osmc-jp-font-replace.sh」で実行権限の変更
7.「./osmc-jp-font-replace.sh」で実行される

あとは、「Setting->Appearance->InternationalからJapanese」を選択すると日本語がしっかり表示されるようになります。

ここが問題

ここからはオーディオ出力先の設定になるのですが、まず、「設定->システム->オーディオハードウェア->オーディオ出力デバイス」を指定すると音声出力可能な一覧が表示されるはずなのですが、以下のように表示されます。



この内ALSAから始まっている項目はRaspberry Pi内臓のDACドライバかと思われます。
認識されていない、使用できないのがわかると思います。


ここからが、この記事の本番です。

Tera Termからssh接続にてログインして、以下のファイルを書き換えます。
起動時の設定ファイルの書き換えですから、sudoでエディタを起動しましょう。
/boot/config.txt
書き換え前のconfig.txtの中身は初期状態で以下のようになっています。

書き換え後はこのようにします。
基本的には以下を書き換えています。
dtoverlay=hifiberry-dac-overlay
dtparam=audio=off
の追加、
#dtparam=gpio_in_pin=18 #dtparam=gpio_out_pin=17
のコメントアウト(無効化)
です。
(他にも幾つか書き換えていますがほんとうに必要か検証をやりきっていません。海外のサイトから見つけたものを書いたり消したりしているうちにできるようになったためです。)
設定を保存したあとは再起動をします。

再起動後、先程の「設定->システム->オーディオハードウェア->オーディオ出力デバイス」が下の写真のように変わっていることが確認できるはずです。


先程のALSA以下の部分が変わっていると思います。
こちらにオーディオ出力先を設定してみてください。
おそらく音は出ないと思います。

ここからもう一歩で音が出力できるようになります。

TVやディスプレイに表示されているOSMCをコントロールします。
トップの「My OSMC->Pi Config」を開いてください。



そうすると3つ目くらいの項目に「Hardware Support」が見えると思うので選択してください。
そして、Soundcard Overlayを先程Config.txtで書き換えた「hifiberry-dac-overlay」選択してください。


その後、その下にある「Enable LIRC GPIO support」をチェックしてください。

Warningと出ているかもしれませんが気にせずに、設定を閉じてください。
再起動すると、おそらくSabre Berry+から音声が出力されていると思います。

以上で私が設定した内容です。

まとめ

なんとか音が出ている感じになりました。
自分の耳ではこれがハイレゾの音かどうかは判別つきませんが、明らかにTVのスピーカーやRaspberry Piの音声ジャックからの音質より良くなったのはわかります。

Sabre Berry+は以前Raspberry PiでDACを使う特集でトランジスタ技術に載っていたこともあり、きっと人気のあるDACボードだと思います。しかし、純粋に音楽を楽しまれる方にはVolumioなどのほうが支持されるのだと思いますが、OSMCのようなマルチメディアプレーヤで手軽に音声も動画も楽しまれたい方もいらっしゃると考え(自分がそうであったように)記事作成に当たりました。

最後に私の完成型を紹介しておきます。
一応、タカチのケースに入れてきれいにしたものです。
奥に見える基盤にはコンデンサを追加したり、電源を変えたりしてできるような余裕を作っています。


この記事作成時のバージョンでの動作は確認しておりますが、アップデートや古いバージョンでの動作は保証できません。
また、この記事に記載されている改造等による事故や問題に対して筆者は責任を負いません。