hysteresis

ノード

履歴効果(ヒステリシス)を持つ磁気飽和。瞬時値だけでなく、信号の過去の推移によって出力が変化します。

パラメータ

欄何を決めるか範囲必須
drive_dbドライブ[dB]。0 〜 48必須
widthループの太さ(0 =ほぼ線形、1 =最も太い)。0 〜 1必須
{
  "drive_db": 12,
  "type": "hysteresis",
  "width": 0.5
}

計算

He   = H + α·M                                実効磁界
Man  = Ms · L(He / a)                          無ヒステリシス磁化(ランジュバン)
dMirr/dH = (Man - M) / (δ·k - α·(Man - M))      δ = sign(dH)
dM/dH = [(1-c)·dMirr/dH + c·dMan/dHe]
        / [1 - α·c·dMan/dHe - α·(1-c)·dMirr/dH]
トランスの鉄心や磁気テープの挙動を再現する、磁気ヒステリシスの代表的なモデル「Jiles-Athertonモデル」を採用しています。入力信号が増加中か減少中かによって軌道が分岐するため、このノードは内部状態を保持します。同一の入力瞬時値であっても、過去の履歴によって異なる値を出力します。
  • width はヒステリシスループの幅(保持力)です。0付近ではほぼ線形動作となり、最大値で最も幅広くなります。
  • ドライブ補償の設計思想はwaveshaperと同様で、ドライブを上げても音量は一定に維持されます。Jiles-Athertonモデルでは補償量を解析的に積分できないため、基準正弦波をモデルに通して事前に実測・計算しています。使用するのは固定のテスト波形であり、再生中の楽曲信号ではありません。
  • モデルは準静的(時間微分 dM/dt ではなく磁界微分 dM/dH で定式化)であるため、サンプリングレートごとに式を再導出する必要がありません。

使うときの注意

  • dc_blocker は不要です。

    対称な交流入力であればヒステリシスループも原点対称となるため、直流成分は発生しません。これは単なる仮定ではなく自動テストによって保証されています。非対称waveshaperとの大きな違いです。

  • 計算負荷が最も高いノードです。

    内部状態を持つ逐次処理であり、条件分岐と超越関数を含むためSIMDベクトル化が困難です。長いFIR畳み込みなどを併用している環境では、このノードを多段配置する前にCPU負荷の数値を必ず確認してください。

  • 非線形ノードのため、安全機構が作動します。

    試聴前にシミュレーション検証が行われ、そのセッション中は常に出力リミッターが有効化され、再生開始時にソフトスタートが適用されます。