@パパリウス 様
Ver1.04b 下記システムで試聴しました。
Audiophonics 9038Q2M
Slave mode WAV 再生
s16,s32 同結果
mpd
none 
16 〇
24 
32 〇
Airplay
すべて 〇
となりました。Terraberry2+は現在出張中なので検証できませんでしたが、
パパリウスさんも お持ちなので大丈夫ですよね。
@パパリウス 様
Ver1.04b 下記システムで試聴しました。
Audiophonics 9038Q2M
Slave mode WAV 再生
s16,s32 同結果
mpd
none 
16 〇
24 
32 〇
Airplay
すべて 〇
となりました。Terraberry2+は現在出張中なので検証できませんでしたが、
パパリウスさんも お持ちなので大丈夫ですよね。
PLL設定を実機で確認したところ、スレーブモードで176.4KHz/352.8KHz再生時にMASHが有効になっていました。
(MASHが有効だったため、ピッチ・再生速度は正常でした。)
PLL由来のジッタ対策が不十分ですので、PLL設定の見直しを行います。
v1.0.4正式版のSDイメージには、対策版のdt-blob.binを同梱します。
先行して差し替えたい方がいらっしゃいましたら、以下をダウンロードしてください。SDイメージに同梱予定のdt-blob.binと、ソース(dtsファイル)です。
@hiroget9 さん
SB32+PRO DoP・hifiberry-dacの動作報告をいただきありがとうございます。
問題なさそうで安心いたしました。
@mike さん
大変お待たせしました。
v1.0.3は総合的な音質向上と引き換えに、帯域バランスの崩れがある状態でのリリースとなりました。
これまでもバージョンアップに伴い同様の変化を経験してきておりましたので、いずれ対策できるものと信じてはいましたが、、、v1.0.4の完成でようやくゆっくり音楽に浸ることができそうです。
@ゴンザエモン さん
ご報告ありがとうございます。
webui-plusですが、こちらでは正常動作しています。
何か見落としていることがあるのかもしれません。
sunatomoさんと一緒に調査を進めたいと思います。
@flyingace さん
ご報告ありがとうございます。
全パターンOKですね!大変助かりました。
@Cresson さん
mpdは、Web UIのMPD設定でSoX Resampler Formatで指定します。
AirPlay/Spotifyは、Web UIのSOUND CARD設定でDEFAULT_SAMPLE_FORMATを指定します。
@knkn59 さん
ご報告ありがとうございます。
高ビットレートのDSD-PCM変換はちょっと厳しいようですね。
xsinkドライバのバッファを大きくしたり、SoXの並列実行を有効にしたり、、、なんらかの工夫が必要なのかなと思います。いずれこの辺りも取り組んでみようと思います。
@シマネコ さん
ご報告ありがとうございます。
音質のご感想もありがとうございます。こちらの試聴環境と同様の変化を感じてらっしゃるようで安心いたしました。
v1.0.4の音質は私もすごく気に入っています。
お借りしているTB2とRMEですが、もうしばらく使わせていただければと思います。
DACの入れ替えを検討しておりまして、2〜3ヶ月程度で試聴環境をES9038PROに変更する予定です。
そのあとでもう一度お借りしているオーディオインターフェースでJ-Testを取り直してみようと思っています。
@パパリウス さん
nzatoです
Sabreberry32 HDMI TOPPING D70 で確認しました。
MPD 「32bit変換あり」 動作します
MPD 「24bit変換あり」 音が出ません
MPD 「変換なし」 音が出ません
以上、報告します。
マスターモードで、前バージョンでも「32bit変換あり」で使っていました。動作としては同じです。
@nzato さん
ご報告ありがとうございます。
前バージョンと同様に動作しているということで安心いたしました。
@パパリウス さん
InnoMaker HiFi DACにES9038でMPD,Spotifyにてすべて再生出来ます。
v1.0.4で行ったrtalsa/xsinkドライバの改良について補足いたします。
v0.9.6の時に、メモリからメモリへのデータのコピーに使われるmemcpyという汎用関数の高速化に取り組み、大きな音質改善を実現しました。
rtalsa/xsinkドライバが読み書きするリングバッファに特化した超高速なmemcpyの代替関数をアセンブラで作成するというもので、処理内容は単純なデータコピーにも関わらず、汎用のmemcpyに比べて30%程度の高速化とCPUキャッシュヒット率の改善が見られました。
このようなメモリの読み書きがドライバ内の処理時間の半分以上を占めていることもあり、大きなインパクトがありました。
RPi4版(v1.0.x)にも同様の処理を盛り込みたかったのですが、アセンブラはCPU固有の命令を使ってプログラミングするもので、移植性に難があります。
32bit向けに書いた処理をそのまま64bit版で動かすことはできなかったため、仕方なく汎用のmemcpyに戻してrtalsa/xsinkドライバの移植を行いました。
v1.0.4で改めてARM 64bit向けにアセンブラを書き直し、xsinkドライバ側に組み込むことができました。
サンプルフォーマットが16bit/24bit/32bitと変化すると、読み書きするデータの最小単位も変わります。
例えば、16bit・2チャンネルなら最小単位は32bit、32bit・2チャンネルなら最小単位は64bitとなります。
一方、CPUに搭載されたレジスタは64bitのため、32bit・2chを扱うのは得意ですが、16bit音源や24bit音源の扱いには注意が必要になります。
(プログラムに不具合があれば、PCMデータが一部書き換わってしまったり、ドライバがハングアップしてしまいます。)
当方での確認だけでは不十分と判断し、皆様に色々なサンプルフォーマットでの動作確認をご支援いただいた次第です。
@パパリウス 様
前までと同じだと思います。
24はtimeout-invalidでした。
noneは前は設定したことがありません。
起動音はすべて再生されます。
通常は32で設定してますので、問題はありません。
パパリウスさま
rtalsa/xsinkドライバの改良とはそのように抜本的なものだったんですね。
それで ver. 0.9.6 のときのようにジャンプアップしたと、腹に落ちました。
そして、32bit出力にすると音が自然になると感じたことも単なる空耳でないことにも納得しました。
それにしても今回のverupは、出力bit数、DACのfilter選択などの違いをとても良く出します。改良された、dt-blobで176.4KHzにupしても予想以上に音が変わります。
この感度の良さにびっくりすると同時に tune up の可能性も感じて楽しくなりました。
設定を変えつつ、いろいろ聞きまくっていますが、とてもスリリングな体験です。
これほどのジャンプアップ、本当にありがとうございました。しばらく色々楽しんでみます。
不具合の修正を行った v1.0.4正式版 のSDイメージをアップしました。
動作確認にご協力いただいた皆様、どうもありがとうございました。
rtalsa/xsinkドライバの品質に大きな問題はないと判断し、このまま正式リリースいたします。
前バージョン(v1.0.3)と動きが異なったり、挙動に問題が生じたときは不具合報告スレッドにご一報いただけると幸いです。
β版からの修正は以下の2点です。
正式版のSDイメージから再インストールしていただくのが確実ですが、手作業で差分を反映していただくことも可能です。
1) dt-blob.bin差し替え
wget http://symphonic-mpd.com/release/extra/dt-blob.bin -O /boot/dt-blob.bin
2) webui-baseインストール情報の上書き更新
app install webui-base
@パパリウス 様
TB2とRME-UCXについては当面使う予定はありませんので、お役に立てるようでしたら幸いです。
@シマネコ さん
ご支援ありがとうございます。
現状ではDAC側のノイズフロア(130〜140db)に情報が埋もれてしまい、活用するには至っておりませんでした。
試聴環境を改善して再チャレンジしたいと思います。
@Cresson さん @kadust さん
ご連絡ありがとうございます。
おかげさまで正式リリースの判断に足る情報を短期間に集めることができました。
長時間稼働させるうちに何か問題が生じる可能性があるかもしれません。
なにか挙動にお気付きの点がありましたら、ご一報くださいませ。
引き続きよろしくお願いいたします。
@mike さん
v0.9.6と類似のアップデートということで、音質の変化の大きさにもご納得いただけるものがあると思います。
v1.0.4βの動作確認をお願いした時点ではドライバの修正内容は伏せていましたが、耳聡い方々からすぐさま反響があり、ホッといたしました。
それにしても、、、FifoPiを挟んでいる環境でさえもトラポによって音質が変化するというのは、デジタル再生の難しさを象徴していますね。
RPiとガルバニックアイソレーションされ、 FifoPiの良質なクロックでI2Sを打ち直しているのですから、主要な領域に関してはトラポの影響を断ち切っているはずです。
古い情報で恐縮ですが、CDメディアの材質の違いによるジッタは2ナノ秒未満という論文を目にしたことがありました。
論文の著者は、「聴感では聞き取れないレベルであり問題無い」と結論付けていました。
いま私たちが直面している問題は、これに類するような非常に微細で対策が難しいマイナーなジッタ源ということなのかと思います。
パパリウスさま
おっしゃるように、FifoPi2 でリクロックしているはずなのにこれほどの違いが出るというのはロジカルに考えると解せません。
しかし、FifoPi2 のクロックをデフォルトのものから高精度な DDHD957 に交換しても今回ほどの変化はありませんでした。まあ少しピュアに品が良くなったかなあ程度です。
おかげさまで、smpdでそういう劇的な経験を何度か繰り返していますから、世の中で言われているクロック精度の尺度が実は音の良さを正確に表現していないことはたしかです。
そういう意味でも革新的な開発だと確信しております。そしてその革命的なバージョンアップでも出てくる音は一つの方向に真っ直ぐではなく多様なことにも感銘を受けます。
そしてその土台に立って色々好みの音にユーザーレベルでチューニングする余地があることも嬉しいことです。
まだまだ進化しそうですから感謝しつつ楽しみはつきません。
お体を大事にこれからも末永く楽しませてくださいませ。
DACスレーブで使用している皆さんに、実装ミスをお詫びしなければなりません。
スレーブモードのPLL設定についてRPi3版のソースを見ていたときに、v1.0.xのソースとの違いに気がつきました。
よくよく動作を確認してみると、v1.0.xでは思ったように動作していないことが分かりました。
数日中にv0.9.6相当の実装に修正したものをオンラインアップデートで配信したいと思います。
DACスレーブの動作確認が不十分でした。申し訳ありません。
PLL設定を修正したv1.0.5を配信しました。
補足として、各バージョンでのPLL設定を記載しておきます。
44.1KHz系:609638400Hz (PLLA)
48KHz系:614400000Hz (PLLD)
44.1KHz系:632217600Hz (PLLD)
48KHz系:638976000Hz (PLLA)
なお、v1.0.3までは800MHz台に設定しており、RPiのデフォルトよりもやや高い周波数となっておりました。
環境によってはRPiの起動が失敗することがあり、dt-blob.binをリネーム(または削除)していただく必要がありました。
v1.0.5ではv0.9系に近い周波数を採用しており、起動に関する不具合が軽減されている可能性があります。
パパリウスさま
ver 1.0.5にupし動作確認いたしました。いつものように下記システムです。
いずれもTinker Board S をNASとして使用しており、44.1KHz/16bit の無圧縮Flacです。
①RP4B+IAN Canada FiFoPi2 -> Topping D90
②RP4B+Sabreberry32pro
NASの音源再生動作上での問題はまったくありません。spotifyも正常に再生できています。
なお、現在①は 32bit/176.4KHzで、②は、32bit/44.1KHz でドライブしています。
@mike さん
動作確認していただきありがとうございます。
こちらでもスレーブモード(rpi-dacドライバ)で一通りのサンプリングレートの動作確認をいたしました。
OS上で確認した限りは、設計通りの動作になっているものと思います。
(何度も修正するのは申し訳ないので、オシロで目視確認して完璧を期したいところです)
@パパリウス さん、v1.0.3までは、まれにrebootすると立ち上がらないことがありましたが、これが原因だったのかもしれませんね。
v1.0.5にアップデートさせていただいてからは起動しないという現象は発生していません。