ラズパイをUSB-DACとしてSoundgenic-NAS、Linuxに認識させる方法 gadget mode(USB Audio Class 2.0)
本日は、USB Audio Class 2.0 版での検証です。ラズパイ4をgadget modeでLinux機に接続してUSB-DACとして使います。
gadget ModeのUAC2接続は、Windowsとは相性が悪いのですが、macOSやLinuxでは問題なく使えるということで、今回Linuxを使って検証してみました。
ホスト機-1 VirtualBOX+Ubuntu 19.04
VirtualBOXは、ホストOSのUSBポートをゲストOSへ橋渡しすることができます。USBメモリの読み書きなどではとても便利に使えたりしてますが、USB-DACを橋渡ししたことはありません。うまく行くのでしょうか。
ホスト機-2 IODATAのNAS Soundgenic「HDL-RA2HF」
Soundgenicはオーディオ用のNASです。背面に2つUSBポートが付いていて、CD-ROMドライブを接続するとリッピングでき、HDDを接続すると外付けバックアップ、そしてUSB-DACを接続すると音楽再生ができるというオーディオに特化した面白いNASです。
ホスト機-3 ラズパイ4+Volumio2
考えてみるとちょっとおかしな構成ですけども、ラズパイも立派なLinuxマシンです。OSにvolumio2を使うのは、再生環境が最初からできているので検証が楽ちんという理由からです。
と3つのケースを思いつきました。
本日は、1と2で検証した結果を報告いたします。macを持っている方は、これと同じ設定でUSB-DAC代わりに使えると思われます。
VirtualBOX+Ubuntu 19.04
まず、VirtualBOXを試してみます。
win10マシン上でVirtualBOXを起動し、その中でUbuntu を走らせています。そしてUSBデバイスをUbuntu に認識させることが出来ます。USB機器がwin10マシンで認識できなくてもお構いなしでUbuntu へ橋渡しできるところが素晴らしいですね。
Pi4を接続するとアナログ出力とデジタル出力(SPDIF)の2つが増えます。ちゃんと認識できてますね。
ただ、音を鳴らすとブチブチと切れ気味。そんなにうまくは行きません。アナログ出力、デジタル出力どちらも同じようです。
設定方法を記載しておきます。
SDカードの準備
SSH接続
/boot/config.txt 編集
/etc/modules 編集
までは一緒です。ここで一度再起動します。sudo reboot
■48kHz/16bit設定
sudo modprobe g_audio c_srate=48000 c_ssize=2 p_srate=48000 p_ssize=2
alsaloop -C hw:CARD=UAC2Gadget,DEV=0 -P hw:CARD=sndrpihifiberry,DEV=0
この2行のコマンドでubunuに認識され、音が出るようになります。ただ、Youtubeを再生すると僅かに途切れます。
■44.1kHz/16bit設定
sudo modprobe g_audio c_srate=44100 c_ssize=2 p_srate=44100 p_ssize=2
alsaloop -C hw:CARD=UAC2Gadget,DEV=0 -P hw:CARD=sndrpihifiberry,DEV=0 -r44100 -S 0
同上。
sudo modprobe -r g_audio コマンドでgadgetドライバをremoveできるようですが、設定を変えるときは、一度、ラズパイをrebootしてからの方が安定するようです。ホスト機側からすると、USBケーブルを抜いて再度挿すみたいな感じの方が良いのでしょうね。
■96kHz/32bit設定
sudo modprobe g_audio c_srate=96000 c_ssize=4 p_srate=96000 p_ssize=4
alsaloop -C hw:CARD=UAC2Gadget,DEV=0 -P hw:CARD=sndrpihifiberry,DEV=0 -fS32_LE -c2 -r96000 -S 0 -t100000
32bitの時は -f オプションが必要になります。詳しくはalsaloop --h でヘルプを読んでください。
-t オプションはレイテンシです。これが無いと音切れが激しいです。
■192kHz/32bit設定
sudo modprobe g_audio c_srate=192000 c_ssize=4 p_srate=192000 p_ssize=4
alsaloop -C hw:CARD=UAC2Gadget,DEV=0 -P hw:CARD=sndrpihifiberry,DEV=0 -fS32_LE -c2 -r192000 -S 0 -t1000000
認識はするけど、ほぼ、無理な感じです。さすがにVirtual BOXではダメなんでしょうね。
使えそうな設定が決まったら、/etc/rc.localに記載して自動起動させましょう。
こんな感じです。(96k/32bit設定の例)
c_ssize=*、p_ssize=* なんとなく推測できるとは思いますが、ここの数値が2で16bit、3が24bit、4で32bitです。今回、24bit設定は試していません。
また、alsaloopを使わず
arecord -D hw:CARD=UAC2Gadget,DEV=0 -t raw -f S16_LE -c2 -r44100 | aplay -D plughw:CARD=sndrpihifiberry,DEV=0 -t raw -f S16_LE -c2 -r44100
というようにarecord からaplay へパイプを使ってデータを流し込む方法もあるようです。この場合、レイテンシ設定などはどうするんだろ。。。
Soundgenic「HDL-RA2HF」
次に、NASです。Soundgenicは立派なLinuxマシンです。
ubuntuで試した192kHz/32bit設定で自動起動するようにセットアップを済ませて、NASへ接続して起動します。
認識はしているのですが、残念ながら、時々、細切れの音がプチプチと鳴る感じで再生不能でした。
気を取り直して、96kHz/32bit設定を試しました。
Soundgenic用のipadソフトウェア「fidata Music App」の画面。動作モードはOpenHomeです。
よく見ると右下にLinux USB Audio Gadgetという名称でUSB-DACを認識しています。
96kHz/32bitで接続しているのは画面上から確認できません。ただ、UAC2の設定で決め打ちしているため、音が出た時点で96kHz/32bit接続しているはずです。
一応、CDリッピングしたアルバム1枚を通して鳴らしてみたのですが特に問題なしです。
44.1kHz/16bit FLAC、96kHz/24bit FLAC は大丈夫なようです。
DSD音源を再生するとフリーズします。あと、ボリューム操作も音が出なくなります。
まだまだ安定して使えるかどうかは不明ですが、もし興味がありましたら試してみてはいかがでしょうか。
ちなみに、CPUを800MHzに固定したPi4の消費電流は、起動時に650mAくらいまで上がる瞬間がありますが、その後は420~460mAくらいでした。(USB電流メータによる簡易測定)
通常、USBポートは500mAまでは保証されるはずなので、殆どのケースで問題ないと思われます。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« ラズパイをUSB-DACとしてWindows10に認識させる方法 gadget mode(OTG Mode) | トップページ | 第2回 HPA-1000用のRコアトランスの希望者募集について »
「PCオーディオ」カテゴリの記事
- RaspberryPi Pico USB-DDC化 I2SとMSBファースト後詰め出力対応(2022.03.21)
- RaspberryPi Pico USB-DDC化? I2S出力調査(2022.03.20)
- efuさんのWaveSpectraが公開停止していた(2022.03.09)
- ラズパイをUSB-DACとしてスマホに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.10.16)
- PCに組み込むヘッドホンアンプ Sound RABBIT & 900万PVありがとう企画(2020.10.10)
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
「SB32+PRO DoP」カテゴリの記事
- SB32+PRO DoP リペア(2024.11.09)
- ラズパイオーディオお手軽インストーラー[MUTE](2022.07.08)
- ラズパイをUSB-DACとしてスマホに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.10.16)
- ラズパイをUSB-DACとしてSoundgenic-NAS、Linuxに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.09.24)
- ラズパイをUSB-DACとしてWindows10に認識させる方法 gadget mode(OTG Mode)(2020.09.22)
« ラズパイをUSB-DACとしてWindows10に認識させる方法 gadget mode(OTG Mode) | トップページ | 第2回 HPA-1000用のRコアトランスの希望者募集について »
コメント