FreeBSD 12-STABLEで作っているネットワークオーディオプレーヤーです。ならべてテストしてみています。
mpg123を使っているので対応しているフォーマットはmp3だけですが、WBGOが聞けるので十分です。
一番手前のはAtheros AR9341なSOCからSPDIFを出しています。Flashが8Mにできなかったので、4MのSPI Flashが2つ入ってます。GPIOのパターンから74HC04の2回路でバッファにしてTOSLINKモジュールにつないであります。
黒い大きいのはRalink RT3883でUSBオーディオにつないでします。Flashは8Mなんので余裕です。USBオーディオモジュールも自作です。
USBオーディオモジュールもいろいろ作っています。
奥の白いのはAR9341でI2Sが出せるようにしました。これも4M x 2なFlashです。I2Sのコネクタは自作USBオーディオモジュールと同じです。
AR9341はSPDIFが最初できたのでSPDIFなDAIのWM8805GEDSを購入してI2Sすることも考えたのですが、Pin MUXのおかげでI2Sの直だしが思いのほか簡単にできました。
SPDIFはI2Sの情報に属性情報が追加されるので、処理が重くなり不利になり、音に影響があるかもしれません。
またSPDIFだと送り側と受け側で別々にクロックを持つ必要があり、音にはよくなさそうです、
昔何も分かってなかった頃、SPDIFは光でデジタルだから音がいいと思い込んでいました。
すべてMIPS 74Kです。FreeBSDのAudioスタックは24KなMIPSではまともに動きません。
最近はオーディオ機器にも関わらず冷却用のファンがついていて、騒音を出す機器もあります。ルーターは省電力でファンがなく静穏なのも良いです。
Ralink好きなのですが、AtherosのPin muxとSPDIFサポートはすばらしいと思います。
すべてHardOffで入手したもので総額1000円にもならないと思います。
右のアルミの箱はぺるけさんのFET式差動ヘッドホンアンプ Version 2でケーブルはモガミ電線のNEGLEX 2510です。
残念ながら会社は解散されたようですが、モガミ電線の社長さんはFreeBSDの資料をいろいろ書かれていました。
sysctlのdev.pcm.0.bitperfectやdev.pcm.0.play.vchanrateを変えてみるのも良さそうです。