"True Phase DSP" for foobar 2000
辛い様々なことがあったのですが、本を買って研究してようやく完成しました。
ライセンスについて
フリーです。もしよければ、よかったなりわかんなかったなり悪かったなりを、raspy@nunomo.comまでメール、 もしくはこの記事のコメント欄に寄せてください。
http://dl.dropbox.com/u/13746456/foo_truephase_fft.dll
↑現在あるソフトはFFT版です。44.1kHz専用になります。
※3つDSPがインストールされますが、open buffle filterのほうは無視してください。
適合条件など
- 位相を補正するだけで周波数成分は理論上変化しません。オーオタ専用です。人間は位相成分に極めて鈍感です。あまり期待しないでください。
- foobar2000 0.9x以上が必要です。
- フルレンジ、または2wayバスレフ、密閉程度なら適合している可能性が高いです。3way以上のハイエンドのものは、位相特性を意図的に操作しているクロスオーバーであることがあり、その場合は適合しません。ミッドとウーハーのクロスが単純に6dB/octなら適合しそうです。(試してだめなら外せばよいので気軽にお試しください)
- 僕の力不足で、FIRのタップ数が減らせませんでした。なので重いです。(pen M 1.1GHzでギリ)
使用方法
- (foobar2000を入れていない場合)まず、foobar2000で音楽を聴けるように環境を整えます。その際、replayGainの設定はnoneにすること(素なら良いのですが、前段にかかったあとでプラグインを通るので音質が悪化します)。
- ダウンロードしたDLLを、foobar2000のcomponentsに入れます。
- preferenceのDSP Managerを開きます。DSPをResampler(アップサンプリングする場合)、[True Phase]、の順にセットします。
- ボリュームがある程度下がった状態でテストしてください。
- このプラグインからの出力は、クリップ防止の為-13dB程度(-6と書いていましたが-13でした!)低くなっています(-6dBのデジタルボリュームくらいでまあそんなに悪化しません)。ですので注意してください。できればwindowsの出す音などはミュートするか別デバイスにあてておいたほうが良いでしょう。
グラフなど
WaveGeneで生成したwavファイルをこのプラグインを通して出力し、それをマイクで拾ったものです。
200Hz,三角波
200Hz,矩形波
前述の、よいインパルス応答のスピーカーの場合、プラグインなしでは三角波はなんだか丸い形(矩形波に近い形)、矩形波はパっと立ち上がって急に0に戻るインパルスのような波形になるはずです。
もし測定環境のある方がいたら、プラグインあり、なしの状態で波形を送ってもらえたりすると嬉しいです。
その他愚痴など
数学力不足で大変でした。
foobar2000付属のイコライザはgroup delay一定の一級品です。
changelog
- 6/12/2008 畳み込みアルゴリズムをFFTでの畳み込みに変更。メモリ関連バグ修正。
- 4/12/2008 群遅延フィルタではない旨を記載。ヒルベルト変換フィルタでした。
- 2/24/2008 HQバージョンのみとしました。ダンパー調整アルゴリズムを元に戻しました。だいぶ整理がついたので、記述を見直しました。
- 2/10/2008 HQバージョンを用意しました。
- 2/09/2008 さらに少し調節しました。
- 2/02/2008 44.1kHzでのパラメータを調節しました(これでほぼ完全に88.2kHzと同じです)。
- 1/31/2008 2つに分かれていたDSPを統合し、名前をわかりやすいようTrue Phaseとしました。
- 1/30/2008 44.1kHzに対応しました。SSE2最適化を取りました。
- 1/29/2008 オフセットずれ防止ダンパーのアルゴリズムを変更しました。音質が向上しています。
- 1/28/2008 ボリュームを上げました。クリップしないとは思います。