• DeltaWave

    ESSのチップはDPLL/ASRC有効時にDPLLバンド幅によって音質が変化します。

    Sabreberry32でDPLLバンド幅を変更しながら歪がどのように変化するか検証してみました。

    HighestからLowestに向けて歪が単調減少していくのではないかという期待がありました。

    symphonic-mpdは先日測定しており、Volumioは今日測定してみました。
    スラッシュを挟んで左がRMS(dB)、右がDF(dB)です。いずれも一発録りです。

    DPLL Band Width symphonic-mpd Volumio
    15 (Highest) -52.82/-43.3 -41.74/-31.8
    14 -53.42/-44.4 -39.99/-30.3
    13 -54.23/-45.1 -41.87/-31.9
    12 -54.05/-44.9 -53.26/-43.9
    11 -53.17/-44.0 -54.33/-45.4
    10 -54.0/-44.9 -53.82/-44.5
    9 -52.59/-43.3 -41.31/-31.4
    8 -54.31/-45.2 -53.89/-44.9
    7 -54.42/-45.2 -41.1/-31.2
    6 -53.51/-44.2 -52.09/-42.6
    5 (Default) -54.37/-45.2 -41.33/-31.5
    4 -54.27/-45.0 -41.33/-31.5
    3 -54.11/-44.9 -53.78/-44.7
    2 -54.32/-45.2 -53.48/-44.1
    1 (Lowest) -53.62/-44.2 -53.41/-44.1

    結果としてはRMS/DFの両メトリクスはDPLLバンド幅にさほど敏感では無いようです。
    ADCの精度を上げたり、DeltaWaveで抽出できる他のデータ(波形の差やスペクトルの差、位相の差などなど)を確認していく必要があるかもしれません。

    もう一つ明らかになった問題点は、テスト結果が測定環境のセットアップに敏感で、再現性を得難いという点です。
    Volumioの測定値が、-41dB付近と-53dB付近に極端に別れてしまっています。その差は12dB(つまり400%!)もあり、測定手順に何らかの問題があることを示唆しています。
    このあたりは試行錯誤しながら問題を潰していく必要がありそうです。


    メモ

    再生開始直後、一瞬だけ極端に負荷が高くなって歪の原因となるのではないか。
    たとえば冒頭1秒と末尾1秒をトリムすれば安定再生中の区間だけを比較できるのでは。

  • @パパリウス さん

    DPLLバンド幅による音質変化のチェック、興味深く拝見しました。

    ご指摘のように、このシステムは使い方が難しいですね。音源ソース、ADC、録音ソフト、使用DAC、測定条件などでコロコロと結果が変わるようです。また、測定する目的に合せて、データ指標を適切に選択する必要があるようです。

    LPレコードの録音用にKorgのDS-DAC-10Rを持っていますので、これを使ってみました。

    ソフト/ハード RMS DF
    SMPD 1.07(ラズパイ4) + DigiOne Signature -50.43db -15.8db
    TuneBrowser(Windows10+Surface) -44.81db -15.2db

    という結果でした。パパリウスさんの結果と比較すると多少歪みが多いようですが、ADCの差が大きいかなと思います。DFの値は、使った音源がウェーベルンのピアノ曲だった為、こういう値になったということですかね。
    DACはGastard DAC-X20です。最初、aitlaboのDACを使って測定したのですが、RMSが-20db程度の値となり変なので、Gastardに変えたら上表の通りとなりました。これも理由が不明で、謎です。

    僕の所では測定値の再現性は高いのですが、音源、DACによる変化が非常に大きく、このあたりが何が何やらさっぱり分からん状態です。ただ、グラフィカルに表示される波形、スペクトル、位相などの差は確かに違っていて、なかなか面白いです。このあたりの分析が必要なようですね。

  • DeltaWaveを使ってv1.0.7とv1.0.8β3、そしてVolumioの比較を行ってみました。

    結論から言えば、v1.0.7が最良、v1.0.8β3はVolumioとv1.0.7の中間の音質ということが分かりました。


    測定環境

    テスト音源・・・ 44.1KHz/24bit (カスタネット・ギター)
    DAC・・・SB32+PRO DoP (RCA出力)
    ADC・・・Fireface UCX (44.1KHz/24bitで録音)


    テスト音源・録音データ・DeltaWave解析レポート一式 (25MB)
    http://www.symphonic-mpd.com/release/files/deltawave_comparison_20200918.zip


    DeltaWaveの解析レポートから歪率の指標 (RMS, DF Metric)を抜粋したものがこちらです。

    Version 録音No. RMS(dB) DF Metric(dB) 備考
    smpd v1.0.7 #28 -57.76 -35.9
    〃 #29 -58.06 -36.1 ベスト
    〃 #30 -55.02 -34.3
    〃 #31 -58.06 -35.9
    smpd v1.0.8β3 #27 -56.57 -35.2
    〃 #32 -57.92 -35.8
    〃 #33 -55.08 -34.7
    〃 #34 -57.92 -35.8
    〃 #35 -54.92 -34.4
    Volumio 2.806 #36 -55.86 -34.8
    〃 #37 -54.43 -34.0 ワースト
    〃 #38 -54.74 -34.0
    〃 #39 -56.08 -35.4
    〃 #40 -54.50 -34.1

    Volumio 2.806はsmpd v1.0.7との比較でRMSで約2dB(≒1.6倍)、DFメトリクスで約1dB(≒1.26倍)の歪みがあるということが言えます。

    特筆すべきは解析レポートの最後にある「Fig 6. Delta Phase」です。
    このグラフは位相差分の周波数特性と解釈すればよいのだと思いますが、smpd v1.0.7は低域(0Hz~200Hz)での位相の乱れが極端に少なく、とても滑らかな特性を持っていることが分かります。
    v0.6系以降、バージョンアップを重ねるにつれて低域の再現性が徐々に改善され、他のディストリビューションの音と決定的に違う部分だと感じていました。
    このような聴感上の違いがDAC出力の差分として測定可能になったのは開発を進めるうえでとても画期的なことです。

    v1.0.8β3の位相差分グラフ(Fig 6. Delta Phase)はv1.0.7の滑らかさには大きく劣り、歪率も一段劣る水準です。
    まだまだチューニングが不足していることが明らかになりました。しっかりチューニングを進めてからリリースしたいと思います。


    Fig 6.Delta Phase

    smpd v1.0.7
    alt text

    smpd v1.0.8β3
    alt text

  • @パパリウス さま

    ちなみにVolumioはデフォルトの状態でしょうか。
    例えばSMPDのようにUSB入力やWifi、LEDをオフするだけでもかなり変わる気がしますので…。

  • @SpongeB さん

    Volumioについては、Web UIから停止できる機能は全て止めてみました。
    USBのON/OFF設定は無かったように思いますので、そのままの状態だと思います。LEDも点灯したままです。

    今回はv1.0.7とv1.0.8βの比較に焦点を当てており、Volumioの測定データは目安程度に考えていただければと思います。


    DeltaWaveを使い始めた当初は解析結果の一貫性の無さに悩まされましたが、ノウハウが溜まってきました。


    問題点1

    Volumioの測定で数回に1度の頻度で10dB以上悪化したデータが採れることがある

    これは、テスト音源の冒頭に1秒の無音を挿入することで解決しました。

    Volumioは再生開始直後の一瞬だけ大きな歪みが発生しやすいようで、それが録音データに混入することで解析結果が大幅に悪化する原因となっていました。
    冒頭に無音を挿入しておけば、再生開始から1秒以降の安定再生されている部分がマッチングに使われるようになります。


    問題点2

    測定ごとのバラツキが大きく解析結果に一貫性が無い

    これはマッチング前に行われる変換処理を抑止することで解決しました。

    当初、44.1KHz/16bit音源を再生してADCで192KHz/24bitでキャプチャしていました。
    この場合、DeltaWaveは録音データをテスト音源と同じフォーマットにダウンサンプリングし、ボリューム合わせをした上でマッチングします。
    このリサンプリング処理によって加わる歪みによって、元々の録音データに含まれていた細かな差異がマスクされてしまい、解析結果の一貫性が失われてしまうようです。

    最終的にはDeltaWaveによる前処理は全て省き、ボリューム合わせだけを有効にすることで、解析結果の再現性が大幅に向上しました。
    テスト音源は44.1KHz/24bitとし、ADCでのキャプチャも44.1KHz/24bitで行います。

    測定ごとに多少のブレはありますが解析結果には一貫性があり、再現性も十分です。4〜5回測定するだけでも傾向をかなり正確に掴むことができるようになりました。


    これまで、大きな方式変更を行ったあとは帯域バランスの崩れに悩まされることが常でした。

    性能改善によって中高音域は音質が向上しやすいのですが、低域の再現性は壊れてしまうことが多く、総合的には中高域寄りのバランスになってしまうというパターンを何度も何度も繰り返し経験してきました。
    そこから聴感頼りでチューニングを進め、数週間から1ヶ月程度で低域の再現性を取り戻すという開発サイクルです。

    DeltaWaveはこの開発サイクルに大きな変革をもたらしてくれるかもしれません。

  • @パパリウス さん、v1.08/v1.07のDeltaWareの結果の開示ありがとうございます。こういう具合に全てのデータを示していただけると、助かります。

    DeltaWareの作者は天文学が趣味で、世界各国の天文台が公開している宇宙写真の解析を楽しんでいるのですね。オーディオ録音の解析も天文写真の解析も、如何にノイズを除去するかという意味では、同じことのようです。

    DeltaWareですが、それなりに使えるという結論のようですね。このソフトは、測定条件により、結果が大きく変わります。従って、異なる環境の数値を単純に比較しても無意味だと思います。パパリウスさんのような、環境や比較対象を限定した使い方が適切なのでしょう。

    以下に、パパリウスさんのお使いのテスト音源を使って、僕の環境で測定したソフト比較結果をお示しします。これは僕の環境に限定された結果で、それだけで全ての環境でのソフトやハードの優劣を示しているわけでは無いということを明記しておきたいと思います。DeltaWareの使い方の一つの例としてご覧ください。測定したのは、僕が普段音楽を聴いているサブシステム環境です。

    テスト音源・・・ パパリウスさんと同じもの
    DAC・・・Gastard DAC-X20(RCA出力)
    ADC・・・Korg DS-DAC-10R (44.1KHz/24bitで録音)
    それぞれ2回づつ測定しました。

    ソフト/ハード 接続 RMS(2回分) DF(2回分)
    SMPD 1.07(R-PI4 2MB) + AK4137 SRC Board + HDMI GLA B I2S -53.65db -53.48db -31.2db -31.1db
    SMPD 1.07(R-PI4 2MB) + AK4118 Digital Interface SPDIF -53.2db -53.75db -31.1db -31.4db
    foobar2000(Windows10+Surface) diretta -53.56db -53.11db -31.4db -31.1db
    TuneBrowser(Windows10+Surface) USB -53.03db -52.86db -31.1db -31.0db

    測定方法ですが、パパリウスさんと大きく違うのはパパリウスさんがLのみの比較なのに対し、僕の方はL+Rの比較であることです。Lだけで比較すると値が30%程度悪化し、RMS値が-30db後半となります。多分、これは Korg DS-DAC-10R のアナログ変換が甘く、方チャネルだけでは綺麗な値が出せないためだと思います。L+Rで比較しても、パパリウスさんとは数dbの差はありますが、この辺りは電源、DAC、接続方法(SB32は直結で条件が良い)、ネットワーク条件、NASなどの環境の差に起因するものでしょう。

    僕の結果に対する感想は
    ①SMPDラズパイ4でI2SとSPDIFの差がないのは意外だったな
    ②Windows勢は相当善戦しているな(direttaの実態はLinuxですが)
    です。特にTuneBrowser(Windows10+Surface)は今この投稿を作成しているパソコンを使って、USB接続で再生しているわけですから、こんなに良い値が出るとは思いませんでした。

    まあ全般的には聴感と一致する結果なので、こんなものなのかなと思っています。

    参考までにDelta Phaseのグラフをご紹介しておきます。ベストとワーストの比較です。

    SMPD 1.07(R-PI4 2MB) + AK4137 SRC Board + HDMI GLA B I2S接続の一回目
    smpd-i2s.PNG

    TuneBrowser(Windows10+Surface) USBの二回目
    TB-win.PNG

    確かに差はよくわかります。また、パパリウスさんの結果と比較しても、かなり違いがあります。DACとHATの差ですかね。

  • @yo さん

    DeltaWaveで追試いただきありがとうございます。

    仰る通り、異なる測定環境での数値は比較できるものではありません。規格化された測定条件も存在しませんので、これをどう活用するかは利用者次第ということになりますね。

    幸いなことに、smpdの開発に限って言えば測定環境は固定したままでよいので、ソフトウェア変更前後の相対評価には十分機能します。
    これほど明快に数値化・可視化できるのは本当に素晴らしいですね。

  • 測定の効率化のため、テスト音源を物色中です。
    今回は@hiroget9 さんから提供いただいた96KHz/24bit音源を使って測定してみました。

    提供いただいた音源を30秒程度切り出し、フェードイン・フェードアウト加工したうえで、冒頭と末尾のそれぞれに0.2秒ほどの無音区間を追加しています。
    この無音区間は測定のばらつきを排除するためにとても重要なポイントになります。

    smpd v1.0.9の再生停止処理では、1チャンクに満たないサンプルが残っていても後続データがこなければ処理を停止してそのまま捨ててしまいます。このような挙動もADCはうまく拾い上げてくれるのですが、キャプチャの度に測定値がばらつく要因となっていました。
    v1.0.10では再生停止時の振る舞いを修正し、このようなばらつきが出ないようにしています。

    定点観測における比較対象としてvolumioはとても有用ですが、再生開始・再生停止時の振る舞いに起因する測定のばらつきは悩みのタネでした。テスト音源の冒頭と末尾に無音区間を設けることで、ばらつきの頻度をグッと抑えることができます。(ゼロにはできませんが、実用レベルになります。)


    テスト音源・録音データ一式 (約160MB)
    http://symphonic-mpd.com/release/files/deltawave_comparison_20201018.zip


    volumio

    # L ch RMS(dB) DF(dB) R ch RMS(dB) DF(dB) L+R ch RMS(dB) DF(dB)
    1 -53.89 -31.4 -52.80 -31.9 -53.58 -31.3
    2 -57.48 -31.3 -56.92 -32.0 -57.31 -31.3
    3 -57.48 -31.5 -56.91 -32.0 -57.29 -31.4
    4 -57.45 -31.6 -56.88 -31.8 -57.26 -31.3
    5 -57.52 -31.4 -56.96 -32.1 -57.33 -31.4
    avg. -57.4825 -31.45 -56.9175 -31.975 -57.2975 -31.35

    録音データ#1はRMSが明らかに悪化しています。録音データを確認すると冒頭付近に大きな歪が混入していることが分かりましたので、平均値の算出からは除外しました。
    DFメトリクスはこのような一過性の歪に左右されにくい指標であることも見て取れます。


    smpd v1.0.10

    # L ch RMS(dB) DF(dB) R ch RMS(dB) DF(dB) L+R ch RMS(dB) DF(dB)
    1 -57.58 -31.4 -57.03 -32.1 -57.40 -31.4
    2 -57.55 -31.6 -56.99 -32.1 -57.38 -31.5
    3 -57.57 -31.4 -56.99 -32.0 -57.38 -31.4
    4 -57.53 -31.4 -56.98 -32.1 -57.37 -31.4
    5 -57.58 -31.6 -57.02 -32.2 -57.40 -31.5
    avg. -57.562 -31.48 -57.002 -32.100 -57.386 -31.44
  • @パパリウス さん

    最近、ddcとしてantelope discrete4を使い始めたのですが、これが優秀なadcしても使えると確認できたので、DeltaWaveに嵌まっています。電源ケーブルで数値は変わらないないが、電源で数値は変わるなどという当たり前のことが分かり、面白いです。

    情報の開示ありがとうございます。hiroget9 さんのサンプルも試してみたいと思います。

    テスト音源に関して。僕はクラシックばかりになりますが、候補です。

    リヒャルトシュトラウス、ツァラトゥストラはかく語りき、冒頭20小節
    バッハ、ロ短調ミサ、第1曲(キリエ) 冒頭30小節位
    ベートーヴェン、交響曲第7番第4楽章、冒頭14小節位
    ウェーベルン 弦楽四重奏のための5つの断章 第3曲

    最初の曲は「2001年宇宙の旅」でサルが初めて道具を使った時のバックグラウンドミュージックですね。冒頭の部分は2分近いので、多少、編集が必要かもしれません。ウェーベルンは40秒位の曲。短いので、お勧めです。

  • @yo さん

    電源の差異も検出できましたか!それはとても面白いですね。私もいずれ取り組んでみたいと思います。

    拙宅ではDACの電源ケーブルを変えると音質に変化を感じます。
    ラズパイの電源ケーブル(つまりUSBケーブル)による音質差は、これまであまり意識してきませんでしたが、、聞き取る自信はありません。
    このあたりも測定できると面白いですね。

    テスト音源のご紹介にも感謝いたします。
    測定環境のセットアップに関しては少しずつノウハウが溜まってきましたので、次の段階としては様々なテスト音源を試しながら、差異を検出しやすい音源を探し出したいと思っています。
    そろそろADCも欲しいなと思っています。Texas InstrumentsのPCM4222評価ボードが安価ながら高性能との評判で、ちょっと気になっています。