電波ビーチ

☆(ゝω・)v

RaspbianでI2S-DACで音を出したい

あらすじ

https://github.com/search?utf8=%E2%9C%93&q=soundcloud+scraper&type=

で大量に出てくる(良い時代ですね)から適当に見繕って、そのへんに転がっていたラズパイ(Raspbian Jessie)で以下をcronで走らせています。

0 0 * * * cd scdl/contents; /usr/local/bin/scdl -l https://soundcloud.com/ユーザー名 -f -c

こうやってすぐbanしやがったり消しやがるので収集しているのですが、聞くときは別のラズパイ(Volumio2)に危うく消えるとこだった貴重なデータを移して聞いてました。のせていたDACはこれです

もともとこれとVolumio2で聞く前提でやっていたのでふつうに落とす専用で使っていた以外のディストリビューションRaspbianから音を流すことは考えておらず試したこともなかったんですが、ふと普通に音楽ファイルを開いたら標準では再生されないんですね。デフォルトのメディアプレイヤー入ってないことに今更ながら気づきました。(注:winでいうWMP, macでいうQTみたいな、メディアファイルポチすれば勝手に再生してくれるやつが無い、って程度の意味でいいです。最初VLCと紐付けされてないんで)

そこで今回はラズパイで音流すまでやってみたんですがたどり着くまでにわりと(関係ないとこで)ハマりどころがあったので戒めとして残します。

セットアップ

SDHCじゃなくて64GB以上のSDXCにNOOBSを入れる

さっそく関係ないとこでハマったんですが、秋葉原で2000円くらいで売られていた64GBのmicroSDを使ってSDFormatterを使ってフォーマットしようとすると64GB以上だと勝手にexFATでフォーマットされるんですね(多分)。NOOBSはFAT16FAT32でフォーマットされたSDカードしか使えない縛りがあるそうです。MacLinuxならユーティリティから形式を選べるんです(多分)が、windowsだと標準ではできないっぽく、サードパーティソフトを使います。みたいなことがここに書いてありました。いつもだとそのあとEtcherで焼くんですがなんかEthcerも64GB以上使えないっぽいのでzip解凍してコピーします。

ちなみにNOOBS以外で入れるのを試したケースではJessieをWin32DiskManagerでimg化して入れる方法が成功しました。できなかった方は詳しくはこちらを。ありがとうございます。

I2S-DACを使う

こちらの記事を参考にしました。ありがたい。

Raspberry Piでi2s-DACを音声出力にして高品位な音楽を聴く(Rev.C) | 電子工作の環境向上

自分の場合、ドライバはたぶんhifiberry-dacplus.koでいいと思うのでこれを指定。

ここで盛大にハマったんですが、上の記事では出てきていたはずのAudio Device SettingsでDACのドライバを選べないという現象に。デフォルトのbcm 2835しかリストされません。

www.widesnow.com

marrone.jp

これらの記事を参考にして優先順位を変えたりしたのですが一向に表示されず。。。。。。reboot, shutdownコマンドの押下数も3桁に到達しようかという時、ひとつ気づきました。ラズパイ初回起動前からずっとDAC挿していたことを。

上記でやった設定を一度外し、DACを取り外してからもう一度設定して最後にまた挿して再起動するとなんともあっさりリストに現れました。。。こんな罠に軽く5時間は無駄にしました。。。。。

(なんでそうなったのかの厳密の厳密な原因とか仕様とかは知らないのでお知りでしたら逆にぜひご教授ください)

ラズパイの無線帯域は2.4GHz

あと、うっかりしてたんですがラズパイ3は2.4Ghzの無線帯域を使っていて、手持ちのwimaxの設定を5Ghzにしていたので最初SSIDがリストに表示されず焦りました。次のラズパイはCPU向上と5Ghz対応に期待したいですね(吐血)

音の出力

メディアプレイヤーが入ってないと書きましたが、GUIプレイヤーはないんですがコマンドラインから使えるメディアプレイヤーやコマンドは何種類かあるみたいです。

pongsuke.hatenablog.com shingoushori.hatenablog.jp

こちらがわかりやすかったです。ありがとうございます。

omxplayer

フルHDがPi Zeroでスムーズに再生できるとかなんとか。すごい。今回は映像つかわんけど。 軽量で高品質がウリらしいんですが、悲しいかな、使えるデバイスオンボード(イヤホンジャック)とHDMIだけらしく、DACは使えないそうです。出力先を何度も見直しているのにもかかわらずモニタから流れ続けて、エラーとかも出ないので数時間溶かしました…ログの見方とかわからんし。それとも現在どのデバイスで音が鳴っているかとかわかる方法あるんでしょうか。教えてください

mplayer

非常に多機能で、ちゃんとDACが使えるやつ。

linux-suomi.net

もうなんでもできるんじゃないかという感じがします。今回は唯一成功したこれを使いました。

mplayer -ao alsa:device=plughw:1,0 /home/pi/scdl/contents/*.mp3

これで指定のフォルダのmp3が順番に流れます。

aplay

コマンドは通るんですが、DACはなんかノイズしか出ませんでした。それ以外の出力先は試してないので知りません。

鳴らせた

目的は達せたのですが結局GUIが欲しくなってVLC使ってるのでVolumioでいいじゃん感がすごい。