• RPi4版 v1.0系のサポートはこちら

    @パパリウスさん

    多分、このdacでは最初の報告になると思います。構成は

    逢瀬ak4499dac
    自作nas(mint+cifs intel atom N270)
    RPi4B 2GB
    ak4137ハイレソ変換基板(ラズパイにGPIO接続するタイプ、ドライバはhifiberry-dac)+HDMI送信基板(GLA C1)

    で、v1.08β1に入れ換え、問題なく音が出ています。
    他にhat部分を入れ換え
    fifopi(クロックをCCHD 22/24Mに入れ換え)+ianのhdmi転送基板
    でも確認しました。こちらも192KHzまでの再生は問題なしです。
    DSDはdacのサポートが無いので、未確認です。

  • パパリウス様
    いつも有難うございます。報告が遅くなり申し訳ございません。v1.08β1をテストしました。環境は
    *ラズパイ4(2GB)
    *DAC ES9038Q2M(Slave)
    *DSD DoPモード
    でPCMは44.1,96,192kHz問題なし。
    DSDはDoPにて2.8M、5.6M共に問題なく再生できました。
    ダイアナ・クラールのNight&Dayなどを聴くと背筋がゾッとするほどの歌声で惚れ惚れします。

  • @パパリウス さん

    追加報告です

    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系に切り替わるときにハングアップする問題に対処しました。
    ドライバを差し替えたあとは念のため再起動をお願いします。

    再生開始直後やサンプルレートの切り替わり時、中断後の再開などに不具合が残っている可能性がありますので、お気付きの点がありましたら小さなことでもご報告いただけると幸いです。

    v1.0.8β2ドライバへの差し替え

    V=v108b2;cd /run/;wget -O - https://www.symphonic-mpd.com/release/$V.tgz|tar xzf -;$V/install.sh;rm -r $V;cd
    

    v1.0.7ドライバへの戻し

    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とほぼ同じです。

    v1.0.8β3ドライバへの差し替え

    V=v108b3;cd /run/;wget -O - https://www.symphonic-mpd.com/release/$V.tgz|tar xzf -;$V/install.sh;rm -r $V;cd
    

    v1.0.7ドライバへの戻し

    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.08β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も取れましたので、後程お送りします。

    よろしくお願いいたします。