検証とレベル規約

4段階の検証プロセスと6つのレベル規約。自身で作成していない第三者の設計データであっても、安心してスピーカーへ出力できる根拠がここにあります。

4段の検証

検証いつ走るか何を見るか
スキーマ検証(Shape)ファイル読み込み時フィールド名、データ型、値の許容範囲、必須項目の有無。未知のフィールドが存在する場合は類似候補を提示
係数計算(Coefficients)保存時およびロード時設定値からフィルタ係数を導出し、2つの内部レート系列(705.6k / 768k)の双方で整合性を検証
シミュレーション(Simulation)非線形ノードを含むチェーンのロード時3種類のテスト信号(刺激)を通過させ、応答出力を測定・解析
セーフアーム(Arming)再生開始の直前シミュレーション通過フラグの確認、および出力リミッターとソフトスタートの作動確認

スキーマ検証と係数検証に合格した設計のみがライブラリに登録されます。「一覧に表示されているのに選択すると必ずクラッシュまたはエラーになる」という破綻を防止するためです。

  • 検証で不合格となった場合は、失敗した段・エラーコード・実際の測定値が詳細にレポートされます。これは単なる異常終了ではなく、検証システムが返す「合格か不合格か」という2つの正常な判定結果の1つです。
  • スキーマ検証に合格したからといって、正常に再生できるとは限りません。構文の正しさは前提に過ぎず、信号処理としての妥当性判定は係数計算以降のフェーズで下されます。
  • 検証のいずれかの段階で不合格となった場合、音声出力は安全のため自動的にバイパス(素通し)へフォールバックします。
  • 実際に音を出力することなく検証判定のみを実行することも可能です。AIアシスタントにコードや設計を生成させた際、ユーザーがロードする前にAI自身に自己検証を行わせることができるのは、この検証APIが用意されているためです。

シミュレーションが測るもの

刺激何が分かるか
基準レベルの正弦波(整数周期)通過ゲイン、ゲイン補償の正確性、DC(直流)オフセット成分
可聴帯域の対数スイープ信号可聴域外(超音波帯域)へ漏れ出る高調波歪みの総量、およびピークレベル
帯域制限ノイズ相互変調歪み(IMD)、および浮動小数点の不正値(NaNや無限大など)

3種類のテスト信号はいずれも超音波帯域の成分を含んでいません。したがって、超音波帯域で観測されたエネルギーはすべて、対象シグナルチェーンの非線形処理によって新たに生成された成分です。

  • DCオフセットの判定は正弦波テストのみを基準とします。他の2つの信号では推定誤差が判定閾値を上回ってしまい、実際には発生していないDCを誤検知する恐れがあるためです(測定値自体はレポートに記録されます)。
  • 長大な畳み込み(FIR)を含むチェーンは、フィルタの内部状態が定常状態に達するまで事前動作(ウォームアップ)させてから測定するため、ロード時の検証に少し時間がかかります。
  • 検証レポートは上流の項目から順に確認してください。上流の測定段で不正な値(NaNなど)が発生している場合、それ以降の下流の測定数値はすべて無意味になります。
  • 超音波成分をリジェクトするのは、耳で感知できない危険な信号だからです。

    可聴帯域外の超音波信号であっても、フルスケール近い振幅があれば下流のアンプやスピーカーのツイーターにそのまま伝送されます。可聴域のノイズと異なり人間が耳で気付くことができないため、ボイスコイルの過熱や焼損を引き起こす危険があります。リジェクトの対象は「超音波帯域の過剰な増幅」であり、絶対エネルギー量で判定されるため、適切に窓関数を適用したハイパスフィルタなどが不当に弾かれることはありません。

  • DC(直流)成分をリジェクトするのは、スピーカードライバーを偏向・変位させ続けるからです。

    非対称な波形歪みや偶数次高調波を生成する非線形処理は、DC成分を発生させます。DC成分がアンプやスピーカーへ送られると、コーン紙を一方に押し出したまま保持させ、歪みの増大やボイスコイルの熱損傷を招きます。dc_blockerノードは、DCを発生させる非線形段の「直後」に配置してください。手前に配置しても後段で発生するDCは除去できません。

  • 純粋な線形処理チェーンはこのシミュレーションをバイパスします。

    シミュレーション検証、出力リミッター、およびソフトスタート機構が適用されるのは、非線形ノードを含むチェーンのみです。これをすべての線形処理(EQやゲインなど)にまで一律強制してしまうと、「本来最も透明であるべきストレートな信号経路が、保護機能によって最も干渉を受ける」という本末転倒な事態に陥るためです。

レベル規約

仕様バージョンによって厳格に規定されています。将来にわたって恣意的に変更されることはありません。

#規約
1振幅1.0が0 dBFSに対応。隠された内部ゲインや未公表のスケーリングは一切存在しません
2アナログ基準レベルは-20 dBFS RMS ≡ 1.0 V RMS(モデリング対象回路の入力ノード基準)
3すべてのモジュールは基準レベルにおいて通過ゲイン unity(±0.1 dB以内)。検証エンジンがこれを保証します
4非線形ノードのDriveパラメータは出力段で自動補償。音色の倍音構成のみが変化し、全体的な音量は一定を保持します
5内部処理は浮動小数点で実行されるため内部クリッピングは発生しません。リミッターは最終段にのみ存在します
6A/B比較の切り替え時は音量を自動マッチング(バイパス状態を0 dBリファレンスとして算出)

規約4(ドライブ補償)と規約6(自動ラウドネスマッチング)の存在により、A/B比較において「単に音量が大きい方が良い音に聴こえてしまう」という心理音響的錯覚を排除し、純粋な音質・音色の差異のみを正当に比較できます。