@パパリウス さん
追加報告です
PCMでも88.2KHzのファイルは再生しませんでした
DSDの2.8MHz,5.6MHzが同じ動作みたいですので
DSDが再生出来ないと言うよりも
44.1KHz系列の88.2KHz以上のクロックのファイルが
正常動作してないのではないでしょうか
何方か176.4KHzのファイルが異常動作と報告が有りました
先ほどの報告ではハングアップではないと報告しましたが
再生出来ないファイルを再生後はハングアップしている様です
RPi4版 v1.0系のサポートはこちら
@パパリウス さん
追加報告です
PCMでも88.2KHzのファイルは再生しませんでした
DSDの2.8MHz,5.6MHzが同じ動作みたいですので
DSDが再生出来ないと言うよりも
44.1KHz系列の88.2KHz以上のクロックのファイルが
正常動作してないのではないでしょうか
何方か176.4KHzのファイルが異常動作と報告が有りました
先ほどの報告ではハングアップではないと報告しましたが
再生出来ないファイルを再生後はハングアップしている様です
パパリウスさん CC.皆様
Mojyaさんの追加報告がございましたので、当方も再確認してみました。
1.88.2K、176.4Kはいずれも再生不可でした。(他はOK)
2.Process Cut-down設定が「none」などであればsshでの接続はできました。(OSハングアップではない?)
3.ただし、一度再生不可が起こってしまうと、V1.0.7へのドライバー切り戻しでハングアップが起こりました(何かが稼働中?)
以上です。
検証いただきありがとうございます。
88.2KHz系に切り替わるときにハングアップする問題に対処しました。
ドライバを差し替えたあとは念のため再起動をお願いします。
再生開始直後やサンプルレートの切り替わり時、中断後の再開などに不具合が残っている可能性がありますので、お気付きの点がありましたら小さなことでもご報告いただけると幸いです。
V=v108b2;cd /run/;wget -O - https://www.symphonic-mpd.com/release/$V.tgz|tar xzf -;$V/install.sh;rm -r $V;cd
V=v107;cd /run/;wget -O - https://www.symphonic-mpd.com/release/$V.tgz|tar xzf -;$V/install.sh;rm -r $V;cd
こんにちは。お世話になってます。
digioneで順調に再生出来ています。
1.o.7すごく良いんですが益々掘りが深くなった印象です。
The Raw Soundといった印象です。smpdは進化の方向が常に一貫していて
そこが素晴らしい点だといつも思っています。
この方向でぜひ進めて頂きたいです。
よろしくお願いします。
@パパリウス さん
早速V1.0.8β2を試しました。
再生音源を次々切り替えていく方法で行いましたが、手持ちの音源は全て正常に再生可能になりました。しばらくこのまま利用したいと思います。試したの以下の音源です。
PCM 44.1,88.2,176.4,352.8
PCM 48,96,192,384,768
DSD 64,128,256(DoP)
@パパリウス さん
お世話になっております。
動作環境
Rpi-4B
SB32+PRO DoP:Master mode
hifiberry-dacplus
DSD Mode dop
MPD Port 6600 ON
コントロールソフト yaMPC
上記環境にて1.08β1で出ていた動作不良は
1.08β2にて全て改善されていました
有り難う御座いました
まずはご報告まで
パパリウスさん、お世話になります。
v1.0.8β2ドライバで試聴しています。
今のところ不具合もなく、音がよりよくなったようですね。
ありがとうございます。
皆さん、検証いただきありがとうございました。
ポップノイズなどお気付きの点がありましたらお知らせください。
今取り組んでいるのは『負荷を低減・平滑化していくとどんな音になるのか』というテーマとなります。
その実現手段として、セパレート構成の実装を進めています。
セパレート構成の実装にあたり、重要なポイントが二つあります。
一つは「カーネルのTCP/IPスタックをバイパス」すること。
もうひとつは「DMA転送バッファのスワップ」を実装することです。
再生負荷が低いRAMディスクからaplayで再生という事例で、再生までにどのような処理が行われるかを例示してみます。
RAM
⇨aplayバッファ
⇨ALSAバッファ
>> FIFO
矢印(⇨)はメモリ上でのデータのコピーを表します。このようなデータのコピーはメモリからレジスタへの読み込みとレジスタからメモリへの書き込みを組み合わせて実現されます。
最後のFIFOへのコピーはDMAで、CPUを使わないデータコピーです。
次に、v0.4系のセパレート構成を例示します。
ncatでデータを受け取り、パイプ経由でaplayで再生する方式です。
ソケットバッファ
⇨ncatバッファ
⇨カーネルバッファ
⇨aplayバッファ
⇨ALSAバッファ
>> FIFO
次はv1.0系でmpd再生する例です。
ソケットバッファ
⇨mpdバッファ
⇨xsinkバッファ
⇨ALSAバッファ
>> FIFO
今回のv1.0.8βでmpd再生する例がこちらです。
ソケットバッファ
⇨mpdバッファ
⇨xsinkバッファ
>> FIFO
セパレート構成の実装のために研究していたDMA転送バッファのスワップを応用して、データコピーを1ステップ削減することができました。
最終的なセパレート構成で目指しているのがこちらです。
ソケットバッファ
>> FIFO
ソケットバッファから直接FIFOにDMAしてしまうというシンプルなアイデアです。
メモリ上でのPCMデータのコピーはただの一度もありません。
低負荷を突き詰めていくとこの方式に収斂するだろうと思います。これ以上、処理を減らしようがないからです。
ネットワーク経由で受け取ったパケットのうち、PCMデータ以外は全てカーネルのTCP/IPスタックに渡します。(不要なパケットはこの段階でフィルタしてしまうことで、さらに負荷を下げることもできます。)
PCMデータの入ったソケットバッファはそのまま保持しておき、DMA転送が終わったソケットバッファと逐次交換していくことで連続再生します。
セパレート構成の実装に必要な2つの要素技術(カーネルバイパス・DMAバッファスワップ)は実用レベルになってきました。
引き続き、年内に試作版を公開できるよう進めたいと思います。
@パパリウス さん
セパレートシステムの構成に関する解説ありがとうございます。dacに繋がるバックエンド側はソケットバッファとDMAだけという超シンプルな構成になるということですね。カーネルの中核部分に手を入れないと出来ない、超荒技ですね。凄い。どういう結果になるか楽しみにお待ちします。
ところで、nasに繋がるフロント側は基本的には今のままで、ncatの宛て先がネットワークに変わるだけ(donut方式)と考えてよいのでしょうか。またフロントとバックエンドはハブ経由で直結はしない(余分なハードは接続しない、もちろんラズパイはもう一台必要ですが)と考えてよいのでしょうか。
@yo さん
フロント側にはncatの代わりとなるプログラムを用意します。
バックエンドとの通信を細かく制御するためです。
物理的な接続については特に制限を設けず、ハブ(ルータ)経由での接続をサポートしたいと思います。
直結に限定すれば、IPヘッダ・UDPヘッダを省くことも技術的には可能です。
もし通信のスループット向上が狙いなら、そのような実装を目指したかもしれません。
今回は負荷の低減と平滑化が狙いであり、それは直結に限定しなくてもLinuxカーネルのTCP/IPスタックをバイパスするとともに緻密なフローコントロールを実装することで実現可能です。
通信の平準化により、ハブ(ルータ)への要求スペックも大幅に引き下げることになり、通信経路上の機器がボトルネックになる可能性は低くなると思います。
マイナーチェンジ版のβ3をアップしました。
ソースコードのクリーンアップがメインで、動作はβ2とほぼ同じです。
V=v108b3;cd /run/;wget -O - https://www.symphonic-mpd.com/release/$V.tgz|tar xzf -;$V/install.sh;rm -r $V;cd
V=v107;cd /run/;wget -O - https://www.symphonic-mpd.com/release/$V.tgz|tar xzf -;$V/install.sh;rm -r $V;cd
@パパリウス さん
ご返事ありがとうございます。
なるほど。ネットワーク負荷を平準化させ、最適化させようというわけですね。
直結は「やりたければどうぞ」ということでしょうか。まあ、USBアダプターを使ったLAN位しか方法がないので、素直にハブに繫ぐ方が正解かもしれませんね。
パパリウス様 v.1.0.8β3に入れ替えをさせていただきました。先日のv.1.0.8β1と同様何も問題がございません。
何時もの感覚で楽しませて頂きます。ありがとうございました。
@eric さん
いつもご報告ありがとうございます。
β3はデバッグコードなど正式版には不要になる処理を綺麗に取り除いたバージョンになります。
音質面はこれまでで最良のものに仕上がりました。
特に問題が出なければ、このまま正式版としてリリースしたいと思っています。
パパリウスさま、いつも大変良い音を楽しまさせていただいております。もしできれば連休中に正式版としてリリースいただければ幸いです。よろしくお願いいたします。
@マロン さん
v1.0.8のリリースはもう少しお時間をいただこうかと思います。
リリースを楽しみにしていただいたのに、申し訳ありません。
DeltaWaveのスレッドに書き込みしたように、バージョン間の差異を精密に測定できるようになりました。
これを活用してじっくりチューニングを進めてから正式リリースしたいと思っています。
@パパリウス さん
お世話になっております。
SB32+PRO DoPと、Allo digioneを使用しています。
SB32+PRO DoPでは、問題無くRadioが鳴りますが、Allo digioneですと、Radio(Linn classical)を鳴らそうとすると、秒数のカウントが1秒で止まり、そのあと、time outとなり、全く鳴りません。
過去の書き込みを参考に、MPDの設定について、
バッファを640から960、Float→Integerを24に変更してみましたが、状況変わらずです。
なんとかDashboardを取ってみると、Format欄が空白となっていました。
接続も途切れるようですが、rebootを押した後、数分したらrebootされました。
対応方法について、ご教示下さい。
Logも取れましたので、後程お送りします。
よろしくお願いいたします。
@hrsmck さん
ログをありがとうございます。
明日調査してみますので少々お待ち下さい。
@パパリウス san
Just providing feedback and encouragement for the excellent sound of β3.
The concepts you are implementing in this version appear to have compelling simplicity to them.
I have now tried β3 and played without a reboot and at first, I found that the player would not execute the play from the NAS until the 2nd or 3rd click of the play. It would pop but not play. That error reduced after a few instances and I also rebooted after a few hours and now I can not reproduce that error.
I am astounded by the improvement.
Describing improvements in sound is like catching air but I will try.
The timbre and sonority of the music has improved greatly. In comparison to previous version, the notes seem to be more complete in a way where the previous version might have flat spots around the edge of a circle, now the circle seems to be better formed. I think I hear more of the acoustic of the recording. The silence between notes is easier to hear and instruments and the notes they are playing seem to be easier to hear and there is more information in that note compared to the previous version.
I heard this all from the first recording I tried and I ended up listening for a few hours because I was hearing so much better into my collection.
I wait for the final release and in the meantime I will continue listening to β3.
Thank you to the team for all these improvements.