Oct 21, 2018
ADI-2 DACとpiCoreで、384kHz以上を鳴らしてみる
最近、ADI-2 DACがメインのDACになった。
導入した目的には384khz以上にアップサンプリングして聴くというのがあって、なんとか出来たので、顛末を書いておく。
ADI-2 DACを導入して以降、ras pi 2/ppap/192khzで聴いていた。
普通に384khzで継ぐと、リーン、、、と、薄い金属が震えるような雑音が再生音に乗るのだ。jitteringっていうのかな。多少、プチプチいうノイズもある。ネット上にはADI-2 Proとras pi 2のケースで報告がある。以下引用。
https://www.forum.rme-audio.de/viewtopic.php?id=25703
RME User ForumVolumio installation was straight-forward but I am getting some jittering (clicks) during the playback.
ADI-2 DACにはWindows用とMac OSX用のドライバが付属していて、これでusb接続を最適化していると思うんだけど、Linux用のドライバはないので、こっちが工夫しないといけない。
一時はras pi 3b+を導入して無線LANでNASマウントしてusb出力したらどうだろうか、などと考えていたんだけど、5ちゃんねるに書き込みがあって、3b+の有線lanが微妙ということらしい。それって、3b以前はどうなんだろうか。
無線lanを使う分には問題ないのかな、、、下記は書き込まれていたリンク。
https://volumio.org/raspberry-pi-3-b-plus-audio-review/
THE NEW RASPBERRY PI 3B+ AUDIO-RELATED REVIEWAs usual, I started playing my “Raspberry killer” track: a 32 bit, 678 kHz .wav file from my NAS. And… What a terrible disappointment: loads of crackles and a whole lot of lost packets.
Tried then with DSD, 24/192 flacs, and even 16/44.1 flacs. All sounded just terrible. So, indeed the new USB BUS did change USB Audio performances, unfortunately, it did for the worst.Luckily though, I then tried to play the same files from a USB drive (and not from a NAS), and magic happened: spotless playback up to 32\768. Seemed that taking ethernet (I was connected on wired connection) out of the equation did the trick. So connected the PI via wifi and restarted without ethernet: same result, HI-Res Music playback was just perfect to my USB DAC.
しかし、他の解決策も5ちゃんねるにあった。下記、引用する。
ethtool -K eth0 tx-tcp-segmentation off tx-tcp6-segmentation off
(イーサネットチップで行っているパケット処理をオフにしてCPUで行うなうようにする)
パケットロスの発生はドライバのできによるものらしいのでベースのOSでドライバ更新されればvolumioにも反映されるようです(直す気があるかどうかは不明)上記コマンドによる設定変更は記憶されないのでもしうまくいった場合/etc/rc.d/init.d/localにコマンド書き込んで起動時に自動実行させる必要があります
ギガビットイーサの速度が出ないときの対策なので今回の件にあてはまるかは未知数ですけどね
これは実は、piCore、pi 2用の対策ではないのだけど、
書き込みを参考に、ras pi 2/piCore9で、ethtoolを使ってみた。
他の書き込みによると、moode audioではデフォルトで設定されているらしい。
ethtool -s eth0 speed 100 duplex full というコマンドも対策として上がっていて、3b+だと有効な場合があるようだ。
tce-load -wi ethtool-doc.tcz ethtool.tcz sudo ethtool -K eth0 tx-tcp-segmentation off tx-tcp6-segmentation off
どうも、自分が何をやってたのか、はっきりしないんだけど、、、
インストールして設定のコマンドを打って、nasマウント/384khzでノイズなしで聴けるようになった。768khzでも、設定前には全く音が出なかったのが、数秒だけど音が出る。残念だけどその後は途切れ途切れになる。
volumio2を試した時は768khzでも音が出たんだけど、プチプチノイズが乗るので使用を諦めた。384khzでもときどきある。piCore9で768khzだと途切れ途切れでプチプチノイズどころではない。反面、384khzだと問題なく聴ける。
この辺、何処をどういじったら違ってくるのか、よく分からない。
音を比較したら、nasマウント/384khzのほうがppap/192khzより少しだけ細やかな音がする。ごちゃっと塊のように聴こえていたオーケストラの弦楽が、ほぐれて滑らかに聴こえてくる感じ。少しだけの変化なんだけど、音楽としては案外大きな違いに感じられる。
しかし、この時点ではppapのras pi 2はethtoolによる設定をしていない。同じ設定をしないと単純な比較はできないと思った。
ethtoolをインストール。
ethtool -k eth0、ethtool eth0 で設定前の状態を確認。
sudo ethtool -K eth0 tx-tcp-segmentation off tx-tcp6-segmentation off で設定、、、
ethtool -k eth0、ethtool eth0 で設定後の状態を確認、、、設定表示に変化なし。
なんなんだろうこれは。。。
実は、nasマウント/384khzのほう、コマンドを打つ前と後で設定表示の変化を確認していなかったことに今更気付く。ということは、コマンドが本当に効いたのかどうか、実は分からないということなのか?
5ちゃんねるの書き込みには設定変更は記憶されないとあるが、どうも、picore9だと、記憶されているような。というのは、リブートしても効果が続いているからだ。
いや、それって、コマンドで設定変更されてないという可能性もあるんじゃないのか。
piCore9を1から焼いて試してみる。
結果から言うと、、、どうも、ethtoolは関係ないらしい。インストールしなくても384khzの音が出ている。
現在の.mpdconfの設定は下記のような感じ。
samplerate_converter "Fastest Sinc Interpolator" audio_output_format "384000:24:2" audio_buffer_size "32768" buffer_before_play "20%"
audio_buffer_size を奢るというのが決め手だったらしい。
そうなのか?おっかしいなあ、、、
11月6日、追記。
日々あれこれと聴いてるうちに、ときどき、チリ、、、チリ、、、とノイズが入ることに気付いた。
まあ、アナログみたいなもんかと思って無視することもできるんだけど、対策を検討、、、
audio_buffer_size "65536"
buffer_before_play "20%"
こんなところで、とりあえず様子を見ている。おさまったように思うんだけどな、、、
さて、改めて、音の方はというと、やはり情報量はnasマウント/384kHzのほうが多い。音の勢いは、ppap/192kHzのほうがあるように聴こえる。この辺り微妙で、でもよく聴くと、ppap/192kHzは微かに音が滲んでいるせいで強く聴こえるということが分かる。nasマウント/384kHzのほうが正確だ。
例えばジョージウィンストンのLinus & Lucyとか聴くと、ppap/192kHzだと「この重いピアノの音は何?」って思うんだけど、nasマウント/384kHzだと「ああ、重い音なんだこれは」と納得がいく感じ。楽器の特性によるものか演奏の仕方によるものか僕には判断が付かないけど、ニュアンスが伝わって音色を理解しやすくなる。
アストラッド・ジルベルトのデビューアルバムも、以前は眠たく甘ったるいだけの声で蓼食う虫も好きずきだと思っていたのが、384kHzにアップサンプリングしたら、表情があるリアルな女性の歌声だと分かるようになった。今回、改めてこの音源の音質について調べて、実は初期のアナログプレスで「VAN GELDER」の刻印があるのが音がいいとされている、ということを初めて知った。正直、以前だったらそんなこと調べる気にもならなかったんだけど。
nasマウントでここまで音の表情が出るんだから相当だと思う。
なんだかノウハウの信憑性に疑問があるが、とりあえず音が出て、その音がいいので、今のところはそれでいこう、という感じ。
ついでに、/mnt/mmcblk0p2/tce/onboot.lst を編集してシステムを軽くしておく。
mc.tcz openssh.tcz boost-dev.tcz libsamplerate-dev.tcz libsamplerate-doc.tcz flac-doc.tcz libcue.tcz libcue-dev.tcz icu-dev.tcz libid3tag-dev.tcz libmad-dev.tcz mpg123.tcz mpg123-dev.tcz mpg123-doc.tcz lame-dev.tcz lame-doc.tcz libmpdclient-dev.tcz libmpdclient-doc.tcz alsa-oss-dev.tcz alsa-oss-doc.tcz alsa-plugins-dev.tcz alsa.tcz alsa-utils-doc.tcz alsa-utils-locale.tcz mpd-0.19.19.tcz
音の変化は、どうなんだろうなあ、、、正直、明らかな変化は感じない。悪くなってはいないと思う。
サンプリング周波数が高くなると変化が目立たなくなるんだろうか。
768kHzではどうなのかという課題がある。
前述のpi 3b+のレビューでは、usbメモリの768khzハイレゾファイル再生に問題なしとある。うちはアップサンプリングするので、それよりも負荷は多い。 しかも、pi 2でどうなのか。LANがボトルネックということなら、RAMメモリ再生でどうなのか。
44.1/16ファイルの768khzアップサンプリング再生を試してみる。「audio_buffer_size」を90000まで上げる。音が出始めるまで数十秒かかり、音が出て数十秒間は再生できた。その後は途切れ途切れで音楽にならない。audio_buffer_sizeが小さい値だと、最初から途切れ途切れになる。
どういうんだろ、libsamplerateでアップサンプリングするのが間に合わないのかな。もしかしたら、SoXだったら上手くいくかもしれない。しかしpiCore9でSoXはリポジトリにsoxr.tczがないので使えない。
オーバークロックしてみるという手があるかも。
arm_freq=1000 core_freq=500 sdram_freq=500 over_voltage=6
こんな設定で鳴らしてみたら、実用にならないのは同じだが、多少マシになった。
ということは、ras pi 3b+のほうが可能性があるということか、、、
さて、piCore7はppap/192kHzが上手くいかなかったから最近は使ってなかったんだけど、オーバークロックしてSoXのアップサンプリングが使える。と思って、やってみたけど、ダメでした。192kHzでもjitteringが乗る。
192khz以上のアップサンプリング音源をADI-2 DACで聴くには、piCore9以降が必要みたいだ。
将来的には、ppapで384kHz以上が使えるようになったら使ってみたいと思う。
あと、Ras pi 3b+を入手して、無線でNASマウントしてみたい。
lanとusbを1チップで処理するras pi 2はusbオーディオでは不利だ。3b+なら無線LANとusbで、入出力の処理を別の経路に振り分けることができる筈だ。前述の3b+のレビューによると無線lanは使えそうだ。
問題は、piCoreがまだ3b+に対応してないこと。対応するのはpiCore10で、現在はベータ版がリリースされている。いろいろ手を入れて使うにはスキルが要る。普段使ってないが、raspbianでいいじゃんという考えもある。piCoreが対応するまでのつなぎには充分かな。余裕ができてからか。
writeback message:
Caution!!!
Now, Anyone cannot post a comment.