Skip to content

shun60s/rt-wdf_renderer-sample-study

Repository files navigation

Wave Digital Filterの勉強

概要

Wave Digital Filterの動作サンプルrt-wdf_renderを Windows10 + Visual Studio Community 2017の環境で動かすために変更したもの。

主な変更点

  • stereo (2 channel)入力に対応 source
  • 出力ファイル名を変更。 RenderThread.cpp
  • CSVファイル出力の無効化。RenderThread.cpp
  • Input Gain Controlの有効化。 wdfCCTAx1Tree.hpp wdfCCTAx4Tree.hpp
  • VisualStudio2017の追加。 wdfRenderer.jucer
  • triode モデルの6K6 を追加 rt-wdf_lib
  • triode モデルの2A3 を追加 rt-wdf_lib
  • Newton法の反復計算の係数alphaの調整を追加 rt-wdf_lib
  • Resampler機能の削除 必要に応じて外部のResamplerを使うこと
  • 表示の大きさの変更

armadillo-9.500.2の中のblas_win64_MT.dll lapack_win64_MT.dllを使いました。

主な追加点

  • vcxプロジェクトファイル Builds/VisualStudio2017
  • Fender Bassman tone stackのR-type adaptorのS-Matrixの計算 ToneStack_R-type_S-Matrix_compute
  • 簡単な3極真空管Triodeアンプ回路のS E F M N 各Matrixの計算 Common_Cathode_Triode_Amp_SEFMN-Matrix_compute
  • triode(12AX7) + triode(6K6) + 出力トランス(等価回路)のアンプ回路を追加 wdfTwoTriodeAmpTree.hpp Two_Triode_Amp_SEFMN-Matrix_compute
  • 差動入力triode(12AX7) プッシュプルtriode(2A3) アンプ回路を追加 wdfSadouPushPullTriodeAmpTree.hpp Triode_Sadou_PushPull_Amp_SEFMN-Matrix_compute
  • 差動入力triode(12AX7) とプッシュプルtriode(2A3) をVCVSで結合した回路を追加 wdfSadouPushPushVCVSConnectionTriodeAmpTree.hpp Triode_Sadou_PushPull_VCVS-connect_Amp_SEFMN-Matrix_compute
  • channel毎にwdfを並列計算 openmpを使っているためコンパイラのOpenMPのサポートを有効にすること RenderThread.cpp

figure2 figure3 figure4

参照したもの

以下を展開したものに変更を加えました。

以下で公開されている真空管と出力トランスのデータを使いモデルを作成しました。

ライセンス

GPL v3
RT-WDF libraryがGPLのため、それに従うことになります。
Libsディレクトリーの中にある説明文を参照してください。

真空管アンプの入出力波形の例  

Wave Digital Filterを使ってシュミレーションした真空管アンプ回路CCTA(x4)とJTM45の動作波形の例。
真空管は非線形素子なのでサンプリング周波数を4倍に上げて計算している。
JTM45は歪ませる設定(input gain, volume)にしている。

figure1

About

Wave Digital Filterを使った真空管回路のシュミレーションの勉強用。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published